Description
Currently RendezvousAffinityFunction allocates a new array of tuples (Long, ClusterNode) in order to create a sorted structure for the partition assignment. This structure is allocated for each cache and each partition, which leads to excessive GC pressure during partition map exchange.
I suggest we create a special container which is allocated once per context and reused for all partition assignments. This container can be reused efficiently for all caches because it's size is equal to the number of nodes in the assignment.