Page tree

Versions Compared


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


An eventually consistent map provides weaker consistency properties guarantees in return for superior read/write performance. All reads are performed on local state and all writes update local state first and in the background subsequently propagate updates to other replicas in the background. Users can configure this map with a ClockService that will be used to time stamp various update events. The timestamps are used to reorder updates that arrive out of order and thereby ensure ensure each replica applies updates to local state in the correct order. The map fixes replicas that get out of sync (due to lost updates) via a light weight background process known as anti-entropy. This ensures that the system state across all replicas eventually converges to the correct state.

An eventually consistent map fully replicates all its state. That means each node in the cluster will have a full copy of the map contents. The state is stored in memory on each node and that means a full cluster restart will result in data loss. In Cardinal, we will be introducing an option to persist data to disk so as to that it can survive a full cluster restart.