Affiliation:
1. MIT CSAIL, Cambridge, MA, USA
Abstract
Object-relational mapping libraries are a popular way for applications to interact with databases because they provide transparent access to the database using the same language as the application. Unfortunately, using such frameworks often leads to poor performance, as modularity concerns encourage developers to implement relational operations in application code. Such application code does not take advantage of the optimized relational implementations that database systems provide, such as efficient implementations of joins or push down of selection predicates. In this paper we present QBS, a system that automatically transforms fragments of application logic into SQL queries. QBS differs from traditional compiler optimizations as it relies on synthesis technology to generate invariants and postconditions for a code fragment. The postconditions and invariants are expressed using a new theory of ordered relations that allows us to reason precisely about both the contents and order of the records produced complex code fragments that compute joins and aggregates. The theory is close in expressiveness to SQL, so the synthesized postconditions can be readily translated to SQL queries. Using 75 code fragments automatically extracted from over 120k lines of open-source code written using the Java Hibernate ORM, we demonstrate that our approach can convert a variety of imperative constructs into relational specifications and significantly improve application performance asymptotically by orders of magnitude.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Reference40 articles.
1. itracker Issue Management System. http://itracker.sourceforge.net/index.html. itracker Issue Management System. http://itracker.sourceforge.net/index.html.
2. Wilos Orchestration Software. http://www.ohloh.net/p/6390. Wilos Orchestration Software. http://www.ohloh.net/p/6390.
3. z3 Theorem Prover. http://research.microsoft.com/en-us/um/redmond/projects/z3. z3 Theorem Prover. http://research.microsoft.com/en-us/um/redmond/projects/z3.
4. Automatic loop interchange
Cited by
77 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献