TY - JOUR
T1 - Strong and efficient consistency with consistency-aware durability
AU - Ganesan, Aishwarya
AU - Alagappan, Ramnatthan
AU - Arpaci-Dusseau, Andrea C.
AU - Arpaci-Dusseau, Remzi H.
N1 - Funding Information:
This material was supported by funding from NSF grants CNS-1421033, CNS-1763810 and CNS-1838733, DOE grant DESC0014935, and VMware. Aishwarya Ganesan is supported by a Facebook fellowship. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the authors and may not reflect the views of NSF, DOE, or any other institutions. This article is an extended version of a FAST'20 paper by Ganesan et al. [17]. The additional material here includes a description of how we implement Cad in Redis (another leader-based system), new experiments to evaluate the performance of Cad in Redis, new graphs showing the performance for additional YCSB workloads, more figures explaining the write path in Cad and the geo-distributed experimental setup, additional discussions related to asynchronous persistence and read path in followers, and many other small edits and improvements. We thank Yu Hua (our FAST'20 shepherd) and the anonymous reviewers of FAST'20 and TOS'20 for their insightful comments and suggestions. We thank the members of ADSL for their excellent feedback and Henrik Ingo for his discussions related to asynchronous persistence. We also thank CloudLab [51] for providing a great environment to run our experiments.
Funding Information:
This material was supported by funding from NSF grants CNS-1421033, CNS-1763810 and CNS-1838733, DOE grant DESC0014935, and VMware. Aishwarya Ganesan is supported by a Facebook fellowship. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the authors and may not reflect the views of NSF, DOE, or any other institutions. This article is an extended version of a FAST ’20 paper by Ganesan et al. [17]. The additional material here includes a description of how we implement Cad in Redis (another leader-based system), new experiments to evaluate the performance of Cad in Redis, new graphs showing the performance for additional YCSB workloads, more figures explaining the write path in Cad and the geo-distributed experimental setup, additional discussions related to asynchronous persistence and read path in followers, and many other small edits and improvements. Authors’ addresses: A. Ganesan, R. Alagappan, A. C. Arpaci-Dusseau, and R. H. Arpaci-Dusseau, 1210 W. Dayton St., Madison, WI 53706; emails: {ag, ra, dusseau, remzi}@cs.wisc.edu. Authors current address: A. Ganesan and R. Alagappan is currently at VMware Research, 3425 Hillview Ave, Palo Alto, CA 94304; emails: {aishwaryag, ralagappan}@vmware.com. Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]. © 2021 Copyright held by the owner/author(s). Publication rights licensed to ACM. 1553-3077/2021/01-ART4 $15.00 https://doi.org/10.1145/3423138
Publisher Copyright:
© 2021 Association for Computing Machinery. All rights reserved.
PY - 2021/1
Y1 - 2021/1
N2 - We introduce consistency-aware durability or Cad, a new approach to durability in distributed storage that enables strong consistency while delivering high performance. We demonstrate the efficacy of this approach by designing cross-client monotonic reads, a novel and strong consistency property that provides monotonic reads across failures and sessions in leader-based systems; such a property can be particularly beneficial in geo-distributed and edge-computing scenarios. We build Orca, a modified version of ZooKeeper that implements Cad and cross-client monotonic reads. We experimentally show that Orca provides strong consistency while closely matching the performance of weakly consistent ZooKeeper. Compared to strongly consistent ZooKeeper, Orca provides significantly higher throughput (1.8-3.3×) and notably reduces latency, sometimes by an order of magnitude in geo-distributed settings. We also implement Cad in Redis and show that the performance benefits are similar to that of Cad's implementation in ZooKeeper.
AB - We introduce consistency-aware durability or Cad, a new approach to durability in distributed storage that enables strong consistency while delivering high performance. We demonstrate the efficacy of this approach by designing cross-client monotonic reads, a novel and strong consistency property that provides monotonic reads across failures and sessions in leader-based systems; such a property can be particularly beneficial in geo-distributed and edge-computing scenarios. We build Orca, a modified version of ZooKeeper that implements Cad and cross-client monotonic reads. We experimentally show that Orca provides strong consistency while closely matching the performance of weakly consistent ZooKeeper. Compared to strongly consistent ZooKeeper, Orca provides significantly higher throughput (1.8-3.3×) and notably reduces latency, sometimes by an order of magnitude in geo-distributed settings. We also implement Cad in Redis and show that the performance benefits are similar to that of Cad's implementation in ZooKeeper.
KW - Consistency models
KW - Durability
KW - Persistence
KW - Replication
UR - http://www.scopus.com/inward/record.url?scp=85100439566&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85100439566&partnerID=8YFLogxK
U2 - 10.1145/3423138
DO - 10.1145/3423138
M3 - Article
AN - SCOPUS:85100439566
SN - 1553-3077
VL - 17
JO - ACM Transactions on Storage
JF - ACM Transactions on Storage
IS - 1
M1 - 4
ER -