Incrementally parallelizing database transactions with thread-level speculation

  • Authors:
  • Christopher B. Colohan;Anastassia Ailamaki;J. Gregory Steffan;Todd C. Mowry

  • Affiliations:
  • Carnegie Mellon University, Google, Inc.;Carnegie Mellon University, Pittsburgh, PA;University of Toronto, ON, Canada;Carnegie Mellon University, Intel Research Pittsburgh

  • Venue:
  • ACM Transactions on Computer Systems (TOCS)
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

With the advent of chip multiprocessors, exploiting intratransaction parallelism in database systems is an attractive way of improving transaction performance. However, exploiting intratransaction parallelism is difficult for two reasons: first, significant changes are required to avoid races or conflicts within the DBMS; and second, adding threads to transactions requires a high level of sophistication from transaction programmers. In this article we show how dividing a transaction into speculative threads solves both problems—it minimizes the changes required to the DBMS, and the details of parallelization are hidden from the transaction programmer. Our technique requires a limited number of small, localized changes to a subset of the low-level data structures in the DBMS. Through this method of incrementally parallelizing transactions, we can dramatically improve performance: on a simulated four-processor chip-multiprocessor, we improve the response time by 44--66% for three of the five TPC-C transactions, assuming the availability of idle processors.