skip to main content
research-article

Ad Hoc Transactions through the Looking Glass: An Empirical Study of Application-Level Transactions in Web Applications

Authors Info & Claims
Published:28 February 2024Publication History
Skip Abstract Section

Abstract

Many transactions in web applications are constructed ad hoc in the application code. For example, developers might explicitly use locking primitives or validation procedures to coordinate critical code fragments. We refer to database operations coordinated by application code as ad hoc transactions. Until now, little is known about them. This paper presents the first comprehensive study on ad hoc transactions. By studying 91 ad hoc transactions among eight popular open-source web applications, we found that (i) every studied application uses ad hoc transactions (up to 16 per application), 71 of which play critical roles; (ii) compared with database transactions, concurrency control of ad hoc transactions is much more flexible; (iii) ad hoc transactions are error-prone—53 of them have correctness issues, and 33 of them are confirmed by developers; and (iv) ad hoc transactions have the potential for improving performance in contentious workloads by utilizing application semantics such as access patterns. Based on these findings, we discuss the implications of ad hoc transactions to the database research community.

a359be23a3c26fe7a824ce9bb0f1faaaac3d02b6#r134231414

REFERENCES

  1. [1] Adya A.. 1999. Weak Consistency: A Generalized Theory and Optimistic Implementations for Distributed Transactions. Ph. D. Dissertation. Massachusetts Institute of Technology, USA.Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. [2] Adya A., Liskov B., and O’Neil P.. 2000. Generalized isolation level definitions. In Proceedings of 16th International Conference on Data Engineering (San Diego, CA, USA) (ICDE’00). IEEE Computer Society, Washington, DC, USA, 6778. Google ScholarGoogle ScholarCross RefCross Ref
  3. [3] Alvaro Peter, Conway Neil, Hellerstein Joseph M., and Marczak William R.. 2011. Consistency analysis in bloom: A calm and collected approach. In Proceedings of the 5th Biennial Conference on Innovative Data Systems Research (Asilomar, CA, USA) (CIDR’11). 249260. http://cidrdb.org/cidr2011/Papers/CIDR11_Paper35.pdfGoogle ScholarGoogle Scholar
  4. [4] Andrews Timothy and Harris Craig. 1987. Combining language and database advances in an object-oriented development environment. In Conference Proceedings on Object-Oriented Programming Systems, Languages and Applications (Orlando, Florida, USA) (OOPSLA’87). Association for Computing Machinery, New York, NY, USA, 430440. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. [5] Atkinson Malcolm, DeWitt David, Maier David, Bancilhon François, Dittrich Klaus, and Zdonik Stanley. 1990. The object-oriented database system manifesto. In Deductive and Object-Oriented Databases, Kim Won, Nicolas Jean-Marie, and Nishio Shojiro (Eds.). North-Holland, Amsterdam, 223240. Google ScholarGoogle ScholarCross RefCross Ref
  6. [6] Atomikos 2023. Atomikos ExtremeTransactions. Retrieved March 24, 2023 from https://www.atomikos.com/Main/ExtremeTransactionsGoogle ScholarGoogle Scholar
  7. [7] Badrinath B. R. and Ramamritham Krithi. 1992. Semantics-based concurrency control: Beyond commutativity. ACM Trans. Database Syst. 17, 1 (March 1992), 163199. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. [8] Bailis Peter, Fekete Alan, Franklin Michael J., Ghodsi Ali, Hellerstein Joseph M., and Stoica Ion. 2014. Coordination avoidance in database systems. Proc. VLDB Endow. 8, 3 (Nov. 2014), 185196. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. [9] Bailis Peter, Fekete Alan, Franklin Michael J., Ghodsi Ali, Hellerstein Joseph M., and Stoica Ion. 2015. Feral concurrency control: An empirical investigation of modern application integrity. In Proceedings of the 2015 ACM SIGMOD International Conference on Management of Data (Melbourne, Victoria, Australia) (SIGMOD’15). Association for Computing Machinery, New York, NY, USA, 13271342. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. [10] Balegas Valter, Duarte Sérgio, Ferreira Carla, Rodrigues Rodrigo, and Preguiça Nuno. 2018. IPA: Invariant-preserving applications for weakly consistent replicated databases. Proc. VLDB Endow. 12, 4 (Dec. 2018), 404418. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. [11] Balegas Valter, Duarte Sérgio, Ferreira Carla, Rodrigues Rodrigo, Preguiça Nuno, Najafzadeh Mahsa, and Shapiro Marc. 2015. Putting consistency back into eventual consistency. In Proceedings of the Tenth European Conference on Computer Systems (Bordeaux, France) (EuroSys’15). Association for Computing Machinery, New York, NY, USA, Article 6, 16 pages. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. [12] Banerjee Jay, Chou Hong-Tai, Garza Jorge F., Kim Won, Woelk Darrell, Ballou Nat, and Kim Hyoung-Joo. 1987. Data model issues for object-oriented applications. ACM Trans. Inf. Syst. 5, 1 (Jan. 1987), 326. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. [13] Barbará Daniel and Garcia-Molina Hector. 1992. The demarcation protocol: A technique for maintaining linear arithmetic constraints in distributed database systems. In Proceedings of the 3rd International Conference on Extending Database Technology: Advances in Database Technology (EDBT’92). Springer-Verlag, Berlin, 373388. Google ScholarGoogle Scholar
  14. [14] Barbará-Millá Daniel and Garcia-Molina Hector. 1994. The demarcation protocol: A technique for maintaining constraints in distributed database systems. The VLDB Journal 3, 3 (Jul. 1994), 325353. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. [15] Berenson Hal, Bernstein Phil, Gray Jim, Melton Jim, O’Neil Elizabeth, and O’Neil Patrick. 1995. A critique of ANSI SQL isolation levels. In Proceedings of the 1995 ACM SIGMOD International Conference on Management of Data (San Jose, California, USA) (SIGMOD’95). Association for Computing Machinery, New York, NY, USA, 110. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. [16] Bernstein A. J., Lewis P. M., and Lu S.. 2000. Semantic conditions for correctness at different isolation levels. In Proceedings of the 16th International Conference on Data Engineering (ICDE’00). IEEE Computer Society, USA, 57. Google ScholarGoogle ScholarCross RefCross Ref
  17. [17] Bernstein Philip A., Hadzilacos Vassos, and Goodman Nathan. 1987. Concurrency Control and Recovery in Database Systems. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA. http://research.microsoft.com/en-us/people/philbe/ccontrol.aspxGoogle ScholarGoogle ScholarDigital LibraryDigital Library
  18. [18] Commerce Broadleaf. 2021. BroadleafCommerce. https://github.com/BroadleafCommerce/BroadleafCommerceGoogle ScholarGoogle Scholar
  19. [19] Chen Tse-Hsun, Shang Weiyi, Jiang Zhen Ming, Hassan Ahmed E., Nasser Mohamed, and Flora Parminder. 2014. Detecting performance anti-patterns for applications developed using object-relational mapping. In Proceedings of the 36th International Conference on Software Engineering (Hyderabad, India) (ICSE 2014). Association for Computing Machinery, New York, NY, USA, 10011012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. [20] Cheng Chaoyi, Han Mingzhe, Xu Nuo, Blanas Spyros, Bond Michael D., and Wang Yang. 2023. Developer’s responsibility or database’s responsibility? Rethinking concurrency control in databases. In Proceedings of the 13th Biennial Conference on Innovative Data Systems Research (Amsterdam, The Netherlands) (CIDR’23). https://www.cidrdb.org/cidr2023/papers/p30-cheng.pdfGoogle ScholarGoogle Scholar
  21. [21] Kit Civilized Discourse Construction. 2021. Discourse. https://github.com/discourse/discourseGoogle ScholarGoogle Scholar
  22. [22] Kit Civilized Discourse Construction. 2021. MiniSql. https://github.com/discourse/mini_sqlGoogle ScholarGoogle Scholar
  23. [23] Claire. 2019. Avoid Race Condition when Streaming Deleted Statuses. https://github.com/mastodon/mastodon/pull/10280Google ScholarGoogle Scholar
  24. [24] danielcolgrove. 2021. Comments on Issue 2472. https://github.com/BroadleafCommerce/BroadleafCommerce/issues/2472#issuecomment-762425223Google ScholarGoogle Scholar
  25. [25] Dashti Mohammad, John Sachin Basil, Shaikhha Amir, and Koch Christoph. 2017. Transaction repair for multi-version concurrency control. In Proceedings of the 2017 ACM International Conference on Management of Data (Chicago, Illinois, USA) (SIGMOD’17). Association for Computing Machinery, New York, NY, USA, 235250. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. [26] DB-Engines. 2021. DB-Engines Ranking of Relational DBMS. Retrieved Dec. 15, 2021 from https://db-engines.com/en/ranking/relational+dbmsGoogle ScholarGoogle Scholar
  27. [27] Dey Akon, Fekete Alan, and Röhm Uwe. 2013. Scalable transactions across heterogeneous NoSQL key-value data stores. Proc. VLDB Endow. 6, 12 (Aug. 2013), 14341439. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. [28] Dey Akon, Fekete Alan, and Röhm Uwe. 2015. Scalable distributed transactions across heterogeneous stores. In Proceedings of the 2015 IEEE 31st International Conference on Data Engineering Workshops. (Seoul, Korea) (ICDE’15). IEEE Computer Society, Washington, DC, USA, 125136. Google ScholarGoogle ScholarCross RefCross Ref
  29. [29] Inc. Diaspora2021. diaspora*. https://github.com/diaspora/diasporaGoogle ScholarGoogle Scholar
  30. [30] Foundation Django Software. 2021. Django. https://www.djangoproject.comGoogle ScholarGoogle Scholar
  31. [31] Dong Zhiyuan, Tang Chuzhe, Wang Jiachen, Wang Zhaoguo, Chen Haibo, and Zang Binyu. 2020. Optimistic transaction processing in deterministic database. Journal of Computer Science and Technology 35, 2 (March 2020), 382394. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. [32] Dong Zhiyuan, Wang Zhaoguo, Yi Chuanwei, Xu Xian, Zhang Jinyuan, Li Jinyang, and Chen Haibo. 2023. Database deadlock diagnosis for large-scale ORM-based web applications. In 2023 IEEE 39th International Conference on Data Engineering (ICDE). 28642877. Google ScholarGoogle ScholarCross RefCross Ref
  33. [33] Tech Double Chain. 2021. SCM Biz Suite. https://github.com/doublechaintech/scm-biz-suiteGoogle ScholarGoogle Scholar
  34. [34] Elastic. 2023. Elasticsearch. Retrieved March 24, 2023 from https://github.com/elastic/elasticsearchGoogle ScholarGoogle Scholar
  35. [35] Elastic. 2023. Seata: Simple Extensible Autonomous Transaction Architecture. Retrieved March 24, 2023 from https://github.com/seata/seataGoogle ScholarGoogle Scholar
  36. [36] Eswaran K. P., Gray J. N., Lorie R. A., and Traiger I. L.. 1976. The notions of consistency and predicate locks in a database system. Commun. ACM 19, 11 (Nov. 1976), 624633. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. [37] FIT2CLOUD. 2021. JumpServer. https://github.com/jumpserver/jumpserverGoogle ScholarGoogle Scholar
  38. [38] Garcia-Molina Hector. 1983. Using semantic knowledge for transaction processing in a distributed database. ACM Trans. Database Syst. 8, 2 (June 1983), 186213. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. [39] Garcia-Molina Hector and Salem Kenneth. 1987. Sagas. SIGMOD Rec. 16, 3 (Dec. 1987), 249259. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. [40] Garza Jorge F. and Kim Won. 1988. Transaction management in an object-oriented database system. In Proceedings of the 1988 ACM SIGMOD International Conference on Management of Data (Chicago, Illinois, USA) (SIGMOD’88). Association for Computing Machinery, New York, NY, USA, 3745. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. [41] B.V. GitLab2021. GitLab. https://gitlab.com/gitlab-org/gitlab-foss/Google ScholarGoogle Scholar
  42. [42] Graefe Goetz. 2007. Hierarchical locking in B-tree indexes. In Proceedings of The BTW 2007 Conference on Database Systems in Business,Technology and Web (BTW’07), Kemper Alfons, Schöning Harald, Rose Thomas, Jarke Matthias, Seidl Thomas, Quix Christoph, and Brochhaus Christoph (Eds.). Gesellschaft für Informatik e. V., Bonn, 1842. https://dl.gi.de/20.500.12116/31818Google ScholarGoogle Scholar
  43. [43] Graefe Goetz, Lillibridge Mark, Kuno Harumi, Tucek Joseph, and Veitch Alistair. 2013. Controlled lock violation. In Proceedings of the 2013 ACM SIGMOD International Conference on Management of Data (New York, New York, USA) (SIGMOD’13). Association for Computing Machinery, New York, NY, USA, 8596. Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. [44] Gray Jim, McJones Paul, Blasgen Mike, Lindsay Bruce, Lorie Raymond, Price Tom, Putzolu Franco, and Traiger Irving. 1981. The recovery manager of the system R database manager. ACM Comput. Surv. 13, 2 (June 1981), 223242. Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. [45] Gray Jim and Reuter Andreas. 1992. Transaction Processing: Concepts and Techniques (1st ed.). Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. Google ScholarGoogle Scholar
  46. [46] Gray J. N., Lorie R. A., and Putzolu G. R.. 1975. Granularity of locks in a shared data base. In Proceedings of the 1st International Conference on Very Large Data Bases (Framingham, Massachusetts) (VLDB’75). Association for Computing Machinery, New York, NY, USA, 428451. Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. [47] Grechanik Mark, Hossain B. M. Mainul, and Buy Ugo. 2013. Testing database-centric applications for causes of database deadlocks. In Proceedings of the Sixth IEEE International Conference on Software Testing, Verification and Validation (Luxembourg, Luxembourg) (ICST’13). IEEE Computer Society, Washington, DC, USA, 174183. Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. [48] Grechanik Mark, Hossain B. M. Mainul, Buy Ugo, and Wang Haisheng. 2013. Preventing database deadlocks in applications. In Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering (Saint Petersburg, Russia) (ESEC/FSE 2013). Association for Computing Machinery, New York, NY, USA, 356366. Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. [49] Group The PostgreSQL Global Development. 2021. PostgreSQL 13.3 Documentation.Google ScholarGoogle Scholar
  50. [50] Engine H2 Database. 2019. Prepared XA transaction lost? https://github.com/h2database/h2database/issues/2347Google ScholarGoogle Scholar
  51. [51] Haerder Theo and Reuter Andreas. 1983. Principles of transaction-oriented database recovery. ACM Comput. Surv. 15, 4 (Dec. 1983), 287317. Google ScholarGoogle ScholarDigital LibraryDigital Library
  52. [52] Helland Pat. 2007. Life beyond distributed transactions: An apostate’s opinion. In Proceedings of the 3rd Biennial Conference on Innovative Data Systems Research (Asilomar, CA, USA) (CIDR’07). 132141. http://cidrdb.org/cidr2007/papers/cidr07p15.pdfGoogle ScholarGoogle Scholar
  53. [53] Helland Pat. 2016. Life beyond distributed transactions: An apostate’s opinion. Queue 14, 5 (Oct. 2016), 6998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  54. [54] Hellerstein Joseph M. and Alvaro Peter. 2020. Keeping CALM: When distributed consistency is easy. Commun. ACM 63, 9 (Aug. 2020), 7281. Google ScholarGoogle ScholarDigital LibraryDigital Library
  55. [55] Herlihy M.. 1990. Apologizing versus asking permission: Optimistic concurrency control for abstract data types. ACM Trans. Database Syst. 15, 1 (March 1990), 96124. Google ScholarGoogle ScholarDigital LibraryDigital Library
  56. [56] Huang Yihe, Qian William, Kohler Eddie, Liskov Barbara, and Shrira Liuba. 2020. Opportunities for optimism in contended main-memory multicore transactions. Proc. VLDB Endow. 13, 5 (Jan. 2020), 629642. Google ScholarGoogle ScholarDigital LibraryDigital Library
  57. [57] Labs Iteration. 2021. Huginn. https://github.com/refinery/refinerycmsGoogle ScholarGoogle Scholar
  58. [58] Jordan J. R., Banerjee J., and Batman R. B.. 1981. Precision locks. In Proceedings of the 1981 ACM SIGMOD International Conference on Management of Data (Ann Arbor, Michigan) (SIGMOD’81). Association for Computing Machinery, New York, NY, USA, 143147. Google ScholarGoogle ScholarDigital LibraryDigital Library
  59. [59] Kraft Peter, Li Qian, Zhou Xinjing, Bailis Peter, Stonebraker Michael, Zaharia Matei, and Yu Xiangyao. 2023. Epoxy: ACID transactions across diverse data stores. Proc. VLDB Endow. 16, 11 (Aug. 2023), 27422754. Google ScholarGoogle ScholarDigital LibraryDigital Library
  60. [60] Kumar Akhil and Stonebraker Michael. 1988. Semantics based transaction management techniques for replicated data. In Proceedings of the 1988 ACM SIGMOD International Conference on Management of Data (Chicago, Illinois, USA) (SIGMOD’88). Association for Computing Machinery, New York, NY, USA, 117125. Google ScholarGoogle ScholarDigital LibraryDigital Library
  61. [61] Kung H. T. and Robinson John T.. 1981. On optimistic methods for concurrency control. ACM Trans. Database Syst. 6, 2 (June 1981), 213226. Google ScholarGoogle ScholarDigital LibraryDigital Library
  62. [62] Lang Jean-Philippe. 2021. Redmine. https://github.com/redmine/redmineGoogle ScholarGoogle Scholar
  63. [63] Lee Suh-Yin and Liou Ruey-Long. 1996. A multi-granularity locking model for concurrency control in object-oriented database systems. IEEE Trans. Knowl. Data Eng. 8, 1 (1996), 144156. Google ScholarGoogle ScholarDigital LibraryDigital Library
  64. [64] Levandoski Justin, Lomet David, Sengupta Sudipta, Stutsman Ryan, and Wang Rui. 2015. Multi-version range concurrency control in deuteronomy. Proc. VLDB Endow. 8, 13 (Sept. 2015), 21462157. Google ScholarGoogle ScholarDigital LibraryDigital Library
  65. [65] Li Cheng, Leitão João, Clement Allen, Preguiça Nuno M., Rodrigues Rodrigo, and Vafeiadis Viktor. 2014. Automating the choice of consistency levels in replicated systems. In Proceedings of the 2014 USENIX Annual Technical Conference (Philadelphia, PA, USA) (USENIX ATC’14), Gibson Garth and Zeldovich Nickolai (Eds.). USENIX Association, USA, 281292.Google ScholarGoogle ScholarDigital LibraryDigital Library
  66. [66] Li Cheng, Porto Daniel, Clement Allen, Gehrke Johannes, Preguiça Nuno, and Rodrigues Rodrigo. 2012. Making geo-replicated systems fast as possible, consistent when necessary. In Proceedings of the 10th USENIX Conference on Operating Systems Design and Implementation (Hollywood, CA, USA) (OSDI’12). USENIX Association, USA, 265278. Google ScholarGoogle ScholarDigital LibraryDigital Library
  67. [67] Limited X/Open Company. 1991. Distributed Transaction Processing: The XA Specification.Google ScholarGoogle Scholar
  68. [68] Lomet David B.. 2004. Simple, robust and highly concurrent b-trees with node deletion. In Proceedings of the 20th International Conference on Data Engineering (Boston, MA, USA) (ICDE’04), Özsoyoglu Z. Meral and Zdonik Stanley B. (Eds.). IEEE Computer Society, Washington, DC, USA, 1827. Google ScholarGoogle ScholarCross RefCross Ref
  69. [69] Mao Yandong, Kohler Eddie, and Morris Robert Tappan. 2012. Cache craftiness for fast multicore key-value storage. In Proceedings of the 7th ACM European Conference on Computer Systems (Bern, Switzerland) (EuroSys’12). Association for Computing Machinery, New York, NY, USA, 183196. Google ScholarGoogle ScholarDigital LibraryDigital Library
  70. [70] Microsoft 2017. Designing Transactional Web Applications. Retrieved March 26, 2023 from https://learn.microsoft.com/en-us/previous-versions/iis/6.0-sdk/ms524850(v=vs.90)Google ScholarGoogle Scholar
  71. [71] Microsoft. 2020. Table Hints (Transact-SQL). https://docs.microsoft.com/en-us/sql/t-sql/queries/hints-transact-sql-table?view=sql-server-ver15Google ScholarGoogle Scholar
  72. [72] Microsoft. 2021. Remarks on SET TRANSACTION ISOLATION LEVEL (Transact-SQL). Microsoft. https://docs.microsoft.com/en-us/sql/t-sql/statements/set-transaction-isolation-level-transact-sql?view=sql-server-ver15#remarksGoogle ScholarGoogle Scholar
  73. [73] Mihalcea Vlad. 2015. High-Performance Java Persistence. Vlad Mihalcea, Romania.Google ScholarGoogle Scholar
  74. [74] Mihalcea Vlad, Ebersole Steve, Boriero Andrea, Morling Gunnar, Badner Gail, Cranford Chris, Bernard Emmanuel, Grinovero Sanne, Meyer Brett, Ferentschik Hardy, King Gavin, Bauer Christian, Andersen Max Rydahl, Maesen Karel, Vansa Radim, and Jacomet Louis. 2021. Hibernate ORM 5.5.7.Final User Guide. Red Hat. https://docs.jboss.org/hibernate/orm/5.5/userguide/html_single/Hibernate_User_Guide.htmlGoogle ScholarGoogle Scholar
  75. [75] Mohan C.. 1990. ARIES/KVL: A key-value locking method for concurrency control of multiaction transactions operating on b-tree indexes. In Proceedings of the 16th International Conference on Very Large Data Bases (VLDB’90). Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 392405. Google ScholarGoogle Scholar
  76. [76] Mohan C., Haderle Don, Lindsay Bruce, Pirahesh Hamid, and Schwarz Peter. 1992. ARIES: A transaction recovery method supporting fine-granularity locking and partial rollbacks using write-ahead logging. ACM Trans. Database Syst. 17, 1 (Mar. 1992), 94162. Google ScholarGoogle ScholarDigital LibraryDigital Library
  77. [77] Mohan C. and Levine Frank. 1992. ARIES/IM: An efficient and high concurrency index management method using write-ahead logging. In Proceedings of the 1992 ACM SIGMOD International Conference on Management of Data (San Diego, California, USA) (SIGMOD’92). Association for Computing Machinery, New York, NY, USA, 371380. Google ScholarGoogle ScholarDigital LibraryDigital Library
  78. [78] Narula Neha, Cutler Cody, Kohler Eddie, and Morris Robert. 2014. Phase reconciliation for contended in-memory transactions. In Proceedings of the 11th USENIX Conference on Operating Systems Design and Implementation (Broomfield, CO) (OSDI’14). USENIX Association, USA, 511524. Google ScholarGoogle ScholarDigital LibraryDigital Library
  79. [79] Neumann Thomas, Mühlbauer Tobias, and Kemper Alfons. 2015. Fast serializable multi-version concurrency control for main-memory database systems. In Proceedings of the 2015 ACM SIGMOD International Conference on Management of Data (Melbourne, Victoria, Australia) (SIGMOD’15). Association for Computing Machinery, New York, NY, USA, 677689. Google ScholarGoogle ScholarDigital LibraryDigital Library
  80. [80] TC OASIS Web Services Transaction (WS-TX). 2009. Web Services Atomic Transaction (WS-AtomicTransaction). OASIS. https://docs.oasis-open.org/ws-tx/wsat/2006/06Google ScholarGoogle Scholar
  81. [81] TC OASIS Web Services Transaction (WS-TX). 2009. Web Services Coordination (WS-Coordination). OASIS. https://docs.oasis-open.org/ws-tx/wscoor/2006/06Google ScholarGoogle Scholar
  82. [82] O’Neil Patrick E.. 1986. The escrow transactional method. ACM Trans. Database Syst. 11, 4 (Dec. 1986), 405430. Google ScholarGoogle ScholarDigital LibraryDigital Library
  83. [83] Oracle. 2020. MySQL 8.0 Reference Manual (Including MySQL NDB Cluster 8.0).Google ScholarGoogle Scholar
  84. [84] Pillai Thanumalayan Sankaranarayana, Chidambaram Vijay, Alagappan Ramnatthan, Al-Kiswany Samer, Arpaci-Dusseau Andrea C., and Arpaci-Dusseau Remzi H.. 2014. All file systems are not created equal: On the complexity of crafting crash-consistent applications. In Proceedings of the 11th USENIX Conference on Operating Systems Design and Implementation (Broomfield, CO) (OSDI’14). USENIX Association, USA, 433448. Google ScholarGoogle Scholar
  85. [85] Preguiça Nuno, Martins J. Legatheaux, Cunha Miguel, and Domingos Henrique. 2003. Reservations for conflict avoidance in a mobile database system. In Proceedings of the 1st International Conference on Mobile Systems, Applications and Services (San Francisco, California) (MobiSys’03). Association for Computing Machinery, New York, NY, USA, 4356. Google ScholarGoogle ScholarDigital LibraryDigital Library
  86. [86] Pritchett Dan. 2008. BASE: An acid alternative. Queue 6, 3 (may 2008), 4855. Google ScholarGoogle ScholarDigital LibraryDigital Library
  87. [87] Concerto Project. 2021. API Controller did not Implement Order Version Check. https://github.com/spree/spree/issues/10748Google ScholarGoogle Scholar
  88. [88] Concerto Project. 2021. Crash while Processing Payments Leads to Unexpected Behavior. https://github.com/spree/spree/issues/10744Google ScholarGoogle Scholar
  89. [89] Concerto Project. 2021. Implementation Issue in Order Lock. https://github.com/spree/spree/issues/10697Google ScholarGoogle Scholar
  90. [90] Concerto Project. 2021. Mixing Active Record & Mini_sql Leads to Unexpected Behavior. https://meta.discourse.org/t/mixing-active-record-mini-sql-leads-to-unexpected-behavior/176504Google ScholarGoogle Scholar
  91. [91] Concerto Project. 2021. A More Efficient Redis Lock. https://meta.discourse.org/t/a-more-efficient-redis-lock/177841Google ScholarGoogle Scholar
  92. [92] Concerto Project. 2021. Possible Race Condition when Paying with Store Credit. https://github.com/spree/spree/issues/11284Google ScholarGoogle Scholar
  93. [93] Concerto Project. 2021. Race Condition in Downsize_Upload Script. https://meta.discourse.org/t/race-condition-in-downsize-upload-script/177152Google ScholarGoogle Scholar
  94. [94] Concerto Project. 2021. Redis lock’s TTL May Leads to Potential Bugs. https://github.com/tootsuite/mastodon/issues/15645Google ScholarGoogle Scholar
  95. [95] Concerto Project. 2021. Session Order Lock may be Discarded Unexpectedly. https://github.com/BroadleafCommerce/BroadleafCommerce/issues/2555Google ScholarGoogle Scholar
  96. [96] Concerto Project. 2021. Sku Inconsistent Caused by Concurrent Checkout. https://github.com/BroadleafCommerce/BroadleafCommerce/issues/2472Google ScholarGoogle Scholar
  97. [97] Pu Calton, Kaiser Gail E., and Hutchinson Norman C.. 1988. Split-transactions for open-ended activities. In Proceedings of the 14th International Conference on Very Large Data Bases (VLDB’88). Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 2637. Google ScholarGoogle ScholarDigital LibraryDigital Library
  98. [98] Team Rails Core. 2021. Active Record. https://guides.rubyonrails.org/active_record_basics.htmlGoogle ScholarGoogle Scholar
  99. [99] Team Rails Core. 2021. Ruby on Rails. https://rubyonrails.orgGoogle ScholarGoogle Scholar
  100. [100] Hat Red. 2021. Hibernate ORM. https://hibernate.org/orm/Google ScholarGoogle Scholar
  101. [101] Reimer Manuel. 1983. Solving the phantom problem by predicative optimistic concurrency control. In Proceedings of the 9th International Conference on Very Large Data Bases (VLDB’83). Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 8188. Google ScholarGoogle ScholarDigital LibraryDigital Library
  102. [102] Ren Kun, Faleiro Jose M., and Abadi Daniel J.. 2016. Design principles for scaling multi-core OLTP under high contention. In Proceedings of the 2016 International Conference on Management of Data (San Francisco, California, USA) (SIGMOD’16). Association for Computing Machinery, New York, NY, USA, 15831598. Google ScholarGoogle ScholarDigital LibraryDigital Library
  103. [103] Renzema Willem. 2016. Willem Renzema’s Answer to “How to Properly use Transactions and Locks to Ensure Database Integrity?”. Retrieved March 26, 2023 from https://stackoverflow.com/a/40773638Google ScholarGoogle Scholar
  104. [104] Digital Resolve. 2021. Refinery CMS. https://github.com/refinery/refinerycmsGoogle ScholarGoogle Scholar
  105. [105] Rochko Eugen. 2019. Comments on Commit a359be23. https://github.com/mastodon/mastodon/pull/4642/commits/Google ScholarGoogle Scholar
  106. [106] Rochko Eugen and contributors other Mastodon. 2021. Mastodon. https://github.com/mastodon/mastodonGoogle ScholarGoogle Scholar
  107. [107] Roy Sudip, Kot Lucja, Bender Gabriel, Ding Bailu, Hojjat Hossein, Koch Christoph, Foster Nate, and Gehrke Johannes. 2015. The homeostasis protocol: Avoiding transaction coordination through program analysis. In Proceedings of the 2015 ACM SIGMOD International Conference on Management of Data (Melbourne, Victoria, Australia) (SIGMOD’15). Association for Computing Machinery, New York, NY, USA, 13111326. Google ScholarGoogle ScholarDigital LibraryDigital Library
  108. [108] Commerce Saleor. 2021. Saleor Commerce. https://github.com/saleor/saleorGoogle ScholarGoogle Scholar
  109. [109] Seata 2023. Application Model and Scenario Analysis for TCC Mode (in Chinese). Retrieved March 26, 2023 from http://seata.io/zh-cn/blog/tcc-mode-applicable-scenario-analysis.htmlGoogle ScholarGoogle Scholar
  110. [110] Shapiro Marc, Preguiça Nuno, Baquero Carlos, and Zawirski Marek. 2011. Conflict-free replicated data types. In Stabilization, Safety, and Security of Distributed Systems, Défago Xavier, Petit Franck, and Villain Vincent (Eds.). Springer Berlin, Berlin, 386400. Google ScholarGoogle ScholarCross RefCross Ref
  111. [111] Shrira Liuba, Tian Hong, and Terry Doug. 2008. Exo-leasing: Escrow synchronization for mobile clients of commodity storage servers. In Proceedings of the 9th ACM/IFIP/USENIX International Conference on Middleware (Leuven, Belgium) (Middleware’08). Springer-Verlag, Berlin, 4261. Google ScholarGoogle Scholar
  112. [112] Silberschatz A., Korth H. F., and Sudarshan S.. 2011. Database System Concepts. McGraw-Hill, New York, NY, USA. 2009039039Google ScholarGoogle Scholar
  113. [113] Commerce Spree. 2021. Spree Commerce. https://spreecommerce.orgGoogle ScholarGoogle Scholar
  114. [114] Spring 2023. Spring Framework Data Access. Retrieved March 24, 2023 from https://docs.spring.io/spring-framework/docs/current/reference/html/data-access.htmlGoogle ScholarGoogle Scholar
  115. [115] Stripe 2023. Stripe, Payment Processing Platform for the Internet. Retrieved March 24, 2023 from https://stripe.comGoogle ScholarGoogle Scholar
  116. [116] Tang Chuzhe, Wang Zhaoguo, Zhang Xiaodong, Yu Qianmian, Zang Binyu, Guan Haibing, and Chen Haibo. 2022. Ad hoc transactions in web applications: The good, the bad, and the ugly. In Proceedings of the 2022 International Conference on Management of Data (Philadelphia, PA, USA) (SIGMOD’22). Association for Computing Machinery, New York, NY, USA, 418. Google ScholarGoogle ScholarDigital LibraryDigital Library
  117. [117] Tu Stephen, Zheng Wenting, Kohler Eddie, Liskov Barbara, and Madden Samuel. 2013. Speedy transactions in multicore in-memory databases. In Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles (Farmington, Pennsylvania) (SOSP’13). Association for Computing Machinery, New York, NY, USA, 1832. Google ScholarGoogle ScholarDigital LibraryDigital Library
  118. [118] Wang Jiachen, Ding Ding, Wang Huan, Christensen Conrad, Wang Zhaoguo, Chen Haibo, and Li Jinyang. 2021. Polyjuice: High-performance transactions via learned concurrency control. In 15th USENIX Symposium on Operating Systems Design and Implementation (OSDI 21). USENIX Association, 198216. https://www.usenix.org/conference/osdi21/presentation/wang-jiachenGoogle ScholarGoogle Scholar
  119. [119] Warszawski Todd and Bailis Peter. 2017. ACIDRain: Concurrency-related attacks on database-backed web applications. In Proceedings of the 2017 ACM International Conference on Management of Data (Chicago, Illinois, USA) (SIGMOD’17). Association for Computing Machinery, New York, NY, USA, 520. Google ScholarGoogle ScholarDigital LibraryDigital Library
  120. [120] Weihl W. E.. 1988. Commutativity-based concurrency control for abstract data types. IEEE Trans. Comput. 37, 12 (Dec. 1988), 14881505. Google ScholarGoogle ScholarDigital LibraryDigital Library
  121. [121] Wentang. 2022. How do Cloud Users use Cloud Database Systems? (in Chinese). Retrieved March 24, 2023 from https://zhuanlan.zhihu.com/p/525648427Google ScholarGoogle Scholar
  122. [122] Wu Yingjun, Chan Chee-Yong, and Tan Kian-Lee. 2016. Transaction healing: Scaling optimistic concurrency control on multicores. In Proceedings of the 2016 International Conference on Management of Data (San Francisco, California, USA) (SIGMOD’16). Association for Computing Machinery, New York, NY, USA, 16891704. Google ScholarGoogle ScholarDigital LibraryDigital Library
  123. [123] Xiong Weiwei, Park Soyeon, Zhang Jiaqi, Zhou Yuanyuan, and Ma Zhiqiang. 2010. Ad hoc synchronization considered harmful. In Proceedings of the 9th USENIX Conference on Operating Systems Design and Implementation (Vancouver, BC, Canada) (OSDI’10). USENIX Association, USA, 163176. https://www.usenix.org/conference/osdi10/ad-hoc-synchronization-considered-harmfulGoogle ScholarGoogle ScholarDigital LibraryDigital Library
  124. [124] X/Open. 1991. Distributed Transaction Processing: The XA Specification.Google ScholarGoogle Scholar
  125. [125] Yan Cong, Cheung Alvin, Yang Junwen, and Lu Shan. 2017. Understanding database performance inefficiencies in real-world web applications. In Proceedings of the 2017 ACM on Conference on Information and Knowledge Management (Singapore, Singapore) (CIKM’17). Association for Computing Machinery, New York, NY, USA, 12991308. Google ScholarGoogle ScholarDigital LibraryDigital Library
  126. [126] Yang Junwen, Subramaniam Pranav, Lu Shan, Yan Cong, and Cheung Alvin. 2018. How not to structure your database-backed web applications: A study of performance bugs in the wild. In Proceedings of the 40th International Conference on Software Engineering (Gothenburg, Sweden) (ICSE’18). Association for Computing Machinery, New York, NY, USA, 800810. Google ScholarGoogle ScholarDigital LibraryDigital Library
  127. [127] Yang Junwen, Yan Cong, Subramaniam Pranav, Lu Shan, and Cheung Alvin. 2018. PowerStation: Automatically detecting and fixing inefficiencies of database-backed web applications in IDE. In Proceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering (Lake Buena Vista, FL, USA) (ESEC/FSE’18). Association for Computing Machinery, New York, NY, USA, 884887. Google ScholarGoogle ScholarDigital LibraryDigital Library
  128. [128] Yu Haifeng and Vahdat Amin. 2000. Design and evaluation of a continuous consistency Model for Replicated Services. In Proceedings of the 4th Conference on Symposium on Operating System Design & Implementation - Volume 4 (San Diego, California) (OSDI’00). USENIX Association, USA, Article 21.Google ScholarGoogle Scholar
  129. [129] Yu Haifeng and Vahdat Amin. 2002. Design and evaluation of a conit-based continuous consistency model for replicated services. ACM Trans. Comput. Syst. 20, 3 (Aug. 2002), 239282. Google ScholarGoogle ScholarDigital LibraryDigital Library
  130. [130] Zhang Xiaodong. 2021. The Synchronized used to Prevent Concurrency Doesn’t Work as Expected (in Chinese). https://github.com/doublechaintech/scm-biz-suite/issues/17Google ScholarGoogle Scholar

Index Terms

  1. Ad Hoc Transactions through the Looking Glass: An Empirical Study of Application-Level Transactions in Web Applications

      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

      Full Access

      • Published in

        cover image ACM Transactions on Database Systems
        ACM Transactions on Database Systems  Volume 49, Issue 1
        March 2024
        176 pages
        ISSN:0362-5915
        EISSN:1557-4644
        DOI:10.1145/3613511
        Issue’s Table of Contents

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

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 28 February 2024
        • Online AM: 23 December 2023
        • Accepted: 5 December 2023
        • Revised: 3 September 2023
        • Received: 14 April 2023
        Published in tods Volume 49, Issue 1

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article
      • Article Metrics

        • Downloads (Last 12 months)126
        • Downloads (Last 6 weeks)54

        Other Metrics

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader

      Full Text

      View this article in Full Text.

      View Full Text