Client-Centric Benchmarking of Eventual Consistency for Cloud Storage Systems

Eventually-consistent key-value storage systems sacrifice the ACID semantics of conventional databases to achieve superior latency and availability. However, this means that client applications, and hence end-users, can be exposed to stale data. The degree of staleness observed depends on various tuning knobs set by application developers (customers of key-value stores) and system administrators (providers of key-value stores). Both parties must be cognizant of how these tuning knobs affect the consistency observed by client applications in the interest of both providing the best end-user experience and maximizing revenues for storage providers. Quantifying consistency in a meaningful way is a critical step toward both understanding what clients actually observe, and supporting consistency-aware service level agreements (SLAs) in next generation storage systems. This paper proposes a novel consistency metric called Gamma that captures client-observed consistency. This metric provides quantitative answers to questions regarding observed consistency anomalies, such as how often they occur and how bad they are when they do occur. We argue that Gamma is more useful and accurate than existing metrics. We also apply Gamma to benchmark the popular Cassandra key-value store. Our experiments demonstrate that Gamma is sensitive to both the workload and client-level tuning knobs, and is preferable to existing techniques which focus on worst-case behavior.

[1]  Maurice Herlihy,et al.  Linearizability: a correctness condition for concurrent objects , 1990, TOPL.

[2]  Phillip B. Gibbons,et al.  Testing Shared Memories , 1997, SIAM J. Comput..

[3]  David Bermbach,et al.  Eventual consistency: How soon is eventual? An evaluation of Amazon S3's consistency behavior , 2011, MW4SOC '11.

[4]  Nancy A. Lynch,et al.  Brewer's conjecture and the feasibility of consistent, available, partition-tolerant web services , 2002, SIGA.

[5]  Christos H. Papadimitriou,et al.  The serializability of concurrent database updates , 1979, JACM.

[6]  Wojciech M. Golab,et al.  Toward a Principled Framework for Benchmarking Consistency , 2012, HotDep.

[7]  Werner Vogels,et al.  Eventually consistent , 2008, CACM.

[8]  Ion Stoica,et al.  Probabilistically Bounded Staleness for Practical Partial Quorums , 2012, Proc. VLDB Endow..

[9]  Jianmin Wang,et al.  Client-centric consistency formalization and verification for system with large-scale distributed data storage , 2010, Future Gener. Comput. Syst..

[10]  Bettina Kemme,et al.  How consistent is your cloud application? , 2012, SoCC '12.

[11]  Lin Xiao,et al.  YCSB++: benchmarking and performance debugging advanced features in scalable table stores , 2011, SoCC.

[12]  Sebastian Burckhardt,et al.  Understanding Eventual Consistency , 2013 .

[13]  Marc Shapiro,et al.  Convergent and Commutative Replicated Data Types , 2011, Bull. EATCS.

[14]  Xiaozhou Li,et al.  Analyzing consistency properties for fun and profit , 2011, PODC '11.

[15]  Leslie Lamport,et al.  On interprocess communication , 1986, Distributed Computing.

[16]  Marcos K. Aguilera,et al.  Consistency-based service level agreements for cloud storage , 2013, SOSP.

[17]  Kevin Lee,et al.  Data Consistency Properties and the Trade-offs in Commercial Cloud Storage: the Consumers' Perspective , 2011, CIDR.

[18]  Prashant Malik,et al.  Cassandra: a decentralized structured storage system , 2010, OPSR.

[19]  Christopher Frost,et al.  Spanner: Google's Globally-Distributed Database , 2012, OSDI.

[20]  Amin Vahdat,et al.  Design and evaluation of a conit-based continuous consistency model for replicated services , 2002, TOCS.

[21]  Rida A. Bazzi,et al.  On the Availability of Non-strict Quorum Systems , 2005, DISC.

[22]  Marc Shapiro,et al.  Conflict-Free Replicated Data Types , 2011, SSS.

[23]  Adam Silberstein,et al.  Benchmarking cloud serving systems with YCSB , 2010, SoCC '10.