What consistency does your key-value store actually provide?

  • Authors:
  • Eric Anderson;Xiaozhou Li;Mehul A. Shah;Joseph Tucek;Jay J. Wylie

  • Affiliations:
  • Hewlett-Packard Laboratories;Hewlett-Packard Laboratories;Hewlett-Packard Laboratories;Hewlett-Packard Laboratories;Hewlett-Packard Laboratories

  • Venue:
  • HotDep'10 Proceedings of the Sixth international conference on Hot topics in system dependability
  • Year:
  • 2010

Quantified Score

Hi-index 0.03

Visualization

Abstract

Many key-value stores have recently been proposed as platforms for always-on, globally-distributed, Internet-scale applications. To meet their needs, these stores often sacrifice consistency for availability. Yet, few tools exist that can verify the consistency actually provided by a key-value store, and quantify the violations if any. How can a user check if a storage system meets its promise of consistency? If a system only promises eventual consistency, how bad is it really? In this paper, we present efficient algorithms that help answer these questions. By analyzing the trace of interactions between the client machines and a key-value store, the algorithms can report whether the trace is safe, regular, or atomic, and if not, how many violations there are in the trace. We run these algorithms on traces of our eventually consistent key-value store called Pahoehoe and find few or no violations, thus showing that it often behaves like a strongly consistent system during our tests.