Scylla Anti-Entropy

Scylla replicates data according to eventual consistency. This means that, in Scylla, when considering the CAP Theorem, availability and partition tolerance are considered a higher priority over consistency. Although Scylla’s tunable consistency allows users to make a tradeoff between availability and consistency, Scylla’s consistency level is tunable per query.

However, over time, there can be a number of reasons for data inconsistencies, including:

  1. a down node;
  2. a network partition;
  3. dropped mutations;
  4. process crashes (before a flush);
  5. a replica that cannot write due to being out of resources;
  6. file corruption.

To mitigate entropy, or data inconsistency, Scylla uses a few different processes. The goal of Scylla anti-entropy - based on that of Apache Cassandra - is to compare data on all replicas, synchronize data between all replicas, and, finally, ensure each replica has the most recent data.

Anti-entropy measures include write-time changes such as hinted handoff, read-time changes such as read repair, and finally, periodic maintenance via repair.