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
- [1] . 1999. Weak Consistency: A Generalized Theory and Optimistic Implementations for Distributed Transactions. Ph. D. Dissertation. Massachusetts Institute of Technology, USA.Google ScholarDigital Library
- [2] . 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, 67–78. Google ScholarCross Ref - [3] . 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 ). 249–260. http://cidrdb.org/cidr2011/Papers/CIDR11_Paper35.pdfGoogle Scholar - [4] . 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, 430–440. Google ScholarDigital Library - [5] . 1990. The object-oriented database system manifesto. In Deductive and Object-Oriented Databases, , , and (Eds.). North-Holland, Amsterdam, 223–240. Google ScholarCross Ref
- [6] Atomikos 2023. Atomikos ExtremeTransactions. Retrieved March 24, 2023 from https://www.atomikos.com/Main/ExtremeTransactionsGoogle Scholar
- [7] . 1992. Semantics-based concurrency control: Beyond commutativity. ACM Trans. Database Syst. 17, 1 (
March 1992), 163–199. Google ScholarDigital Library - [8] . 2014. Coordination avoidance in database systems. Proc. VLDB Endow. 8, 3 (
Nov. 2014), 185–196. Google ScholarDigital Library - [9] . 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, 1327–1342. Google ScholarDigital Library - [10] . 2018. IPA: Invariant-preserving applications for weakly consistent replicated databases. Proc. VLDB Endow. 12, 4 (
Dec. 2018), 404–418. Google ScholarDigital Library - [11] . 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, Article6 , 16 pages. Google ScholarDigital Library - [12] . 1987. Data model issues for object-oriented applications. ACM Trans. Inf. Syst. 5, 1 (
Jan. 1987), 3–26. Google ScholarDigital Library - [13] . 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, 373–388. Google Scholar
- [14] . 1994. The demarcation protocol: A technique for maintaining constraints in distributed database systems. The VLDB Journal 3, 3 (
Jul. 1994), 325–353. Google ScholarDigital Library - [15] . 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, 1–10. Google ScholarDigital Library - [16] . 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 ScholarCross Ref
- [17] . 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 ScholarDigital Library
- [18] . 2021. BroadleafCommerce. https://github.com/BroadleafCommerce/BroadleafCommerceGoogle Scholar
- [19] . 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, 1001–1012. Google ScholarDigital Library - [20] . 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 Scholar - [21] . 2021. Discourse. https://github.com/discourse/discourseGoogle Scholar
- [22] . 2021. MiniSql. https://github.com/discourse/mini_sqlGoogle Scholar
- [23] . 2019. Avoid Race Condition when Streaming Deleted Statuses. https://github.com/mastodon/mastodon/pull/10280Google Scholar
- [24] . 2021. Comments on Issue 2472. https://github.com/BroadleafCommerce/BroadleafCommerce/issues/2472#issuecomment-762425223Google Scholar
- [25] . 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, 235–250. Google ScholarDigital Library - [26] . 2021. DB-Engines Ranking of Relational DBMS. Retrieved Dec. 15, 2021 from https://db-engines.com/en/ranking/relational+dbmsGoogle Scholar
- [27] . 2013. Scalable transactions across heterogeneous NoSQL key-value data stores. Proc. VLDB Endow. 6, 12 (
Aug. 2013), 1434–1439. Google ScholarDigital Library - [28] . 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, 125–136. Google ScholarCross Ref - [29] 2021. diaspora*. https://github.com/diaspora/diasporaGoogle Scholar
- [30] . 2021. Django. https://www.djangoproject.comGoogle Scholar
- [31] . 2020. Optimistic transaction processing in deterministic database. Journal of Computer Science and Technology 35, 2 (
March 2020), 382–394. Google ScholarDigital Library - [32] . 2023. Database deadlock diagnosis for large-scale ORM-based web applications. In 2023 IEEE 39th International Conference on Data Engineering (ICDE). 2864–2877. Google ScholarCross Ref
- [33] . 2021. SCM Biz Suite. https://github.com/doublechaintech/scm-biz-suiteGoogle Scholar
- [34] . 2023. Elasticsearch. Retrieved March 24, 2023 from https://github.com/elastic/elasticsearchGoogle Scholar
- [35] . 2023. Seata: Simple Extensible Autonomous Transaction Architecture. Retrieved March 24, 2023 from https://github.com/seata/seataGoogle Scholar
- [36] . 1976. The notions of consistency and predicate locks in a database system. Commun. ACM 19, 11 (
Nov. 1976), 624–633. Google ScholarDigital Library - [37] . 2021. JumpServer. https://github.com/jumpserver/jumpserverGoogle Scholar
- [38] . 1983. Using semantic knowledge for transaction processing in a distributed database. ACM Trans. Database Syst. 8, 2 (
June 1983), 186–213. Google ScholarDigital Library - [39] . 1987. Sagas. SIGMOD Rec. 16, 3 (
Dec. 1987), 249–259. Google ScholarDigital Library - [40] . 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, 37–45. Google ScholarDigital Library - [41] 2021. GitLab. https://gitlab.com/gitlab-org/gitlab-foss/Google Scholar
- [42] . 2007. Hierarchical locking in B-tree indexes. In Proceedings of The BTW 2007 Conference on Database Systems in Business,Technology and Web (BTW’07), , , , , , , and (Eds.). Gesellschaft für Informatik e. V., Bonn, 18–42. https://dl.gi.de/20.500.12116/31818Google Scholar
- [43] . 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, 85–96. Google ScholarDigital Library - [44] . 1981. The recovery manager of the system R database manager. ACM Comput. Surv. 13, 2 (
June 1981), 223–242. Google ScholarDigital Library - [45] . 1992. Transaction Processing: Concepts and Techniques (1st ed.). Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. Google Scholar
- [46] . 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, 428–451. Google ScholarDigital Library - [47] . 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, 174–183. Google ScholarDigital Library - [48] . 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, 356–366. Google ScholarDigital Library - [49] . 2021. PostgreSQL 13.3 Documentation.Google Scholar
- [50] . 2019. Prepared XA transaction lost? https://github.com/h2database/h2database/issues/2347Google Scholar
- [51] . 1983. Principles of transaction-oriented database recovery. ACM Comput. Surv. 15, 4 (
Dec. 1983), 287–317. Google ScholarDigital Library - [52] . 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 ). 132–141. http://cidrdb.org/cidr2007/papers/cidr07p15.pdfGoogle Scholar - [53] . 2016. Life beyond distributed transactions: An apostate’s opinion. Queue 14, 5 (
Oct. 2016), 69–98. Google ScholarDigital Library - [54] . 2020. Keeping CALM: When distributed consistency is easy. Commun. ACM 63, 9 (
Aug. 2020), 72–81. Google ScholarDigital Library - [55] . 1990. Apologizing versus asking permission: Optimistic concurrency control for abstract data types. ACM Trans. Database Syst. 15, 1 (
March 1990), 96–124. Google ScholarDigital Library - [56] . 2020. Opportunities for optimism in contended main-memory multicore transactions. Proc. VLDB Endow. 13, 5 (
Jan. 2020), 629–642. Google ScholarDigital Library - [57] . 2021. Huginn. https://github.com/refinery/refinerycmsGoogle Scholar
- [58] . 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, 143–147. Google ScholarDigital Library - [59] . 2023. Epoxy: ACID transactions across diverse data stores. Proc. VLDB Endow. 16, 11 (
Aug. 2023), 2742–2754. Google ScholarDigital Library - [60] . 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, 117–125. Google ScholarDigital Library - [61] . 1981. On optimistic methods for concurrency control. ACM Trans. Database Syst. 6, 2 (
June 1981), 213–226. Google ScholarDigital Library - [62] . 2021. Redmine. https://github.com/redmine/redmineGoogle Scholar
- [63] . 1996. A multi-granularity locking model for concurrency control in object-oriented database systems. IEEE Trans. Knowl. Data Eng. 8, 1 (1996), 144–156. Google ScholarDigital Library
- [64] . 2015. Multi-version range concurrency control in deuteronomy. Proc. VLDB Endow. 8, 13 (
Sept. 2015), 2146–2157. Google ScholarDigital Library - [65] . 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 ), and (Eds.). USENIX Association, USA, 281–292.Google ScholarDigital Library - [66] . 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, 265–278. Google ScholarDigital Library - [67] . 1991. Distributed Transaction Processing: The XA Specification.Google Scholar
- [68] . 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 ), and (Eds.). IEEE Computer Society, Washington, DC, USA, 18–27. Google ScholarCross Ref - [69] . 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, 183–196. Google ScholarDigital Library - [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 Scholar
- [71] . 2020. Table Hints (Transact-SQL). https://docs.microsoft.com/en-us/sql/t-sql/queries/hints-transact-sql-table?view=sql-server-ver15Google Scholar
- [72] . 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 Scholar
- [73] . 2015. High-Performance Java Persistence. Vlad Mihalcea, Romania.Google Scholar
- [74] . 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 Scholar
- [75] . 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, 392–405. Google Scholar
- [76] . 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), 94–162. Google ScholarDigital Library - [77] . 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, 371–380. Google ScholarDigital Library - [78] . 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, 511–524. Google ScholarDigital Library - [79] . 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, 677–689. Google ScholarDigital Library - [80] . 2009. Web Services Atomic Transaction (WS-AtomicTransaction). OASIS. https://docs.oasis-open.org/ws-tx/wsat/2006/06Google Scholar
- [81] . 2009. Web Services Coordination (WS-Coordination). OASIS. https://docs.oasis-open.org/ws-tx/wscoor/2006/06Google Scholar
- [82] . 1986. The escrow transactional method. ACM Trans. Database Syst. 11, 4 (
Dec. 1986), 405–430. Google ScholarDigital Library - [83] . 2020. MySQL 8.0 Reference Manual (Including MySQL NDB Cluster 8.0).Google Scholar
- [84] . 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, 433–448. Google Scholar - [85] . 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, 43–56. Google ScholarDigital Library - [86] . 2008. BASE: An acid alternative. Queue 6, 3 (
may 2008), 48–55. Google ScholarDigital Library - [87] . 2021. API Controller did not Implement Order Version Check. https://github.com/spree/spree/issues/10748Google Scholar
- [88] . 2021. Crash while Processing Payments Leads to Unexpected Behavior. https://github.com/spree/spree/issues/10744Google Scholar
- [89] . 2021. Implementation Issue in Order Lock. https://github.com/spree/spree/issues/10697Google Scholar
- [90] . 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 Scholar
- [91] . 2021. A More Efficient Redis Lock. https://meta.discourse.org/t/a-more-efficient-redis-lock/177841Google Scholar
- [92] . 2021. Possible Race Condition when Paying with Store Credit. https://github.com/spree/spree/issues/11284Google Scholar
- [93] . 2021. Race Condition in Downsize_Upload Script. https://meta.discourse.org/t/race-condition-in-downsize-upload-script/177152Google Scholar
- [94] . 2021. Redis lock’s TTL May Leads to Potential Bugs. https://github.com/tootsuite/mastodon/issues/15645Google Scholar
- [95] . 2021. Session Order Lock may be Discarded Unexpectedly. https://github.com/BroadleafCommerce/BroadleafCommerce/issues/2555Google Scholar
- [96] . 2021. Sku Inconsistent Caused by Concurrent Checkout. https://github.com/BroadleafCommerce/BroadleafCommerce/issues/2472Google Scholar
- [97] . 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, 26–37. Google ScholarDigital Library
- [98] . 2021. Active Record. https://guides.rubyonrails.org/active_record_basics.htmlGoogle Scholar
- [99] . 2021. Ruby on Rails. https://rubyonrails.orgGoogle Scholar
- [100] . 2021. Hibernate ORM. https://hibernate.org/orm/Google Scholar
- [101] . 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, 81–88. Google ScholarDigital Library
- [102] . 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, 1583–1598. Google ScholarDigital Library - [103] . 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 Scholar
- [104] . 2021. Refinery CMS. https://github.com/refinery/refinerycmsGoogle Scholar
- [105] . 2019. Comments on Commit a359be23. https://github.com/mastodon/mastodon/pull/4642/commits/Google Scholar
- [106] . 2021. Mastodon. https://github.com/mastodon/mastodonGoogle Scholar
- [107] . 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, 1311–1326. Google ScholarDigital Library - [108] . 2021. Saleor Commerce. https://github.com/saleor/saleorGoogle Scholar
- [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 Scholar
- [110] . 2011. Conflict-free replicated data types. In Stabilization, Safety, and Security of Distributed Systems, , , and (Eds.). Springer Berlin, Berlin, 386–400. Google ScholarCross Ref
- [111] . 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, 42–61. Google Scholar - [112] . 2011. Database System Concepts. McGraw-Hill, New York, NY, USA.
2009039039 Google Scholar - [113] . 2021. Spree Commerce. https://spreecommerce.orgGoogle Scholar
- [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 Scholar
- [115] Stripe 2023. Stripe, Payment Processing Platform for the Internet. Retrieved March 24, 2023 from https://stripe.comGoogle Scholar
- [116] . 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, 4–18. Google ScholarDigital Library - [117] . 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, 18–32. Google ScholarDigital Library - [118] . 2021. Polyjuice: High-performance transactions via learned concurrency control. In 15th USENIX Symposium on Operating Systems Design and Implementation (OSDI 21). USENIX Association, 198–216. https://www.usenix.org/conference/osdi21/presentation/wang-jiachenGoogle Scholar
- [119] . 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, 5–20. Google ScholarDigital Library - [120] . 1988. Commutativity-based concurrency control for abstract data types. IEEE Trans. Comput. 37, 12 (
Dec. 1988), 1488–1505. Google ScholarDigital Library - [121] . 2022. How do Cloud Users use Cloud Database Systems? (in Chinese). Retrieved March 24, 2023 from https://zhuanlan.zhihu.com/p/525648427Google Scholar
- [122] . 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, 1689–1704. Google ScholarDigital Library - [123] . 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, 163–176. https://www.usenix.org/conference/osdi10/ad-hoc-synchronization-considered-harmfulGoogle ScholarDigital Library - [124] . 1991. Distributed Transaction Processing: The XA Specification.Google Scholar
- [125] . 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, 1299–1308. Google ScholarDigital Library - [126] . 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, 800–810. Google ScholarDigital Library - [127] . 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, 884–887. Google ScholarDigital Library - [128] . 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, Article21 .Google Scholar - [129] . 2002. Design and evaluation of a conit-based continuous consistency model for replicated services. ACM Trans. Comput. Syst. 20, 3 (
Aug. 2002), 239–282. Google ScholarDigital Library - [130] . 2021. The Synchronized used to Prevent Concurrency Doesn’t Work as Expected (in Chinese). https://github.com/doublechaintech/scm-biz-suite/issues/17Google Scholar
Index Terms
- Ad Hoc Transactions through the Looking Glass: An Empirical Study of Application-Level Transactions in Web Applications
Recommendations
Ad Hoc Transactions in Web Applications: The Good, the Bad, and the Ugly
SIGMOD '22: Proceedings of the 2022 International Conference on Management of DataMany 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 ...
Irrevocable transactions and their applications
SPAA '08: Proceedings of the twentieth annual symposium on Parallelism in algorithms and architecturesTransactional memory (TM) provides a safer, more modular, and more scalable alternative to traditional lock-based synchronization. Implementing high performance TM systems has recently been an active area of research. However, current TM systems provide ...
Comments