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]

Reply via email to