NSAmelchev opened a new pull request, #13755: URL: https://github.com/apache/ignite/pull/13755
### Problem `GridDhtPartitionsFullMessage.partsSizes` carries sizes of all partitions of all cache groups to every node on each exchange and partition map refresh, only to feed `EstimatedRebalancingKeys` in `GridDhtPartitionDemander.addAssignments`. On 40 nodes x 30 caches x 1024 partitions it is a third of the exchange message and most of a refresh. ### Changes - New core feature `PARTITION_SIZES_IN_SUPPLY_FEATURE`. - `GridDhtPartitionSupplyMessage.partSizes` (`@Order(7, introducedBy = ...)`): the supplier puts `fullSize()` of the demanded full partitions into the first supply message of a demand when a cache of the group has statistics enabled; the demander feeds the estimate from it. The source is fixed per `RebalanceFuture`, so an activation between the assignment and the first supply message cannot count twice. - With the feature active the coordinator neither computes nor sends `partsSizes`; the field is marked `deprecatedBy` and goes away with the feature. Wire descriptors regenerated. - `EstimatedRebalancingKeys` is now populated when the first batch from each supplier arrives instead of at assignment time, so `KeysToRebalanceLeft` reads 0 right after a rebalance starts; `CacheGroupsMetricsRebalanceTest` waits for the estimate accordingly. ### Rolling upgrade The wire field is included per peer by the declared version, the behaviour is chosen by `isActive()`; while the feature is inactive every node works as before. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
