Towards Designing Effective Data Persistence through Tradeoff Space Analysis
Chong Tang, Hamid Reza Bagheri, Sarun Paisarnsrisomsuk, Kevin Sullivan · 2017
Partial system specifications give rise to design spaces: sets of designs that satisfy specified constraints but that can vary in other dimensions, including non-functional properties such as performance. A tradespace is a design space where each design is paired with its relevant corresponding properties. Exploring tradespaces to find high-value designs is hard and time-consuming. The software engineering field provides inadequate support for tradespace exploration. In the context of object relational mapping (ORM), modern model-view-controller frameworks such as Django translate application-specific object models into relational database schemas with guarantees that they satisfy specified functional (data storage) requirements; however, these translators generally do not consider the range of possible schemas or the related performance tradeoffs. We present a novel approach using automated tradespace exploration to find schemas with optimal time and space tradeoffs. The engineer specifies an object model that defines objects and relationships. Our tool set then (1) synthesizes a design space of schemas for the object model, (2) profiles the time and space performance of each schema to generate the corresponding tradespace, and (3) analyzes the tradespace to identify designs on the optimal frontier, thus exposing essential tradeoffs. We achieve scalability of analysis through the use of the Spark MapReduce framework. In a set of experiments, our approach consistently found designs that were dramatically better than those produced by several widely used ORM tools.