Versionable, Branchable, and Mergeable Application State

Abstract

NoSQL databases are rapidly becoming the storage of choice for large-scale Web applications. However, for the sake of scalability these applications trade consistency for availability. In this paper, we regain control over this trade-off by adapting an existing approach, version control (VC), to application state. By using VC, the data model is defined by the application and not by the database. The consistency model is determined at runtime by deciding when to merge and with whom. We describe the design of a VC system named VERCAST that provides fine-grained control over the consistency model used in maintaining application state.

Publication
Onward! 2014
David H. Lorenz
David H. Lorenz
Dept. of Mathematics and Computer Science

Senior Faculty at Open University

Boaz Rosenan
Boaz Rosenan
Ph.D Student

Senior Software Engineer at Google

Related