new ways to scale • Services store their data in geo-replicated key-value stores • These data stores sacrifice consistency for higher availability • Some of these data stores have adopted CRDTs to solve the problem of data convergence
rapidly • Often impossible to keep all data in all replicas • Some systems adopt a partial replication model ◦ Queries may need to contact more than one replica to provide a response
can answer all queries, while maintaining only a subset of the data • Replicas of the same object are not required to have equivalent states, instead they are required to have observable equivalent states • For two states to be observable equivalent a read operation must return the same value for both
consistency in a quiescent state iff: 1. Every replica executed a set of operations that impact the final observable state 2. The state of any pair of replicas is observable equivalent
essential operations in some execution. • Masked, the subset of operations in some execution that are irrelevant to the final state of the replica Theorem (Sufficient conditions for NuEC). A replication system provides non-uniform eventual consistency (NuEC) if, for the set of operations O, in their execution the following conditions hold: • every replica executes a set of core operations of O and • all operations commute.
Operations that are core 2. Operations that are forever masked 3. Operations that are masked but can become core 4. Operations that are masked but in the context of the entire system would be considered core 20 Algorithm for NuEC
type • Up to 500,000 operations are generated and executed • Values used are randomly selected using uniform distribution • Comparison with Delta CRDTs and Computational CRDTs
kept in a single data center Solution: Create two versions of the transaction before propagating, one with all the operations and one with only core operations
executes it may cause other operations to become core, how do we propagate these? Solution: Once the operation is executed in the Materializer we send the new operations to the InterDC replication for propagation
its semantics for an eventually consistent system • Showed how the model is applied to different data type designs • Implemented our designs in the AntidoteDB key-value store
for other consistency models, such as linearizability and serializability • Design more useful data types, particularly for Big Data and Machine Learning environments • Cleanup and merge our changes into AntidoteDB’s main branch