[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/3486601.3486707acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article
Open access

Contract-based return-value commutativity: safely exploiting contract-based commutativity for faster serializable transactions

Published: 17 October 2021 Publication History

Abstract

A key challenge of designing distributed software systems is maintaining data consistency. We can define data consistency and data isolation guarantees --e.g. serializability-- in terms of schedules of atomic reads and writes, but this excludes schedules that would be semantically consistent. Others use manually provided information on "non-conflicting operations" to define guarantees that work for more applications allowing more parallel schedules. To be safe, an engineer might avoid marking operations as non-conflicting, with detrimental effects to efficiency. To be fast, they might mark more non-conflicting operations than is strictly safe.
Our goal is to help engineers by automatically deriving commutative operations (using their respective contracts) such that more parallel schedules with global consistency are possible. We define a new general consistency and isolation guarantee named "Return-Value Serializability" to check consistency claims automatically, and we present distributed event processing algorithms that make use of the same "Contract-based Commutativity" information. We validated both the definitions and the algorithms using model-checking with TLA+. Previous work provided evidence that local coordination avoidance such as applied here has a significant positive effect on the performance of distributed transaction systems.
Client-centric return-value commutativity promises to hit a sweet spot in design trade-offs for business applications, such as payment systems, that must scale-out while their operations are not embarrassingly parallel and consistency guarantees are of the highest priority. It can also provide design feedback, indicating that some operations will simply not scale together even before a line of code has been written.

References

[1]
Atul Adya. 1999. Weak Consistency: A Generalized Theory and Optimistic Implementations for Distributed Transactions. Ph. D. Dissertation. Massachusetts Institute of Technology. USA.
[2]
Marcos K. Aguilera and Douglas B. Terry. 2016. The Many Faces of Consistency. IEEE Data Eng. Bull., 39, 1 (2016), 3–13. http://sites.computer.org/debull/A16mar/p3.pdf
[3]
Peter Bailis, Alan Fekete, Michael J. Franklin, Ali Ghodsi, Joseph M. Hellerstein, and Ion Stoica. 2014. Coordination avoidance in database systems. Proc. VLDB Endow., 8, 3 (2014), Nov., 185–196. issn:2150-8097 https://doi.org/10.14778/2735508.2735509
[4]
Valter Balegas, Sérgio Duarte, Carla Ferreira, Rodrigo Rodrigues, Nuno Preguiça, Mahsa Najafzadeh, and Marc Shapiro. 2015. Putting consistency back into eventual consistency. In Proceedings of the Tenth European Conference on Computer Systems - EuroSys ’15. ACM Press, 6:1–6:16. isbn:9781450332385 https://doi.org/10.1145/2741948.2741972
[5]
Susanne Braun, Annette Bieniusa, and Frank Elberzhager. [n. d.]. Advanced Domain-Driven Design for Consistency in Distributed Data-Intensive Systems. In Proceedings of the 8th Workshop on Principles and Practice of Consistency for Distributed Data. ACM, 1–12. isbn:978-1-4503-8338-7 https://doi.org/10/gjs3st
[6]
Marc Brooker, Tao Chen, and Fan Ping. 2020. Millions of Tiny Databases. In 17th USENIX Symposium on Networked Systems Design and Implementation, NSDI 2020, Santa Clara, CA, USA, February 25-27, 2020, Ranjita Bhagwan and George Porter (Eds.). USENIX Association, 463–478.
[7]
Natacha Crooks, Youer Pu, Lorenzo Alvisi, and Allen Clement. 2017. Seeing is Believing. In Proceedings of the ACM Symposium on Principles of Distributed Computing, Elad Michael Schiller and Alexander A. Schwarzmann (Eds.). ACM, 73–82. isbn:9781450349925 https://doi.org/10.1145/3087801.3087802
[8]
Leonardo Mendonça de Moura and Nikolaj Bjørner. 2008. Z3: An Efficient SMT Solver. In TACAS (Lecture Notes in Computer Science, Vol. 4963). Springer, 337–340.
[9]
Eric Evans and Eric J Evans. 2004. Domain-driven design - tackling complexity in the heart of software. Addison-Wesley. isbn:978-0-321-12521-7
[10]
Jim Gray and Leslie Lamport. 2006. Consensus on Transaction Commit. ACM Transactions on Database Systems, 31, 1 (2006), 133–160. https://doi.org/10.1145/1132863.1132867
[11]
Jason Gustafson and Guozhang Wang. 2020. Hardening Kafka Replication. https://github.com/hachikuji/kafka-specification
[12]
Joseph M. Hellerstein and Peter Alvaro. 2019. Keeping CALM: When Distributed Consistency is Easy. CoRR, abs/1901.01930 (2019), arxiv:1901.01930. arxiv:1901.01930
[13]
Daniel Jackson. 2006. Software Abstractions - Logic, Language, and Analysis. MIT Press. isbn:978-0-262-10114-1
[14]
Leslie Lamport. 1998. The Part-Time Parliament. ACM Trans. Comput. Syst., 16, 2 (1998), 133–169. https://doi.org/10.1145/279227.279229
[15]
Leslie Lamport. 2002. Specifying Systems, The TLA+ Language and Tools for Hardware and Software Engineers. Addison-Wesley. isbn:0-3211-4306-X
[16]
Cheng Li, Daniel Porto, Allen Clement, Johannes Gehrke, Nuno M. Preguiça, and Rodrigo Rodrigues. 2012. Making Geo-Replicated Systems Fast as Possible, Consistent when Necessary. In OSDI. USENIX Association, 265–278.
[17]
Microsoft. 2020. High-Level TLA+ Specifications for the Five Consistency Levels Offered by Azure Cosmos DB. https://github.com/Azure/azure-cosmos-tla
[18]
Chris Newcombe, Tim Rath, Fan Zhang, Bogdan Munteanu, Marc Brooker, and Michael Deardeuff. 2015. How Amazon web services uses formal methods. Commun. ACM, 58, 4 (2015), March, 66–73. issn:0001-0782, 1557-7317 https://doi.org/10.1145/2699417
[19]
Diego Ongaro and John K. Ousterhout. 2014. In Search of an Understandable Consensus Algorithm. In 2014 USENIX Annual Technical Conference, USENIX ATC ’14, Philadelphia, PA, USA, June 19-20, 2014, Garth Gibson and Nickolai Zeldovich (Eds.). USENIX Association, 305–319. https://www.usenix.org/conference/atc14/technical-sessions/presentation/ongaro
[20]
Nuno M. Preguiça, Carlos Baquero, and Marc Shapiro. 2018. Conflict-free Replicated Data Types (CRDTs). CoRR, abs/1805.06358 (2018), arxiv:1805.06358. arxiv:1805.06358
[21]
Marc Shapiro, Nuno M. Preguiça, Carlos Baquero, and Marek Zawirski. 2011. Conflict-Free Replicated Data Types. In SSS (Lecture Notes in Computer Science, Vol. 6976). Springer, 386–400.
[22]
Tim Soethout. 2021. TimSoethout/cbc-artifacts: Artifacts for AGERE’21 paper “Contract-Based Return-Value Commutativity: Safely exploiting contract-based commutativity for faster serializable transactions”. https://doi.org/10.5281/zenodo.5497756
[23]
Tim Soethout, Tijs van der Storm, and Jurgen J. Vinju. 2019. Static local coordination avoidance for distributed objects. In Proceedings of the 9th ACM SIGPLAN International Workshop on Programming Based on Actors, Agents, and Decentralized Control - AGERE 2019. ACM Press, 21–30. isbn:9781450369824 https://doi.org/10.1145/3358499.3361222
[24]
Tim Soethout, Tijs van der Storm, and Jurgen J. Vinju. 2020. Automated Validation of State-Based Client-Centric Isolation with TLA^ +. In Software Engineering and Formal Methods. SEFM 2020 Collocated Workshops - ASYDE, CIFMA, and CoSim-CPS, Amsterdam, The Netherlands, September 14-15, 2020, Revised Selected Papers, Loek Cleophas and Mieke Massink (Eds.) (Lecture Notes in Computer Science, Vol. 12524). Springer, 43–57. https://doi.org/10.1007/978-3-030-67220-1_4
[25]
Tim Soethout, Tijs van der Storm, and Jurgen J. Vinju. 2021. Path-Sensitive Atomic Commit - Local Coordination Avoidance for Distributed Transactions. The Art, Science, and Engineering of Programming, 5, 1 (2021), 3. https://doi.org/10.22152/programming-journal.org/2021/5/3
[26]
Jouke Stoel, Tijs van der Storm, Jurgen Vinju, and Joost Bosman. 2016. Solving the bank with Rebel: On the design of the Rebel specification language and its application inside a bank. In Proceedings of the 1st Industry Track on Software Language Engineering - ITSLE 2016. ACM Press, 13–20. isbn:9781450346467 https://doi.org/10.1145/2998407.2998413
[27]
Jouke Stoel, Tijs van der Storm, and Jurgen Vinju. 2021. Modeling with Mocking. In 2021 IEEE 14th International Conference on Software Testing, Validation and Verification (ICST). 59–70. https://doi.org/10.1109/ICST49551.2021.00018
[28]
Gerhard Weikum and Gottfried Vossen. 2002. Transactional Information Systems. Elsevier. isbn:9781558605084 https://doi.org/10.1016/c2009-0-27891-3
[29]
Xin Zhao and Philipp Haller. 2018. Observable atomic consistency for CvRDTs. In Proceedings of the 8th ACM SIGPLAN International Workshop on Programming Based on Actors, Agents, and Decentralized Control - AGERE 2018. ACM Press, 23–32. isbn:9781450360661 https://doi.org/10.1145/3281366.3281372

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
AGERE 2021: Proceedings of the 11th ACM SIGPLAN International Workshop on Programming Based on Actors, Agents, and Decentralized Control
October 2021
36 pages
ISBN:9781450391047
DOI:10.1145/3486601
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].

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 17 October 2021

Permissions

Request permissions for this article.

Check for updates

Badges

Author Tags

  1. coordination
  2. distributed objects
  3. distributed systems
  4. model checking
  5. transactions

Qualifiers

  • Research-article

Conference

SPLASH '21
Sponsor:
SPLASH '21: Software for Humanity
October 17, 2021
IL, Chicago, USA

Acceptance Rates

Overall Acceptance Rate 19 of 35 submissions, 54%

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 193
    Total Downloads
  • Downloads (Last 12 months)76
  • Downloads (Last 6 weeks)7
Reflects downloads up to 18 Jan 2025

Other Metrics

Citations

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media