Data-oriented transaction execution

  • Authors:
  • Ippokratis Pandis;Ryan Johnson;Nikos Hardavellas;Anastasia Ailamaki

  • Affiliations:
  • Carnegie Mellon University, Pittsburgh, PA and École Polytechnique Fédérale de Lausanne, Lausanne, VD, Switzerland;Carnegie Mellon University, Pittsburgh, PA and École Polytechnique Fédérale de Lausanne, Lausanne, VD, Switzerland;Northwestern University, Evanston, IL;École Polytechnique Fédérale de Lausanne, Lausanne, VD, Switzerland and Carnegie Mellon University, Pittsburgh, PA

  • Venue:
  • Proceedings of the VLDB Endowment
  • Year:
  • 2010

Quantified Score

Hi-index 0.03

Visualization

Abstract

While hardware technology has undergone major advancements over the past decade, transaction processing systems have remained largely unchanged. The number of cores on a chip grows exponentially, following Moore's Law, allowing for an ever-increasing number of transactions to execute in parallel. As the number of concurrently-executing transactions increases, contended critical sections become scalability burdens. In typical transaction processing systems the centralized lock manager is often the first contended component and scalability bottleneck. In this paper, we identify the conventional thread-to-transaction assignment policy as the primary cause of contention. Then, we design DORA, a system that decomposes each transaction to smaller actions and assigns actions to threads based on which data each action is about to access. DORA's design allows each thread to mostly access thread-local data structures, minimizing interaction with the contention-prone centralized lock manager. Built on top of a conventional storage engine, DORA maintains all the ACID properties. Evaluation of a prototype implementation of DORA on a multicore system demonstrates that DORA attains up to 4.8x higher throughput than a state-of-the-art storage engine when running a variety of synthetic and real-world OLTP workloads.