Strengthening Consistency in the Cassandra Distributed Key-Value Store
AUTHORS: Panagiotis Garefalakis, Panagiotis Papadopoulos, Ioannis Manousakis and Kostas Magoutis.
In Proceedings of 13th IFIP International Conference on Distributed Applications and Interoperable Systems (DAIS 2013), Florence, Italy, 3-6 June 2013.
Distributed highly-available key-value stores have emerged as important building blocks for applications handling large amounts of data. The Apache Cassandra system is one such popular store combining a key distribution mechanism based on consistent hashing with eventually-consistent data replication and membership mechanisms. Cassandra fits well applications that share its semantics but is a poor choice for traditional applications that require strong data consistency. In this work we strengthen the consistency of Cassandra through the use of appropriate components: the Oracle Berkeley DB Java Edition High Availability storage engine for data replication and a replicated directory for maintaining membership information. The first component ensures that data replicas remain consistent despite failures. The second component simplifies CassandraÃ¢â‚¬â„¢s membership, improving its consistency and availability. In this short note we argue that the resulting system fits a wider range of applications, and is more robust and easier to reason about.