Database-Backed Web Applications in the Wild: How Well Do They Work?
Cong Yan, Alvin Cheung, Shan Lu

TL;DR
This paper introduces CADO, a tool for analyzing the performance of ORM-based web applications, revealing common issues and potential improvements through analysis of 27 real-world Ruby on Rails apps.
Contribution
The paper presents CADO, a novel static and dynamic analysis tool for ORM-based web apps, and provides insights into performance bottlenecks in real-world applications.
Findings
Identified common query and design issues affecting performance
Analyzed 27 open-source Rails applications across various domains
Suggested remedies and research directions for ORM performance problems
Abstract
Most modern database-backed web applications are built upon Object Relational Mapping (ORM) frameworks. While ORM frameworks ease application development by abstracting persistent data as objects, such convenience often comes with a performance cost. In this paper, we present CADO, a tool that analyzes the application logic and its interaction with databases using the Ruby on Rails ORM framework. CADO includes a static program analyzer, a profiler and a synthetic data generator to extract and understand application's performance characteristics. We used CADO to analyze the performance problems of 27 real-world open-source Rails applications, covering domains such as online forums, e-commerce, project management, blogs, etc. Based on the results, we uncovered a number of issues that lead to sub-optimal application performance, ranging from issuing queries, how result sets are used, and…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsService-Oriented Architecture and Web Services · Advanced Database Systems and Queries · Software System Performance and Reliability
