-
Notifications
You must be signed in to change notification settings - Fork 25.8k
Improve sharing and diffability of IndexRoutingTable #94933
Copy link
Copy link
Open
Labels
:Distributed/AllocationAll issues relating to the decision making around placing a shard (both master logic & on the nodes)All issues relating to the decision making around placing a shard (both master logic & on the nodes)>enhancement>tech-debtSupportabilityImprove our (devs, SREs, support eng, users) ability to troubleshoot/self-service product better.Improve our (devs, SREs, support eng, users) ability to troubleshoot/self-service product better.Team:DistributedMeta label for distributed team.Meta label for distributed team.
Metadata
Metadata
Assignees
Labels
:Distributed/AllocationAll issues relating to the decision making around placing a shard (both master logic & on the nodes)All issues relating to the decision making around placing a shard (both master logic & on the nodes)>enhancement>tech-debtSupportabilityImprove our (devs, SREs, support eng, users) ability to troubleshoot/self-service product better.Improve our (devs, SREs, support eng, users) ability to troubleshoot/self-service product better.Team:DistributedMeta label for distributed team.Meta label for distributed team.
Type
Fields
Give feedbackNo fields configured for issues without a type.
Today
IndexRoutingTable$Builder#buildconstructs an all-newIndexShardRoutingTablefor each shard on every change. High-traffic clusters may have large numbers of shards per index, and today's behaviour yields many duplicateIndexShardRoutingTableinstances which together may consume a substantial amount of heap on the elected master.Moreover
IndexRoutingTableis aSimpleDiffableso we must transmit the whole table over the wire on any change, which prevents sharing on the receiving node and therefore yields many duplicateIndexShardRoutingTableinstances on the other nodes in the cluster.We should:
IndexShardRoutingTableinstances where possible when adjusting the routing table on the elected masterIndexRoutingTableso that it avoids sending unchangedIndexShardRoutingTableinstances over the wire.Relates #77466