LSMCD Replication
This page provides a description of how the replication works in LSMCD. Replication is done across a group of LSMCD instances known as a Replication Group. The LSMCD instances will constantly stay in contact with one another to ensure that all instances have the same data. The data stored is divided into slices. Slices are used so that the processes within a single instance does not conflict with each other.
Key Terms:
Replication Group - The collection of LSMCD instances that will interact with each other.
Slice - A portion of the data to be stored.
Requirements of the Replication Group:
Each instance must have the same number of slices.
Each slice must have a priority value.
Example Group:
Instance A:
Cached.Slices=4 Cached.Slice.Priority.0=200 Cached.Slice.Priority.1=200 Cached.Slice.Priority.2=200 Cached.Slice.Priority.3=200
Instance B:
Cached.Slices=4 Cached.Slice.Priority.0=100 Cached.Slice.Priority.1=300 Cached.Slice.Priority.2=100 Cached.Slice.Priority.3=300
Both A and B have the same number of slices, and each slice has a priority value.
The priority value of each slice will only be compared to the priority value of the same slice number in the other LSMCD instances. So the Cached.Slice.Priority.0 of instance A will be compared to Cached.Slice.Priority.0 of instance B.
The lowest priority value indicates the ‘master slice’ of the group. Since it is based on slice priority, it is possible for one instance to have a master slice and another instance to have a master slice as well.
In this example, instance A will have the master slice for slices 1 and 3. Instance B will have the master slice for slice 0 and 2.
Any data sent to a non-master slice will be forwarded to the master instance to process. Data sent to a master slice will be processed by the master slice. Once processed, the updates will be forwarded to the other slices.