Affiliation:
1. Carnegie Mellon University, USA
2. Massachusetts Institute of Technology, USA
Abstract
Most popular Web applications rely on persistent databases based on languages like SQL for declarative specification of data models and the operations that read and modify them. As applications scale up in user base, they often face challenges responding quickly enough to the high volume of requests. A common aid is caching of database results in the application's memory space, taking advantage of program-specific knowledge of which caching schemes are sound and useful, embodied in handwritten modifications that make the program less maintainable. These modifications also require nontrivial reasoning about the read-write dependencies across operations. In this paper, we present a compiler optimization that automatically adds sound SQL caching to Web applications coded in the Ur/Web domain-specific functional language, with no modifications required to source code. We use a custom cache implementation that supports concurrent operations without compromising the transactional semantics of the database abstraction. Through experiments with microbenchmarks and production Ur/Web applications, we show that our optimization in many cases enables an easy doubling or more of an application's throughput, requiring nothing more than passing an extra command-line flag to the compiler.
Funder
National Science Foundation
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
10 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Design of Data Access Architecture Using ORM Framework;2023 34th Conference of Open Innovations Association (FRUCT);2023-11-15
2. UTCache: Updatable Transactional Cache For Database-Driven Applications;2022 29th Asia-Pacific Software Engineering Conference (APSEC);2022-12
3. A comparative study of application-level caching recommendations at the method level;Empirical Software Engineering;2022-04-13
4. SAND: a static analysis approach for detecting SQL antipatterns;Proceedings of the 30th ACM SIGSOFT International Symposium on Software Testing and Analysis;2021-07-11
5. Database-Access Performance Antipatterns in Database-Backed Web Applications;2020 IEEE International Conference on Software Maintenance and Evolution (ICSME);2020-09