Dynamic State Transfer: Topology-Specific Behavior
In NCache, data distribution patterns and balancing logic depends heavily on the specific caching topology you have have configured for your cluster. The cluster handles data redistribution differently across each topology to optimize performance and network bandwidth. This page provides an overview of the topology specific behavior that NCache cluster exhibits during state transfer.
Partitioned Cache Topology
In a Replicated Cache topology, the entire cache dataset is completely duplicated on every single server node within the cluster.
On Node Join
When a new node joins the cache cluster, the coordinator server generates a new distribution map to distribute the buckets from the current nodes to the newly joined node. And, after receiving the distribution map, the newly joined node pulls the buckets from the current nodes. During this state transfer, the newly joined node pulls one bucket at a time. After receiving one bucket, it pulls the next bucket, and so on, until it fetches all of its assigned buckets from other nodes, according to its distribution map.
On Node Leave
Similarly, state transfer is triggered when a cache node leaves the cache cluster. The coordinator server redistributes its buckets among the active nodes of the cluster. In this case, the active nodes pull the data from the leaving node's replica.
On Auto Data-Load Balancing
The Partition-Replica topology has a feature of Auto Data Load Balancing through which it continuously monitors the distribution of data among cluster nodes. And, if the data distribution is not within the expected distribution range (60% to 40%), it automatically triggers the auto data load balancing. In this case, the coordinator server regenerates a new distribution map and redistributes the buckets in such a way that all cluster nodes will have data of equal size.
Note
Data load balancing can also be performed manually from the NCache Management Center.
Whatever the reason for state transfer, this whole process is automatic and seamless. And, during state transfer, especially when a server node leaves the cache cluster, all client operations that were intended for the leaving node, are served from its replica through cluster operations.
Replicas also perform state transfer from their active nodes just like other active nodes. Replicas pull their assigned buckets from their active nodes to fetch the copy of data at the time of state transfer. However, this state transfer only takes place on bucket reassignment. Otherwise, data is replicated to the replicas through the replication mechanism.
Replicated Cache Topology
In a Replicated Cache topology, the entire cache dataset is completely duplicated on every single server node within the cluster.
On Node Join
On node join, a newly joined node asks the coordinator server to provide all of the cached data to synchronize itself with the rest of the cluster.
On Node Leave
No state transfer occurs because the remaining nodes already possess a complete copy of the full dataset.
See Also
Dynamic Clustering Overview
Dynamic State Transfer
Maintenance Mode