DeepAI AI Chat
Log In Sign Up

Cobra: A Framework for Cost Based Rewriting of Database Applications

by   K. Venkatesh Emani, et al.

Database applications are typically written using a mixture of imperative languages and declarative frameworks for data processing. Application logic gets distributed across the declarative and imperative parts of a program. Often, there is more than one way to implement the same program, whose efficiency may depend on a number of parameters. In this paper, we propose a framework that automatically generates all equivalent alternatives of a given program using a given set of program transformations, and chooses the least cost alternative. We use the concept of program regions as an algebraic abstraction of a program and extend the Volcano/Cascades framework for optimization of algebraic expressions, to optimize programs. We illustrate the use of our framework for optimizing database applications. We show through experimental results, that our framework has wide applicability in real world applications and provides significant performance benefits.


page 1

page 2

page 3

page 4


Synthesizing Database Programs for Schema Refactoring

Many programs that interact with a database need to undergo schema refac...

Inducing Probabilistic Programs by Bayesian Program Merging

This report outlines an approach to learning generative models from data...

A Framework for Compiling Preferences in Logic Programs

We introduce a methodology and framework for expressing general preferen...

Accelerating XOR-based Erasure Coding using Program Optimization Techniques

Erasure coding (EC) affords data redundancy for large-scale systems. XOR...

Evaluation of Generalizability of Neural Program Analyzers under Semantic-Preserving Transformations

The abundance of publicly available source code repositories, in conjunc...

Fine-Tuning Data Structures for Analytical Query Processing

We introduce a framework for automatically choosing data structures to s...

Rewriting Ontological Queries into Small Nonrecursive Datalog Programs

We consider the setting of ontological database access, where an Abox is...