When to use Coordinating vs Data Node

As a matter of best practice, if I have an ideal configuration:

  • Should queries be directed to coordinating nodes or data nodes?
  • Should index writes/deletes/updates be directed to coordinating nodes or data nodes?

Thanks!

Coordinating nodes

Data nodes

Thank you for the clear and definitive response. That is very helpful. Can you help me further reconcile this advice with that provided by @javanna in this answer?

I wonder if for coordinating node you mean coordinating only node. Every node is by default a data node, master eligible and coordinating node (also ingest node) at the same time. It certainly makes little sense to send indexing requests to coordinating only nodes, while it does make sense to send search requests to them if you have them.

To make it clear, I understood the original question as coordinating only nodes and my reply was referring to the same as well.

That is exactly what I meant: coordinating-only nodes. Sorry I wasn't more specific.

So, given a non-trivial index, I'd like to confirm:

  1. If I should include coordinating-only nodes in my network and if I should route queries exclusively to those coordinating-only nodes? It sounds like the answer is yes.
  2. If I should route write requests exclusively to data nodes? Again, it sounds like the answer is yes.

Putting this all together for a non-trivial application, I should optimally use two separate REST clients in my application, one REST client for queries (that uses only the coordinating-only nodes and no data nodes), and one REST client for index writes (that uses only data nodes and no coordinating-only nodes). This would be an ideal setup, right?

Thank you.

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