How is coordinating node decided?

We have a 6 node ES cluster where the 5 nodes are of the same specs while the 6th one is almost half the specs of other nodes. I initiate a Transport client to which I add any one of the 5 nodes but never the 6th node. Sniffing is set to true for the transport client that I initiate. There are no dedicated master or coordinating nodes but all of our nodes are master eligible and data nodes.

Recently we have observed a lot of intermittent errors saying that the search threadpool queue was full on the smaller node. I know for sure that the index that I want to query does not lie on the smaller node. So the error can only be explained by the fact that smaller node somehow is becoming the coordinating node since sniffing is set to true.

How does the ES decide the coordinating node?

What if I set sniffing to false and add multiple bigger nodes to transport client. Then I assume that the queries will only be executed using these nodes.

The node that receives the request will always be the coordinating node, so as long as sniffing is enabled and requests are sent to this weaker node it will be processing requests.

I am assuming that the node that I add to Transport client using the addTransportAddress method receives my request.
if this is true then the weaker node should ideally not be receiving any request because

  • The index I am querying does not sit on this node
  • It is never coordinating node because its never added to transport client.

Then what could be the reason behind the search threadpool queue full exceptions that I am getting from the weaker node. Are you saying one of the two points mentioned above is true? Let me know if any more details to the problem is required.

Also repeating the question asked in the first post
What if I set sniffing to false and add only bigger node to transport client? The weaker node should not get any request then.

Thanks for your response.

If you have sniffing enabled the weaker node will be added to the list of servers and will receive requests.

Correct. That is exactly what I am saying.

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