The Deuteronomy architecture provides a clean separation of transaction functionality (performed in a transaction component, or TC) from data storage functionality (performed in a data component, or DC). For the past couple of years, we have been rethinking the implementation of both the TC and DC in order for them to perform as well, or better than, current high-performance database systems. The result of this work so far has been a high-performance DC (the Bw-tree key value store) that currently ships in several Microsoft systems (the Hekaton main-memory database, Azure DocumentDB, and Bing). More recently, we have been completing the performance story by redesigning the TC. We are driven by two main design goals: (1) ensure high performance in various deployment scenarios, regardless of whether the TC and DC are co-located or distributed and (2) take advantage of modern hardware (multi-core and multi-socket machines, large main memories, flash storage). This paper summarizes the design of our new TC that addresses these two goals. We begin by describing the Deuteronomy architecture, its design principles, and several deployment scenarios (both local and distributed) enabled by our design. We then describe the techniques used by our TC to address transaction processing on modern hardware. We conclude by describing ongoing work in the Deuteronomy project.
[1]
Craig Freedman,et al.
Hekaton: SQL server's memory-optimized OLTP engine
,
2013,
SIGMOD '13.
[2]
Viktor Leis,et al.
Exploiting hardware transactional memory in main-memory databases
,
2014,
2014 IEEE 30th International Conference on Data Engineering.
[3]
Sudipta Sengupta,et al.
High Performance Transactions in Deuteronomy
,
2015,
CIDR.
[4]
Sudipta Sengupta,et al.
The Bw-Tree: A B-tree for new hardware platforms
,
2013,
2013 IEEE 29th International Conference on Data Engineering (ICDE).
[5]
Mohamed F. Mokbel,et al.
Deuteronomy: Transaction Support for Cloud Data
,
2011,
CIDR.
[6]
David P. Reed,et al.
Naming and synchronization in a decentralized computer system
,
1978
.
[7]
Hyeontaek Lim,et al.
MICA: A Holistic Approach to Fast In-Memory Key-Value Storage
,
2014,
NSDI.
[8]
Alfons Kemper,et al.
An Evaluation of Strict Timestamp Ordering Concurrency Control for Main-Memory Database Systems
,
2013,
IMDM@VLDB.
[9]
Jignesh M. Patel,et al.
High-Performance Concurrency Control Mechanisms for Main-Memory Databases
,
2011,
Proc. VLDB Endow..
[10]
Sudipta Sengupta,et al.
LLAMA: A Cache/Storage Subsystem for Modern Hardware
,
2013,
Proc. VLDB Endow..