I'm using Ignite 2.9.1, a 5 node cluster with persistence enabled, partitioned caches with 1 backup.
I'm a bit confused about the difference between data rebalancing and partition map exchange in this context. 1. Does data rebalancing occur when a node leaves or joins, or only when you manually change the baseline topology (assuming automatic baseline adjustment is disabled)? Again, this is on a cluster with persistence enabled. 2. Sometimes I look at the partition counts of a cache across all the nodes using Arrays.stream(ignite.affinity(cacheName).primaryPartitions(severNode) and I see 0 partitions on one or even two nodes for some of the caches. After a while it returns to a balanced state. What's going on here? Is this data rebalancing at work, or is this the result of the partition map exchange process determining that one node is/was down and thus switching to use the backup partitions? 3. Is there a way to manually invoke the partition map exchange process? I figured it would happen on cluster restart, but even after restarting the cluster and seeing all baseline nodes connect I still observe the partition imbalance. It often takes hours for this to resolve. 4. Sometimes I see 'partition lost' errors. If i am using persistence and all the baseline nodes are online and connected, is it safe to assume no data has been lost and just call cache.resetLostPartitions(myCaches)? Is there a way calling that method would lead to data loss with persistence enabled? thanks for your help!
