Concurrency in Main-Memory Database Systems
Henrik Mühe · mediaTUM – the media and publications repository of the Technical University Munich (Technical University Munich) · 2014
The availability of powerful servers with terabytes of main-memory has sparked a renewed interest in main-memory database systems.Many early proposals focus on a single workload type, either short transactions or long-running, read-only analytical queries.In this thesis, we focus on allowing a broad range of workloads to be executed concurrently on the same state of the data.While concurrency control is generally wellresearched, we determine the merit of traditional solutions in a main-memory context and suggest solutions which are ideally suited to the changed environment.In the first part of this thesis, the optimal mechanism for creating snapshot in main-memory database systems is determined which can then be used to execute transactions and analytic queries by running queries on a fresh, transaction-consistent snapshot.Second, we introduce tentative execution, a mechanism which allows long-running transactions to be efficiently executed side by side with short transactions and read-only analytical queries.Third, we describe how low-footprint main-memory database systems allow for low overhead multi-tenancy while leveraging existing operating system mechanisms to enforce service level agreements.