This website is under development. If you come accross any issues, please report them to Konstantinos Kanellis (kkanellis@cs.wisc.edu) or Yannis Chronis (chronis@google.com).

Generic Version Control: Configurable Versioning for Application-Specific Requirements

Authors:
Gunce Su Yilmaz, Jens Dittrich
Abstract

Even though Multi-Version Concurrency Control (MVCC) and Git look very different from a user point of view, both systems conceptually do very similar things. In this paper, we thoroughly compare both systems w.r.t. their logical and physical differences and commonalities. We argue that both systems converge to a common one-size-fits-all system. One key to that system is the observation that nested transactions and the Git commit-graph are conceptually the same thing. Another crucial insight is the need for database researchers to rethink conflict resolution and reconciliation. This shift can reduce abort rates, address concurrency issues within the database layer, and eliminate unnecessary round-trips to the application layer. Based on our observations, we propose a unified system, Generic Version Control (GenericVC), combining the best of both worlds. In fact, by combining features from both Git and MVCC, we obtain more than the sum of its parts: the ability to support new hybrid use cases.