# Different purposes MASTER/DATA/COORDINATING

**URL:** <https://discuss.elastic.co/t/different-purposes-master-data-coordinating/153411>\
**Category:** Elasticsearch\
**Created:** [October 22, 2018, 2:03pm UTC](https://discuss.elastic.co/t/different-purposes-master-data-coordinating/153411 "2018-10-22T14:03:41Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![rschirin](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/rschirin/32/45283_2.png) [@rschirin](https://discuss.elastic.co/u/rschirin)\
**Post date:** [October 22, 2018, 2:03pm UTC](https://discuss.elastic.co/t/different-purposes-master-data-coordinating/153411/1 "2018-10-22T14:03:42Z")

</div>

hi all,  
currently I have a cluster configured in this way:

SCENARIO 1:

- 3 MASTER
- 6 DATA

My Filebeat clients send messages directly to DATA nodes. is it correct or not?  
Is it correct to think that MASTER nodes should be excluded from PUT operations?

SCENARIO 2:

- 3 MASTER
- 6 DATA
- 2 COORDINATING ONLY ROLE

To unburden DATA nodes from a high usage and saturation of resources, should be ok to use the Coordinating only role? In my mind, FB clients should aim directly to them, which will reverse messages to DATA node. is it correct?

thanks

---

<div class="post-metadata">

**Author:** ![Christian\_Dahlqvist](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/christian_dahlqvist/32/4617_2.png) [@Christian\_Dahlqvist](https://discuss.elastic.co/u/Christian_Dahlqvist)\
**Post date:** [October 22, 2018, 2:10pm UTC](https://discuss.elastic.co/t/different-purposes-master-data-coordinating/153411/2 "2018-10-22T14:10:14Z")

</div>

> [@rschirin](#):
>
> My Filebeat clients send messages directly to DATA nodes. is it correct or not?  
> Is it correct to think that MASTER nodes should be excluded from PUT operations?

Yes, I would say that is considered best practice. Dedicated master nodes should ideally not serve reads or writes.

> [@rschirin](#):
>
> To unburden DATA nodes from a high usage and saturation of resources, should be ok to use the Coordinating only role? In my mind, FB clients should aim directly to them, which will reverse messages to DATA node. is it correct?

If they can handle the traffic you can certainly do that. Another option is to index directly to the data nodes and query through the coordinating-only nodes.

---

<div class="post-metadata">

**Author:** ![rschirin](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/rschirin/32/45283_2.png) [@rschirin](https://discuss.elastic.co/u/rschirin)\
**Post date:** [October 22, 2018, 5:20pm UTC](https://discuss.elastic.co/t/different-purposes-master-data-coordinating/153411/3 "2018-10-22T17:20:16Z")

</div>

> If they can handle the traffic you can certainly do that.

Can you explain me better the concept "if they can handle the traffic"? Do you mean something like "if they have enough resources to do that"?

> Another option is to index directly to the data nodes and query through the coordinating-only nodes.

if the query is made using API (i.e. curl GET or something similar), do you mean to perform the PUT operations aiming to DATA nodes and the GET operations aiming to COORD nodes? if yes, my application should distinguish the two operations, right? I mean, something like:

_if I'm doing a PUT I have to use the hosts --\> hosts\_DATA_  
_if I'm doing a GET I have to use the hosts --\> hosts\_COORDINATING_

---

<div class="post-metadata">

**Author:** ![Christian\_Dahlqvist](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/christian_dahlqvist/32/4617_2.png) [@Christian\_Dahlqvist](https://discuss.elastic.co/u/Christian_Dahlqvist)\
**Post date:** [October 22, 2018, 5:21pm UTC](https://discuss.elastic.co/t/different-purposes-master-data-coordinating/153411/4 "2018-10-22T17:21:05Z")

</div>

> [@rschirin](#):
>
> Can you explain me better the concept "if they can handle the traffic"? Do you mean something like "if they have enough resources to do that"?

Yes.

> [@rschirin](#):
>
> if the query is made using API (i.e. curl GET or something similar), do you mean to perform the PUT operations aiming to DATA nodes and the GET operations aiming to COORD nodes? if yes, my application should distinguish the two operations, right? I mean, something like:

Sometimes you have different processes reading and writing, e.g. Logstash and Kibana, which makes it easy to separate. If not, everything can go through the coordinating-only nodes.

---

<div class="post-metadata">

**Author:** ![rschirin](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/rschirin/32/45283_2.png) [@rschirin](https://discuss.elastic.co/u/rschirin)\
**Post date:** [October 22, 2018, 5:23pm UTC](https://discuss.elastic.co/t/different-purposes-master-data-coordinating/153411/5 "2018-10-22T17:23:26Z")

</div>

COORDINATING ROLE nodes should have the same disk space of DATA nodes? do they use disks or not?  
which parameter or metric should I use to correct size them?

---

<div class="post-metadata">

**Author:** ![Christian\_Dahlqvist](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/christian_dahlqvist/32/4617_2.png) [@Christian\_Dahlqvist](https://discuss.elastic.co/u/Christian_Dahlqvist)\
**Post date:** [October 22, 2018, 5:25pm UTC](https://discuss.elastic.co/t/different-purposes-master-data-coordinating/153411/6 "2018-10-22T17:25:47Z")

</div>

They use very little disk I/O so can have a quite different specification. They need good network performance and enough CPU and RAM to handle the load.

---

<div class="post-metadata">

**Author:** ![rschirin](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/rschirin/32/45283_2.png) [@rschirin](https://discuss.elastic.co/u/rschirin)\
**Post date:** [October 22, 2018, 5:28pm UTC](https://discuss.elastic.co/t/different-purposes-master-data-coordinating/153411/7 "2018-10-22T17:28:25Z")

</div>

> They use very little disk I/O so can have a quite different specification. They need good network performance and enough CPU and RAM to handle the load.

So, when the FB client will send the message to Coordinating Role Only, this one will just _store_ the message in RAM and then forward it to DATA node? message will not be stored on disk?

---

<div class="post-metadata">

**Author:** ![Christian\_Dahlqvist](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/christian_dahlqvist/32/4617_2.png) [@Christian\_Dahlqvist](https://discuss.elastic.co/u/Christian_Dahlqvist)\
**Post date:** [October 22, 2018, 5:29pm UTC](https://discuss.elastic.co/t/different-purposes-master-data-coordinating/153411/8 "2018-10-22T17:29:40Z")

</div>

Yes, I guess you can say that. It will act as a load balancer coordinating the request and assembling the response from the data nodes.

---

<div class="post-metadata">

**Author:** ![rschirin](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/rschirin/32/45283_2.png) [@rschirin](https://discuss.elastic.co/u/rschirin)\
**Post date:** [October 23, 2018, 10:01am UTC](https://discuss.elastic.co/t/different-purposes-master-data-coordinating/153411/9 "2018-10-23T10:01:44Z")

</div>

currently, in the indicated cluster, I have also 2 nodes used for Coordinating Only Role of Kibana.  
Could I try to use them also for that? I mean, as C.O.R. for messages received from FB clients?

---

<div class="post-metadata">

**Author:** ![Christian\_Dahlqvist](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/christian_dahlqvist/32/4617_2.png) [@Christian\_Dahlqvist](https://discuss.elastic.co/u/Christian_Dahlqvist)\
**Post date:** [October 23, 2018, 10:04am UTC](https://discuss.elastic.co/t/different-purposes-master-data-coordinating/153411/10 "2018-10-23T10:04:08Z")

</div>

I would recommend testing it and to see which option that works best for you and your use-case.

---

<div class="post-metadata">

**Author:** ![rschirin](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/rschirin/32/45283_2.png) [@rschirin](https://discuss.elastic.co/u/rschirin)\
**Post date:** [October 23, 2018, 10:06am UTC](https://discuss.elastic.co/t/different-purposes-master-data-coordinating/153411/11 "2018-10-23T10:06:25Z")

</div>

thank you!

---

<div class="post-metadata">

**Author:** ![rschirin](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/rschirin/32/45283_2.png) [@rschirin](https://discuss.elastic.co/u/rschirin)\
**Post date:** [October 24, 2018, 2:12pm UTC](https://discuss.elastic.co/t/different-purposes-master-data-coordinating/153411/12 "2018-10-24T14:12:43Z")

</div>

just another doubt: COR will join the cluster with all the definition roles into elasticsearch.yml setted to `"false"`.  
When my FB clients will contact the COR, how it will know which DATA nodes should be contacted?

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [November 21, 2018, 2:12pm UTC](https://discuss.elastic.co/t/different-purposes-master-data-coordinating/153411/13 "2018-11-21T14:12:44Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
