Proceedings of CIDR 2013, best paper award
Modern web applications rely on databases for persistent storage, but the strong separation between the application and the database layer makes it difficult to satisfy end-to-end goals, such as performance, reliability, and security. In this paper, we describe StatusQuo, a system that aims to address this problem by using program analysis and program synthesis to enable the seamless movement of functionality between the database and application layers. It does so by taking the functionality that was originally written as imperative code and translating it into relational queries that execute in the database. In addition, it makes runtime decisions about the optimal placement of computation, in order to reduce data movement between the database and application server. In this paper, we describe promising empirical results from the two key technologies that make up StatusQuo, and highlight some open research problems that will need to be addressed in order to achieve the end-to-end vision.