skip to main content
10.1145/3514221.3526172acmconferencesArticle/Chapter ViewAbstractPublication PagesmodConference Proceedingsconference-collections

Hybrid Deterministic and Nondeterministic Execution of Transactions in Actor Systems

Published:11 June 2022Publication History

ABSTRACT

The actor model has been widely adopted in building stateful middle-tiers for large-scale interactive applications, where ACID transactions are useful to ensure application correctness. In this paper, we present Snapper, a new transaction library on top of Orleans, a popular actor system. Snapper exploits the characteristics of actor-oriented programming to improve the performance of multi-actor transactions by employing deterministic transaction execution, where pre-declared actor access information is used to generate deterministic execution schedules. The deterministic execution can potentially improve transaction throughput significantly, especially with a high contention level. Besides, Snapper can also execute actor transactions using conventional nondeterministic strategies, including S2PL, to account for scenarios where actor access information cannot be pre-declared. A salient feature of Snapper is the ability to execute concurrent hybrid workloads, where some transactions are executed deterministically while the others are executed nondeterministically. This novel hybrid execution is able to take advantage of the deterministic execution while being able to account for nondeterministic workloads. Our experimental results on two benchmarks show that deterministic execution can achieve up to 2x higher throughput than nondeterministic execution under a skewed workload. Additionally, the hybrid execution strategy can achieve a throughput that is close to deterministic execution when there is only a small percentage of nondeterministic transactions running in the system.

Skip Supplemental Material Section

Supplemental Material

References

  1. Gul Agha. 1986. Actors: A Model of Concurrent Computation in Distributed Systems .MIT Press. https://doi.org/10.5555/7929Google ScholarGoogle ScholarCross RefCross Ref
  2. Akka. 2021 a. Akka Documentation. https://akka.io/. (July 2021).Google ScholarGoogle Scholar
  3. Akka. 2021 b. Migration Guide 2.3.x to 2.4.x. https://doc.akka.io/docs/akka/2.4/project/migration-guide-2.3.x-2.4.x.html. (July 2021).Google ScholarGoogle Scholar
  4. Akka. 2021 c. Transactors (Java). https://doc.akka.io/docs/akka/2.0.5/java/transactors.html. (July 2021).Google ScholarGoogle Scholar
  5. Mohammad Alomari, Michael Cahill, Alan Fekete, and Uwe Rohm. 2008. The Cost of Serializability on Platforms That Use Snapshot Isolation. In Proceedings of the 2008 IEEE 24th International Conference on Data Engineering. 576--585.Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Anonym. 2021. Unpublished Manuscript. (Sep 2021).Google ScholarGoogle Scholar
  7. Manos Athanassoulis, Ryan Johnson, Anastasia Ailamaki, and Radu Stoica. 2009. Improving OLTP Concurrency through Early Lock Release. Technical Report. EPFL.Google ScholarGoogle Scholar
  8. AWS. 2021. Amazon Aurora Pricing. https://aws.amazon.com/rds/aurora/pricing/. (July 2021).Google ScholarGoogle Scholar
  9. Azure. 2021. Azure SQL Database pricing. https://azure.microsoft.com/en-us/pricing/details/azure-sql-database/single/. (July 2021).Google ScholarGoogle Scholar
  10. Philip A. Bernstein. 2019. Resurrecting Middle-Tier Distributed Transactions. Bulletin of the IEEE Computer Society Technical Committee on Data Engineering, Vol. 42, 2 (June 2019), 3--6.Google ScholarGoogle Scholar
  11. Philip A. Bernstein, Sebastian Burckhardt, Sergey Bykov, Natacha Crooks, Jose M. Faleiro, Garbriel Kliot, Alok Kumbhare, Muntasir Raihan Rahman, Vivek Shah, Adriana Szekeres, and Jorgen Thelin. 2017a. Geo-Distribution of Actor-Based Services. In Proceedings of the ACM on Programming Languages. 1--26.Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Philip A. Bernstein, Sergey Bykov, Alan Geller, Gabriel Kliot, and Jorgen Thelin. 2014. Orleans: Distributed Virtual Actors for Programmability and Scalability. Technical Report. Microsoft Research.Google ScholarGoogle Scholar
  13. Philip A. Bernstein, Mohammad Dashti, Tim Kiefer, and David Maier. 2017b. Indexing in an Actor-Oriented Database. In Conference on Innovative Database Research (CIDR) .Google ScholarGoogle Scholar
  14. Philip A. Bernstein, Vassco Hadzilacos, and Nathan Goodman. 1987. Concurrency control and recovery in database systems .Addison-Wesley Longman Publishing Co., Inc. https://doi.org/10.5555/12518Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Philip A. Bernstein and Eric Newcomer. 1996. Principles of transaction processing: for the systems professional .Morgan Kaufmann Publishers Inc. https://doi.org/10.5555/261193Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Sergey Bykov, Alan Geller, Gabriel Kliot, James R. Larus, Ravi Pandya, and Jorgen Thelin. 2011. Orleans: Cloud Computing for Everyone. In Proceedings of the 2nd ACM Symposium on Cloud Computing. 1--14.Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Akka case study. 2021. Walmart Boosts Conversions By 20% With Lightbend Reactive Platform. https://www.lightbend.com/case-studies/walmart-boosts-conversions-by-20-with-lightbend-reactive-platform. (July 2021).Google ScholarGoogle Scholar
  18. Natacha Crooks, Matthew Burke, and Ethan Cecchetti. 2018. Obladi: Oblivious Serializable Transactions in the Cloud. In Proceedings of the 13th USENIX conference on Operating Systems Design and Implementation. 727--743.Google ScholarGoogle Scholar
  19. Carlo Curino, Evan Philip Charles Jones, Yang Zhang, and Samuel R Madden. 2010. Schism: a workload-driven approach to database replication and partitioning. (2010).Google ScholarGoogle Scholar
  20. dbyrne. 2015. Looking for alternatives of transactor. https://stackoverflow.com/questions/29154913/scala-replacement-for-akka-transactors. (March 2015).Google ScholarGoogle Scholar
  21. Bailu Ding, Lucja Kot, and Johannes Gehrke. 2018. Improving Optimistic Concurrency Control Through Transaction Batching and Operation Reordering. In Proceedings of the VLDB Endowment. 169--182.Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Zhi-Yuan Dong, Chu-Zhe Tang, Jia-Chen Wang, Zhao-Guo Wang, Hai-Bo Chen, and Bin-Yu Zang. 2020. Optimistic Transaction Processing in Deterministic Database. Journal of Computer Science and Technology, Vol. 35, 2 (March 2020), 382--394.Google ScholarGoogle ScholarCross RefCross Ref
  23. Tamer Eldeeb and Philip A. Bernstein. 2016. Transactions for Distributed Actors in the Cloud. Technical Report. Microsoft Research.Google ScholarGoogle Scholar
  24. Elixir. 2021. Elixir Documentation. https://elixir-lang.org/. (July 2021).Google ScholarGoogle Scholar
  25. Erlang. 2021 a. Erlang Documentation. https://www.erlang.org/. (July 2021).Google ScholarGoogle Scholar
  26. Erlang. 2021 b. Who uses Erlang for product development? http://erlang.org/faq/introduction.html. (July 2021).Google ScholarGoogle Scholar
  27. Jose M. Faleiro, Daniel J. Abadi, and Joseph M. Hellerstein. 2017. High Performance Transactions via Early Write Visibility. In Proceedings of the VLDB Endowment. 613--624.Google ScholarGoogle Scholar
  28. Shady Issa, Miguel Viegas, Pedro Raminhas, Nuno Machado, Miguel Matos, and Paolo Romano. 2020. Exploiting Symbolic Execution to Accelerate Deterministic Databases. In 2020 IEEE 40th International Conference on Distributed Computing Systems (ICDCS). 678--688.Google ScholarGoogle ScholarCross RefCross Ref
  29. Butler Lampson and Howard E. Sturgis. 1979. Crash Recovery in a Distributed Data Storage System. Technical Report. Microsoft Research.Google ScholarGoogle Scholar
  30. Barbara Liskov and Liuba Shrira. 1988. Promises: Linguistic Support for Efficient Asynchronous Procedure Calls in Distributed Systems. In Proceedings of the ACM SIGPLAN'88 Conference on Programming Language Design and Implementation (PLDI). 260--267.Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Yi Lu, Xiangyao Yu, Lei Cao, and Samuel Madden. 2020. Aria: a fast and practical deterministic OLTP database. In Proceedings of the VLDB Endowment. 2047--2060.Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Yi Lu, Xiangyao Yu, Lei Cao, and Samuel Madden. 2021. Epoch-based Commit and Replication in Distributed OLTP Databases. In Proceedings of the VLDB Endowment. 743--756.Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. mathdotnet. 2021. Zipf. https://numerics.mathdotnet.com/api/MathNet.Numerics.Distributions/Zipf.htm. (July 2021).Google ScholarGoogle Scholar
  34. C. Mohan and B. Lindsay. 1985. Efficient commit protocols for the tree of processes model of distributed transactions. ACM SIGOPS Operating Systems Review, Vol. 19, 2 (April 1985), 40--52.Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Shuai Mu, Yang Cui, Yang Zhang, Wyatt Lloyd, and Jinyang Li. 2014. Extracting More Concurrency from Distributed Transactions. In Proceedings of the 11th USENIX conference on Operating Systems Design and Implementation. 479--494.Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Orbit. 2021. Orbit Documentation. https://www.orbit.cloud/orbit/. (July 2021).Google ScholarGoogle Scholar
  37. Orleans. 2021 a. Orleans Documentation. https://dotnet.github.io/orleans/docs/index.html. (July 2021).Google ScholarGoogle Scholar
  38. Orleans. 2021 b. Orleans Transactions. https://dotnet.github.io/orleans/docs/grains/transactions.html. (July 2021).Google ScholarGoogle Scholar
  39. Andrew Pavlo, Carlo Curino, and Stanley Zdonik. 2012. Skew-aware automatic database partitioning in shared-nothing, parallel OLTP systems. In Proceedings of the 2012 ACM SIGMOD International Conference on Management of Data. 61--72.Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Per Persson and Ola Angelsmark. 2015. Calvin--Merging Cloud and IoT. Procedia Computer Science, Vol. 52 (June 2015), 210--217.Google ScholarGoogle ScholarCross RefCross Ref
  41. Guna Prasaad, Alvin Cheung, and Dan Suciu. 2020. Handling Highly Contended OLTP Workloads Using Fast Dynamic Partitioning. In Proceedings of the 2020 ACM SIGMOD International Conference on Management of Data. 527--542.Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. Michal Ptaszek. 2015. Chat Service Architecture: Servers. https://technology.riotgames.com/news/chat-service-architecture-servers. (September 2015).Google ScholarGoogle Scholar
  43. Kun Ren, Alexander Thomson, and Daniel J. Abadi. 2014. An Evaluation of the Advantages and Disadvantages of Deterministic Database Systems. In Proceedings of the VLDB Endowment. 821--832.Google ScholarGoogle Scholar
  44. Daniel J. Rosenkrantz, Richard E. Stearns, and Philip M. Lewis. 1978. System level concurrency control for distributed database systems. ACM Transactions on Database Systems, Vol. 3, 2 (June 1978), 178--198.Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. Vivek Shah and Marcos Antonio Vaz Salles. 2018. Reactors: A Case for Predictable, Virtualized Actor Database Systems. In Proceedings of the 2018 International Conference on Management of Data. 259--274.Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. Dennis Shasha, Francois Llirbat, Eric Simon, and Patrick Valduriez. 1995. Transaction chopping: algorithms and performance studies. ACM Transactions on Database Systems, Vol. 20, 3 (September 1995), 325--363.Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. Eljas Soisalon-Soininen and Tatu Ylönen. 1995. Partial Strictness in Two-Phase Locking. In Proceedings of the 5th International Conference on Database Theory. 139----147.Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. Hoop Somuah. 2014. Using Project "Orleans" in Halo. https://hoopsomuah.com/2014/04/06/using-project-orleans-in-halo/. (April 2014).Google ScholarGoogle Scholar
  49. Andrew S. Tanenbaum and Maarten van Steen. 2006. Distributed Systems: Principles and Paradigms (2nd Edition) .Prentice-Hall, Inc. https://doi.org/10.5555/1202502Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. @theotown. 2016. How Reactive systems help PayPal's squbs scale to billions of transactions daily. https://www.lightbend.com/blog/how-reactive-systems-help-paypal-squbs-scale-to-billions-of-transactions-daily. (June 2016).Google ScholarGoogle Scholar
  51. Alexander Thomson and Daniel J. Abadi. 2010. The case for determinism in database systems. In Proceedings of the VLDB Endowment. 70--80.Google ScholarGoogle Scholar
  52. Alexander Thomson, Thaddeus Diamond, Shu-Chun Weng, Kun Ren, Philip Shao, and Daniel J. Abadi. 2012. Calvin: Fast Distributed Transactions for Partitioned Database Systems. In Proceedings of the 2012 ACM SIGMOD International Conference on Management of Data. 1--12.Google ScholarGoogle Scholar
  53. TPCC. 2021. TPC-C is an On-Line Transaction Processing Benchmark. http://www.tpc.org/tpcc/. (July 2021).Google ScholarGoogle Scholar
  54. Akka user. 2021. Transactors and STM are gone. What conception to use instead? https://groups.google.com/g/akka-user/c/XS-Pk3SOzbw?pli=1. (July 2021).Google ScholarGoogle Scholar
  55. Zhaoguo Wang, Shuai Mu, Yang Cui, Han Yi, Haibo Chen, and Jinyang Li. 2016. Scaling Multicore Databases via Constrained Parallel Execution. In Proceedings of the 2016 International Conference on Management of Data. 1643--1658.Google ScholarGoogle ScholarDigital LibraryDigital Library
  56. Chang Yao, Divyakant Agrawal, Gang Chen, Qian Lin, Beng Chin Ooi, Weng-Fai Wong, and Meihui Zhang. 2016. Exploiting Single-Threaded Model in Multi-Core In-Memory Systems. IEEE Transactions on Knowledge and Data Engineering, Vol. 28, 10 (October 2016), 2635--2650.Google ScholarGoogle ScholarDigital LibraryDigital Library
  57. Yang Zhang, Russell Power, Siyuan Zhou, Yair Sovran, Marcos K. Aguilera, and Jinyang Li. 2013. Transaction chains: achieving serializability with low latency in geo-distributed storage systems. In Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles. 276--291.Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Hybrid Deterministic and Nondeterministic Execution of Transactions in Actor Systems

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Published in

        cover image ACM Conferences
        SIGMOD '22: Proceedings of the 2022 International Conference on Management of Data
        June 2022
        2597 pages
        ISBN:9781450392495
        DOI:10.1145/3514221

        Copyright © 2022 ACM

        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 ACM 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]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 11 June 2022

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article

        Acceptance Rates

        Overall Acceptance Rate785of4,003submissions,20%

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader