Interactive Transaction Processing for In-Memory Database System

In-memory transaction processing has gained fast development in recent years. Previous works usually assume the one-shot transaction model, where transactions are run as stored procedures. Though many systems have shown impressive throughputs in handling one-shot transactions, it is hard for developers to debug and maintain stored procedures. According to a recent survey, most applications still prefer to operate the database using the JDBC/ODBC interface. Upon realizing this, the work targets on the problem of interactive transaction processing for in-memory database system. Our key contributions are: (1) we address several important design considerations for supporting interaction transaction processing; (2) a coroutine-based execution engine is proposed to handle different kinds of blocking efficiently and improve the CPU usage; (3) a lightweight and latch-free lock manager is designed to schedule transaction conflicts without introducing many overhead; (4) experiments on both the TPC-C and a micro benchmark show that our method achieves better performance than existing solutions.

[1]  Haibo Chen,et al.  Scaling Multicore Databases via Constrained Parallel Execution , 2016, SIGMOD Conference.

[2]  Eddie Kohler,et al.  Speedy transactions in multicore in-memory databases , 2013, SOSP.

[3]  Ippokratis Pandis,et al.  Data-oriented transaction execution , 2010, Proc. VLDB Endow..

[4]  Ippokratis Pandis,et al.  Improving OLTP Scalability using Speculative Lock Inheritance , 2009, Proc. VLDB Endow..

[5]  Kian-Lee Tan,et al.  Transaction Healing: Scaling Optimistic Concurrency Control on Multicores , 2016, SIGMOD Conference.

[6]  Andreas Reuter,et al.  Transaction Processing: Concepts and Techniques , 1992 .

[7]  Craig Freedman,et al.  Hekaton: SQL server's memory-optimized OLTP engine , 2013, SIGMOD '13.

[8]  Daniel J. Abadi,et al.  Lightweight Locking for Main Memory Database Systems , 2012, Proc. VLDB Endow..

[9]  Michael Stonebraker,et al.  The End of an Architectural Era (It's Time for a Complete Rewrite) , 2007, VLDB.

[10]  Andrew Pavlo,et al.  What Are We Doing With Our Lives?: Nobody Cares About Our Concurrency Control Research , 2017, SIGMOD Conference.

[11]  Donald E. Knuth,et al.  The Art of Computer Programming, Volume I: Fundamental Algorithms, 2nd Edition , 1997 .

[12]  Michael Stonebraker,et al.  OLTP through the looking glass, and what we found there , 2008, SIGMOD Conference.

[13]  Hideaki Kimura,et al.  Mostly-Optimistic Concurrency Control for Highly Contended Dynamic Workloads on a Thousand Cores , 2016, Proc. VLDB Endow..

[14]  FeketeAlan,et al.  A Scalable Lock Manager for Multicores , 2014 .

[15]  Daniel J. Abadi,et al.  The case for determinism in database systems , 2010, Proc. VLDB Endow..

[16]  Jignesh M. Patel,et al.  High-Performance Concurrency Control Mechanisms for Main-Memory Databases , 2011, Proc. VLDB Endow..

[17]  J. T. Robinson,et al.  On optimistic methods for concurrency control , 1979, TODS.

[18]  Daniel J. Abadi,et al.  Calvin: fast distributed transactions for partitioned database systems , 2012, SIGMOD Conference.