From reading the Definitive Guide, I learned that the coordinating node forwards a read request to a different shard copy (assuming multiple primary shards and nodes).
- https://www.elastic.co/guide/en/elasticsearch/guide/2.x/distrib-read.html
- https://www.elastic.co/guide/en/elasticsearch/guide/2.x/distrib-multi-doc.html
How does it work if I have a cluster with single primary shard and one replica per node?
"settings": { "number_of_shards": 1, "auto_expand_replicas" : "0-all" }
Each node will have all the data, so there is no need to forward request to get data from another shard. Furthermore, since coordinating node can be round-robin'd, distributing the load also isn't an issue.
In such such set-up, will there be internode communication for read requests?