Observable atomic consistency for CvRDTs
The development of distributed systems requires developers to balance the need for consistency, availability, and partition tolerance. The recently proposed Global Sequence Protocol (GSP) provides an abstract, high-level programming model for asynchronous commands between client and server, which provides a foundation for implementations as well as consistency guarantees. In order to enable offline availability, GSP allows a client to read its own writes even when the client is offline. However, this model can give rise to consistency anomalies that are difficult to debug. In this paper we propose a new consistency protocol, the observable atomic consistency protocol (OACP). OACP enables a principled relaxation of consistency to achieve better performance in certain scenarios. OACP combines the advantages of mergeable data types, specifically, convergent replicated data types (CvRDTs), and reliable total order broadcast (RTOB) to provide on-demand strong consistency, avoiding the anomalies of GSP and related protocols. We implement OACP using Akka Cluster, a state-of-the-art actor framework used in popular, large-scale web applications. The paper also presents an experimental comparison of GSP and OACP. Our evaluation shows that OACP is able to provide lower latency and higher throughput than GSP in several benchmarks.
READ FULL TEXT