Transaction processing systems, which are the core of many business applications, have been studied intensively and successfully deployed in real-world applications for decades. However, a combination of workloads that demand support for a high volume of transactions and the presence of new hardware trends toward cloud computing, multicore chips and thread-level parallelism force us to revisit alternatives for system design choices. This thesis studies alternatives for aspects of exploiting parallelism in OLTP workloads and for building a new generation of high performance in-memory transaction processing systems.;In this thesis we first explore the question of whether hardware primitives developed for mutual exclusion, including Hardware Transactional Memory and spinlocks, can be exploited to run database transactions concurrently on multiprocessor systems. We then shift to focus on the abstract degree of parallelism available in highly-partitioned workloads by using transaction dependency graphs to keep track of conflicting accesses among active transactions. Finally, we study data partitioning techniques, which lie at the heart of parallel processing approaches to high transaction throughput. Our approach explores the idea of partitioning a table by an attribute of another table connected via key-foreign key joins, and a divide-and-conquer, source-code based strategy.
展开▼