ABSTRACT
Motivated by the increasing popularity of eventually consistent key-value stores as a commercial service, we address two important problems related to the consistency properties in a history of operations on a read/write register (i.e., the start time, finish time, argument, and response of every operation). First, we consider how to detect a consistency violation as soon as one happens. To this end, we formulate a specification for online verification algorithms, and we present such algorithms for several well-known consistency properties. Second, we consider how to quantify the severity of the violations, if a history is found to contain consistency violations. We investigate two quantities: one is the staleness of the reads, and the other is the commonality of violations. For staleness, we further consider time-based staleness and operation-count-based staleness. We present efficient algorithms that compute these quantities. We believe that addressing these problems helps both key-value store providers and users adopt data consistency as an important aspect of key-value store offerings.
- A. Aiyer, L. Alvisi, and R. A. Bazzi. One the availability of non-strict quorum systems. In Proceedings of the 19th International Symposium on Distributed Computing (DISC), pages 48--62, September 2005. Google ScholarDigital Library
- Amazon's Simple Storage Service. Available at http://aws.amazon.com/s3.Google Scholar
- Amazon's SimpleDB. Available at http://aws.amazon.com/simpledb.Google Scholar
- E. Anderson, X. Li, A. Merchant, M. A. Shah, K. Smathers, J. Tucek, M. Uysal, and J. J. Wylie. Efficient eventual consistency in Pahoehoe, an erasure-coded key-blob archive. In Proceedings of the 2010 IEEE/IFIP International Conference on Dependable Systems and Networks (DSN), pages 181--190, January 2010.Google ScholarCross Ref
- E. Anderson, X. Li, M. A. Shah, J. Tucek, and J. Wylie. What consistency does your key-value store actually provide? In Proceedings of the Sixth Workshop on Hot Topics in System Dependability (HotDep), October 2010. Google ScholarDigital Library
- E. Brewer. Towards robust distributed systems, 2000. Available at http://www.cs.berkeley.edu/ brewer/cs262b-2004/PODC-keynote.pdf.Google Scholar
- J. F. Cantin, M. H. Lipasti, and J. E. Smith. The complexity of verifying memory coherence and consistency. IEEE Transactions on Parallel and Distributed Systems, 16(7):663--671, July 2005. Google ScholarDigital Library
- Cassandra. Available at http://incubator.apache.org/cassandra/.Google Scholar
- B. F. Cooper, A. Silberstein, E. Tam, R. Ramakrishnan, and R. Sears. Benchmarking cloud serving systems with YCSB. In ACM Symposium on Cloud Computing (SoCC), pages 143--154, June 2010. Google ScholarDigital Library
- G. DeCandia, D. Hastorun, M. Jampani, G. Kakulapati, A. Lakshman, A. Pilchin, S. Sivasubramanian, P. Vosshall, and W. Vogels. Dynamo: Amazon's highly available key-value store. In Proceedings of the 21st ACM Symposium on Operating System Principles (SOSP), pages 205--220, October 2007. Google ScholarDigital Library
- A. Fekete, S. N. Goldrei, and J. P. Asejo. Quantifying isolation anomalies. In Proceedings of the 35th International Conference on Very Large Data Bases (VLDB), pages 467--478, August 2009. Google ScholarDigital Library
- M. R. Garey, R. L. Graham, D. S. Johnson, and D. E. Knuth. Complexity results for bandwidth minimization. SIAM Journal on Applied Mathematics, 34(3):477--495, May 1978.Google ScholarDigital Library
- M. R. Garey and D. S. Johnson. Computers and Intractability: A Guide to the Theory of NP-Completeness. Freeman, NY, 1979. Google ScholarDigital Library
- P. Gibbons and E. Korach. Testing shared memories. SIAM Journal on Computing, 26:1208--1244, August 1997. Google ScholarDigital Library
- W. Golab, X. Li, and M. A. Shah. Analyzing consistency properties for fun and profit. Technical Report HPL-2011-6, Hewlett-Packard Laboratories, 2011. Available at http://www.hpl.hp.com/techreports/2011/HPL-2011-6.pdf. Google ScholarDigital Library
- Google Storage for Developers. Available at http://code.google.com/apis/storage.Google Scholar
- U. I. Gupta, D. T. Lee, and J. Y.-T. Leung. Efficient algorithms for interval graphs and circular-arc graphs. Networks, 12:459--467, Winter 1982.Google ScholarCross Ref
- M. Herlihy and J. M. Wing. Linearizability: A correctness condition for concurrent objects. ACM Transactions on Programming Languages and Systems, 12(3):463--492, July 1990. Google ScholarDigital Library
- D. J. Kleitman and R. V. Vohra. Computing the bandwidth of interval graphs. SIAM Journal on Discrete Mathematics, 3(3):373--375, August 1990. Google ScholarDigital Library
- N. Krishnakumar and A. J. Bernstein. Bounded ignorance in replicated systems. In Proceedings of the Tenth ACM Symposium on Principles of Database Systems (PODS), pages 63--74, May 1991. Google ScholarDigital Library
- L. Lamport. How to make a multiprocessor computer that correctly executes multiprocess programs. IEEE Transactions on Computers, C-28(9):690--691, September 1979. Google ScholarDigital Library
- L. Lamport. On interprocess communication, Part I: Basic formalism and Part II: Algorithms. Distributed Computing, 1(2):77--101, June 1986.Google ScholarCross Ref
- J. Misra. Axioms for memory access in asynchronous hardware systems. ACM Transactions on Programming Languages and Systems, 8(1):142--153, January 1986. Google ScholarDigital Library
- C. H. Papadimitriou. The NP-completeness of the bandwidth minimization problem. Computing, 16(3):263--270, September 1976.Google ScholarCross Ref
- J. Saxe. Dynamic-programming algorithms for recognizing small-bandwidth graphs in polynomial time. SIAM Journal on Algebraic and Discrete Methods, 1(4):363--369, December 1980.Google ScholarDigital Library
- A. Singla, U. Ramachandran, and J. Hodgins. Temporal notions of synchronization and consistency in Beehive. In Proceedings of the Ninth ACM Symposium on Parallel Algorithms and Architectures (SPAA), pages 211--220, June 1997. Google ScholarDigital Library
- R. N. Taylor. Complexity of analyzing the synchronization structure of concurrent progreams. Acta Informatica, 19(1):57--84, April 1983.Google ScholarDigital Library
- F. J. Torres-Rojas, M. Ahamad, and M. Raynal. Timed consistency for shared distributed objects. In Proceedings of the 18th ACM Symposium on Principles of Distributed Computing (PODC), pages 163--172, May 1999. Google ScholarDigital Library
- W. Vogels. Eventually consistent. Communications of the ACM, 52(1):40--44, January 2009. Google ScholarDigital Library
- Voldemort. Available at http://project-voldemort.com/.Google Scholar
- H. Wada, A. Fekete, L. Zhao, K. Lee, and A. Liu. Data consistency properties and the trade-offs in commercial cloud storages: the consumers' perspective. In Proceedings of the Fifth Biennial Conference on Innovative Data Systems Research (CIDR), January 2011.Google Scholar
- H. Yu and A. Vahdat. Design and evaluation of a conit-based continuous consistency model for replicated services. ACM Transactions on Computer Systems, 20(3):239--282, August 2002. Google ScholarDigital Library
Index Terms
- Analyzing consistency properties for fun and profit
Recommendations
HasFS: optimizing file system consistency mechanism on NVM-based hybrid storage architecture
AbstractIn order to protect the data during system crash, traditional DRAM–DISK architecture file systems (e.g., EXT4) need to synchronize the dirty metadata and data from the memory to disk. At the same time, the disk synchronization may break the ...
Computing Weak Consistency in Polynomial Time: [Extended Abstract]
PODC '15: Proceedings of the 2015 ACM Symposium on Principles of Distributed ComputingThe k-atomicity property can be used to describe the consistency of data operations in large distributed storage systems. The weak consistency guarantees offered by such systems are seen as a necessary compromise in view of Brewer's CAP principle. The k-...
LSM-tree managed storage for large-scale key-value store
SoCC '17: Proceedings of the 2017 Symposium on Cloud ComputingKey-value stores are increasingly adopting LSM-trees as their enabling data structure in the backend storage, and persisting their clustered data through a file system. A file system is expected to not only provide file/directory abstraction to organize ...
Comments