Partition Manager

Session locations are tracked by partitions. Partitions are evenly distributed across the hosting peers of a Service Space. The management of these partitions is performed by a Partition Manager, which:

Partition Rebalancing

Each time that a cluster membership change is detected, e.g. when a peer joins a Service Space, a partition rebalancing singleton service is responsible for computing a new distribution plan for the partitions so that partitions are evenly distributed.

For instance, the rebalancing of 12 partitions works as follows:

Partition Repopulation

When a peer hosting some partitions fail, lost partitions are repopulated by the peers becoming the new owner of these partitions:

Example:

  1. Node 3, hosting some partitions, dies.
  2. The node hosting the partition rebalancing singleton service queries all the nodes in the cluster for the partitions they are owning.
  3. The partition rebalancing service identifies that:
    • some indexes have disappeared and need to be recreated; and
    • the disappeared partitions are to be managed by Node 1.
  4. The partition rebalancing service provides to all the nodes a new partition distribution plan.
  5. Node 1, which is instructed to acquire some lost partitions, queries the cluster for all the sessions belonging to the lost partitions.
  6. Node 1 repopulates the lost partitions based on the responses of the above query.

State Manager

State Manager is responsible for updating the session locations tracked by partitions when sessions are created, evacuated or destroyed: