Improve sharing and diffability of IndexRoutingTable #94933
Labels
:Distributed Coordination/Allocation
All issues relating to the decision making around placing a shard (both master logic & on the nodes)
>enhancement
Supportability
Improve our (devs, SREs, support eng, users) ability to troubleshoot/self-service product better.
Team:Distributed (Obsolete)
Meta label for distributed team (obsolete). Replaced by Distributed Indexing/Coordination.
>tech debt
Today
IndexRoutingTable$Builder#build
constructs an all-newIndexShardRoutingTable
for each shard on every change. High-traffic clusters may have large numbers of shards per index, and today's behaviour yields many duplicateIndexShardRoutingTable
instances which together may consume a substantial amount of heap on the elected master.Moreover
IndexRoutingTable
is aSimpleDiffable
so we must transmit the whole table over the wire on any change, which prevents sharing on the receiving node and therefore yields many duplicateIndexShardRoutingTable
instances on the other nodes in the cluster.We should:
IndexShardRoutingTable
instances where possible when adjusting the routing table on the elected masterIndexRoutingTable
so that it avoids sending unchangedIndexShardRoutingTable
instances over the wire.Relates #77466
The text was updated successfully, but these errors were encountered: