Executing Long-Running Transactions in Synchronization-Free Main Memory Database Systems.
Henrik Mühe, Alfons Kemper, Thomas Neumann · 2013
Powerful servers and growing DRAM capacities have initiated the development of main-memory DBMS, which avoid lock-based concurrency control by executing transactions serially on partitions. While allowing for unprecedentedly high throughput for homogeneous workloads consisting of short pre-canned transactions, heterogeneous workloads also containing long-running transactions cannot be executed efciently. In this paper, we present our approach, called ‘tentative execution’, which retains the high throughput of serial execution for good-natured transactions while, at the same time, allowing for long-running and otherwise ill-natured transactions to be executed. To achieve this, we execute longrunning transactions on a consistent snapshot and integrate their eects into the main database using a deterministic and short apply transaction. We discuss various implementation choices and oer an in-depth evaluation based on our main-memory database system prototype HyPer.