{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,4,10]],"date-time":"2026-04-10T11:59:32Z","timestamp":1775822372991,"version":"3.50.1"},"reference-count":55,"publisher":"Association for Computing Machinery (ACM)","issue":"1","license":[{"start":{"date-parts":[[2021,1,18]],"date-time":"2021-01-18T00:00:00Z","timestamp":1610928000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/2.zoppoz.workers.dev:443\/https\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"DOI":"10.13039\/100016682","name":"VMware","doi-asserted-by":"crossref","id":[{"id":"10.13039\/100016682","id-type":"DOI","asserted-by":"crossref"}]},{"name":"DOE","award":["DE-SC0014935"],"award-info":[{"award-number":["DE-SC0014935"]}]},{"name":"NSF","award":["CNS-1763810,CNS-1763810, and CNS-1838733"],"award-info":[{"award-number":["CNS-1763810,CNS-1763810, and CNS-1838733"]}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Storage"],"published-print":{"date-parts":[[2021,2,28]]},"abstract":"<jats:p>\n            We introduce\n            <jats:italic>consistency-aware durability<\/jats:italic>\n            or C\n            <jats:sc>ad<\/jats:sc>\n            , 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\n            <jats:italic>cross-client monotonic reads<\/jats:italic>\n            , 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 O\n            <jats:sc>rca<\/jats:sc>\n            , a modified version of ZooKeeper that implements C\n            <jats:sc>ad<\/jats:sc>\n            and cross-client monotonic reads. We experimentally show that O\n            <jats:sc>rca<\/jats:sc>\n            provides strong consistency while closely matching the performance of weakly consistent ZooKeeper. Compared to strongly consistent ZooKeeper, O\n            <jats:sc>rca<\/jats:sc>\n            provides significantly higher throughput (1.8--3.3\u00d7) and notably reduces latency, sometimes by an order of magnitude in geo-distributed settings. We also implement C\n            <jats:sc>ad<\/jats:sc>\n            in Redis and show that the performance benefits are similar to that of C\n            <jats:sc>ad<\/jats:sc>\n            \u2019s implementation in ZooKeeper.\n          <\/jats:p>","DOI":"10.1145\/3423138","type":"journal-article","created":{"date-parts":[[2021,1,18]],"date-time":"2021-01-18T13:16:30Z","timestamp":1610975790000},"page":"1-27","update-policy":"https:\/\/2.zoppoz.workers.dev:443\/https\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":7,"title":["Strong and Efficient Consistency with Consistency-aware Durability"],"prefix":"10.1145","volume":"17","author":[{"given":"Aishwarya","family":"Ganesan","sequence":"first","affiliation":[{"name":"University of Wisconsin -- Madison, WI"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Ramnatthan","family":"Alagappan","sequence":"additional","affiliation":[{"name":"University of Wisconsin -- Madison, WI"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Andrea C.","family":"Arpaci-Dusseau","sequence":"additional","affiliation":[{"name":"University of Wisconsin -- Madison, WI"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Remzi H.","family":"Arpaci-Dusseau","sequence":"additional","affiliation":[{"name":"University of Wisconsin -- Madison, WI"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2021,1,18]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.5555\/3291168.3291197"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.5555\/3026877.3026890"},{"key":"e_1_2_1_3_1","unstructured":"Apache. ZooKeeper. Retrieved from https:\/\/2.zoppoz.workers.dev:443\/https\/zookeeper.apache.org\/.  Apache. ZooKeeper. Retrieved from https:\/\/2.zoppoz.workers.dev:443\/https\/zookeeper.apache.org\/."},{"key":"e_1_2_1_4_1","unstructured":"Apache. ZooKeeper Configuration Parameters. Retrieved from https:\/\/2.zoppoz.workers.dev:443\/https\/zookeeper.apache.org\/doc\/r3.1.2\/zookeeperAdmin.html#sc_configuration.  Apache. ZooKeeper Configuration Parameters. Retrieved from https:\/\/2.zoppoz.workers.dev:443\/https\/zookeeper.apache.org\/doc\/r3.1.2\/zookeeperAdmin.html#sc_configuration."},{"key":"e_1_2_1_5_1","unstructured":"Apache. ZooKeeper Guarantees Properties and Definitions. Retrieved from https:\/\/2.zoppoz.workers.dev:443\/https\/zookeeper.apache.org\/doc\/r3.2.2\/zookeeperInternals.html#sc_guaranteesPropertiesDefinitions.  Apache. ZooKeeper Guarantees Properties and Definitions. Retrieved from https:\/\/2.zoppoz.workers.dev:443\/https\/zookeeper.apache.org\/doc\/r3.2.2\/zookeeperInternals.html#sc_guaranteesPropertiesDefinitions."},{"key":"e_1_2_1_6_1","unstructured":"Apache. ZooKeeper Leader Activation. Retrieved from https:\/\/2.zoppoz.workers.dev:443\/https\/zookeeper.apache.org\/doc\/r3.2.2\/zookeeperInternals.html#sc_leaderElection.  Apache. ZooKeeper Leader Activation. Retrieved from https:\/\/2.zoppoz.workers.dev:443\/https\/zookeeper.apache.org\/doc\/r3.2.2\/zookeeperInternals.html#sc_leaderElection."},{"key":"e_1_2_1_7_1","unstructured":"Apache. ZooKeeper Overview. Retrieved from https:\/\/2.zoppoz.workers.dev:443\/https\/zookeeper.apache.org\/doc\/r3.5.1-alpha\/zookeeperOver.html.  Apache. ZooKeeper Overview. Retrieved from https:\/\/2.zoppoz.workers.dev:443\/https\/zookeeper.apache.org\/doc\/r3.5.1-alpha\/zookeeperOver.html."},{"key":"e_1_2_1_8_1","unstructured":"Apache ZooKeeper. ZooKeeper Consistency Guarantees. Retrieved from https:\/\/2.zoppoz.workers.dev:443\/https\/zookeeper.apache.org\/doc\/r3.3.3\/zookeeperProgrammers.html#ch_zkGuarantees.  Apache ZooKeeper. ZooKeeper Consistency Guarantees. Retrieved from https:\/\/2.zoppoz.workers.dev:443\/https\/zookeeper.apache.org\/doc\/r3.3.3\/zookeeperProgrammers.html#ch_zkGuarantees."},{"key":"e_1_2_1_9_1","unstructured":"Apache ZooKeeper. ZooKeeper Programmer\u2019s Guide - ZooKeeper Stat Structure. Retrieved from https:\/\/2.zoppoz.workers.dev:443\/https\/zookeeper.apache.org\/doc\/r3.1.2\/zookeeperProgrammers.html#sc_zkStatStructure.  Apache ZooKeeper. ZooKeeper Programmer\u2019s Guide - ZooKeeper Stat Structure. Retrieved from https:\/\/2.zoppoz.workers.dev:443\/https\/zookeeper.apache.org\/doc\/r3.1.2\/zookeeperProgrammers.html#sc_zkStatStructure."},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/2463676.2465279"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.5555\/1972457.1972472"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.5555\/876878.879288"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/2517349.2522726"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/2168836.2168854"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/1807128.1807152"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/41840.41841"},{"key":"e_1_2_1_17_1","volume-title":"Proceedings of the 18th USENIX Conference on File and Storage Technologies (FAST\u201920)","author":"Ganesan Aishwarya","unstructured":"Aishwarya Ganesan , Ramnatthan Alagappan , Andrea C. Arpaci-Dusseau , and Remzi H . Arpaci-Dusseau. 2020. Strong and efficient consistency with consistency-aware durability . In Proceedings of the 18th USENIX Conference on File and Storage Technologies (FAST\u201920) . Aishwarya Ganesan, Ramnatthan Alagappan, Andrea C. Arpaci-Dusseau, and Remzi H. Arpaci-Dusseau. 2020. Strong and efficient consistency with consistency-aware durability. In Proceedings of the 18th USENIX Conference on File and Storage Technologies (FAST\u201920)."},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.5555\/3307441.3307449"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/74851.74870"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.5555\/3026877.3026891"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/78969.78972"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.5555\/1855840.1855851"},{"key":"e_1_2_1_23_1","unstructured":"Henrik Ingo and Aishwarya Ganesan. 2020. Discussion with Henrik Ingo. Retrieved from https:\/\/2.zoppoz.workers.dev:443\/https\/www.openlife.cc\/comment\/662091#comment-662091.  Henrik Ingo and Aishwarya Ganesan. 2020. Discussion with Henrik Ingo. Retrieved from https:\/\/2.zoppoz.workers.dev:443\/https\/www.openlife.cc\/comment\/662091#comment-662091."},{"key":"e_1_2_1_24_1","unstructured":"Jonathan Corbet. 2009. O_*SYNC. Retrieved from https:\/\/2.zoppoz.workers.dev:443\/https\/lwn.net\/Articles\/350219\/.  Jonathan Corbet. 2009. O_ * SYNC. Retrieved from https:\/\/2.zoppoz.workers.dev:443\/https\/lwn.net\/Articles\/350219\/."},{"key":"e_1_2_1_25_1","unstructured":"Karthik Ranganathan. 2019. Low latency reads in geo-distributed SQL with raft leader leases. Retrieved from https:\/\/2.zoppoz.workers.dev:443\/https\/blog.yugabyte.com\/low-latency-reads-in-geo-distributed-sql-with-raft-leader-leases\/.  Karthik Ranganathan. 2019. Low latency reads in geo-distributed SQL with raft leader leases. Retrieved from https:\/\/2.zoppoz.workers.dev:443\/https\/blog.yugabyte.com\/low-latency-reads-in-geo-distributed-sql-with-raft-leader-leases\/."},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/357172.357176"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/2815400.2815416"},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/2043556.2043593"},{"key":"e_1_2_1_30_1","unstructured":"LogCabin. 2016. Retrieved from https:\/\/2.zoppoz.workers.dev:443\/https\/github.com\/logcabin\/logcabin.  LogCabin. 2016. Retrieved from https:\/\/2.zoppoz.workers.dev:443\/https\/github.com\/logcabin\/logcabin."},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/2815400.2815426"},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.5555\/3154630.3154668"},{"key":"e_1_2_1_33_1","unstructured":"MongoDB. 2020. MongoDB Read Preference. Retrieved from https:\/\/2.zoppoz.workers.dev:443\/https\/docs.mongodb.com\/manual\/core\/read-preference\/.  MongoDB. 2020. MongoDB Read Preference. Retrieved from https:\/\/2.zoppoz.workers.dev:443\/https\/docs.mongodb.com\/manual\/core\/read-preference\/."},{"key":"e_1_2_1_34_1","unstructured":"MongoDB. 2020. MongoDB Replication. Retrieved from https:\/\/2.zoppoz.workers.dev:443\/https\/docs.mongodb.org\/manual\/replication\/.  MongoDB. 2020. MongoDB Replication. Retrieved from https:\/\/2.zoppoz.workers.dev:443\/https\/docs.mongodb.org\/manual\/replication\/."},{"key":"e_1_2_1_35_1","unstructured":"MongoDB. 2018. Non-Blocking Secondary Reads. Retrieved from https:\/\/2.zoppoz.workers.dev:443\/https\/www.mongodb.com\/blog\/post\/mongodb-40-nonblocking-secondary-reads.  MongoDB. 2018. Non-Blocking Secondary Reads. Retrieved from https:\/\/2.zoppoz.workers.dev:443\/https\/www.mongodb.com\/blog\/post\/mongodb-40-nonblocking-secondary-reads."},{"key":"e_1_2_1_36_1","unstructured":"MongoDB. 2019. Read Concern Linearizable. Retrieved from https:\/\/2.zoppoz.workers.dev:443\/https\/docs.mongodb.com\/manual\/reference\/read-concern-linearizable\/.  MongoDB. 2019. Read Concern Linearizable. Retrieved from https:\/\/2.zoppoz.workers.dev:443\/https\/docs.mongodb.com\/manual\/reference\/read-concern-linearizable\/."},{"key":"e_1_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/2517349.2517350"},{"key":"e_1_2_1_38_1","volume-title":"Proceedings of the USENIX Workshop on Hot Topics in Edge Computing (HotEdge\u201918)","author":"Mortazavi Seyed Hossein","year":"2018","unstructured":"Seyed Hossein Mortazavi , Bharath Balasubramanian , Eyal de Lara , and Shankaranarayanan Puzhavakath Narayanan . 2018 . Toward session consistency for the edge . In Proceedings of the USENIX Workshop on Hot Topics in Edge Computing (HotEdge\u201918) . Seyed Hossein Mortazavi, Bharath Balasubramanian, Eyal de Lara, and Shankaranarayanan Puzhavakath Narayanan. 2018. Toward session consistency for the edge. In Proceedings of the USENIX Workshop on Hot Topics in Edge Computing (HotEdge\u201918)."},{"key":"e_1_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.5555\/1267308.1267309"},{"key":"e_1_2_1_40_1","unstructured":"Diego Ongaro. 2014. Consensus: Bridging Theory and Practice. PhD thesis. Stanford University Stanford CA.  Diego Ongaro. 2014. Consensus: Bridging Theory and Practice. PhD thesis. Stanford University Stanford CA."},{"key":"e_1_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.5555\/2643634.2643666"},{"key":"e_1_2_1_42_1","doi-asserted-by":"publisher","DOI":"10.5555\/2789770.2789774"},{"key":"e_1_2_1_43_1","doi-asserted-by":"publisher","DOI":"10.1023\/A:1011862121702"},{"key":"e_1_2_1_44_1","unstructured":"Redis. Redis. Retrieved from https:\/\/2.zoppoz.workers.dev:443\/http\/redis.io\/.  Redis. Redis. Retrieved from https:\/\/2.zoppoz.workers.dev:443\/http\/redis.io\/."},{"key":"e_1_2_1_45_1","unstructured":"Redis. Redis Persistence. Retrieved from https:\/\/2.zoppoz.workers.dev:443\/https\/redis.io\/topics\/persistence.  Redis. Redis Persistence. Retrieved from https:\/\/2.zoppoz.workers.dev:443\/https\/redis.io\/topics\/persistence."},{"key":"e_1_2_1_46_1","unstructured":"Redis. Redis Replication. Retrieved from https:\/\/2.zoppoz.workers.dev:443\/http\/redis.io\/topics\/replication.  Redis. Redis Replication. Retrieved from https:\/\/2.zoppoz.workers.dev:443\/http\/redis.io\/topics\/replication."},{"key":"e_1_2_1_47_1","unstructured":"Redis. Redis Sentinel Documentation. Retrieved from https:\/\/2.zoppoz.workers.dev:443\/https\/redis.io\/topics\/sentinel.  Redis. Redis Sentinel Documentation. Retrieved from https:\/\/2.zoppoz.workers.dev:443\/https\/redis.io\/topics\/sentinel."},{"key":"e_1_2_1_48_1","unstructured":"Redis. Redis WAIT. Retrieved from https:\/\/2.zoppoz.workers.dev:443\/https\/redis.io\/commands\/wait.  Redis. Redis WAIT. Retrieved from https:\/\/2.zoppoz.workers.dev:443\/https\/redis.io\/commands\/wait."},{"key":"e_1_2_1_49_1","unstructured":"Redis. Scaling Reads. Retrieved from https:\/\/2.zoppoz.workers.dev:443\/https\/redislabs.com\/ebook\/part-3-next-steps\/chapter-10-scaling-redis\/10-1-scaling-reads\/.  Redis. Scaling Reads. Retrieved from https:\/\/2.zoppoz.workers.dev:443\/https\/redislabs.com\/ebook\/part-3-next-steps\/chapter-10-scaling-redis\/10-1-scaling-reads\/."},{"key":"e_1_2_1_50_1","unstructured":"Retwis. 2014. Retwis. Retrieved from https:\/\/2.zoppoz.workers.dev:443\/https\/github.com\/antirez\/retwis.  Retwis. 2014. Retwis. Retrieved from https:\/\/2.zoppoz.workers.dev:443\/https\/github.com\/antirez\/retwis."},{"key":"e_1_2_1_51_1","volume-title":"Introducing CloudLab: Scientific infrastructure for advancing cloud architectures and applications. USENIX ;login: 39, 6","author":"Ricci Robert","year":"2014","unstructured":"Robert Ricci , Eric Eide , and CloudLab Team . 2014. Introducing CloudLab: Scientific infrastructure for advancing cloud architectures and applications. USENIX ;login: 39, 6 ( 2014 ). Robert Ricci, Eric Eide, and CloudLab Team. 2014. Introducing CloudLab: Scientific infrastructure for advancing cloud architectures and applications. USENIX ;login: 39, 6 (2014)."},{"key":"e_1_2_1_52_1","doi-asserted-by":"publisher","DOI":"10.1145\/2500500"},{"key":"e_1_2_1_53_1","doi-asserted-by":"publisher","DOI":"10.5555\/381992.383631"},{"key":"e_1_2_1_54_1","doi-asserted-by":"publisher","DOI":"10.1145\/2926965"},{"key":"e_1_2_1_55_1","doi-asserted-by":"publisher","DOI":"10.5555\/1558977.1558994"},{"key":"e_1_2_1_56_1","doi-asserted-by":"publisher","DOI":"10.5555\/3189759.3189779"}],"container-title":["ACM Transactions on Storage"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/2.zoppoz.workers.dev:443\/https\/dl.acm.org\/doi\/10.1145\/3423138","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/2.zoppoz.workers.dev:443\/https\/dl.acm.org\/doi\/pdf\/10.1145\/3423138","content-type":"application\/pdf","content-version":"vor","intended-application":"syndication"},{"URL":"https:\/\/2.zoppoz.workers.dev:443\/https\/dl.acm.org\/doi\/pdf\/10.1145\/3423138","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T21:24:56Z","timestamp":1750195496000},"score":1,"resource":{"primary":{"URL":"https:\/\/2.zoppoz.workers.dev:443\/https\/dl.acm.org\/doi\/10.1145\/3423138"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2021,1,18]]},"references-count":55,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2021,2,28]]}},"alternative-id":["10.1145\/3423138"],"URL":"https:\/\/2.zoppoz.workers.dev:443\/https\/doi.org\/10.1145\/3423138","relation":{},"ISSN":["1553-3077","1553-3093"],"issn-type":[{"value":"1553-3077","type":"print"},{"value":"1553-3093","type":"electronic"}],"subject":[],"published":{"date-parts":[[2021,1,18]]},"assertion":[{"value":"2020-06-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2020-09-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2021-01-18","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}