Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

During Phase II, cache affinity for in-memory caches and persistence-enabled caches should be merged into one Affinity Topology. In order to improve user experience and keep the old behavior for in-memory caches, affinity topology switch policies are introduced. 

The policy is defined by a single boolean switch (auto-adjust enabled) and two timeouts - a soft timeout, which extends after each topology change and a hard timeout which should trigger baseline change if the hard timeout passes after first topology change event.

The policy configuration should be configurable and allow both manual affinity topology management and automatic management based on certain user settingsadjustable in runtime via JMX beans or control.sh utility and persist it's configuration to the node metastore. A joining node should use the most actual cluster configuration aligned upon cluster join.

After baseline adjustment on timeout is introduced, we can change the behavior of in-memory caches to conform to baseline topology, this should resolve the issues with joins between in-memory and persistent caches and open up more opportunities for PME optimizations.

After all, we should introduce some sort of tracking of which node 'seen' the latest version of each partition upon node failure and work with partition LOSS policy accordingly.

Functionality related to compute grid and services is not affected by Phase II.

...

During Phase III, a procedure of graceful node decomissioning decommissioning is introduced. This procedure should allow to shrink clusters with 0 backups. During a decomission decommission procedure, cluster should calculate an intermediate affinity and rebalance partitions that are owned by a node being decomissioneddecommissioned. After rebalance is finished, the node may be excluded from the cluster.

...