Optimizing Optimistic Concurrency Control

1 435
68.3
Опубликовано 11 августа 2016, 7:47
Transaction processing is a fundamental aspect of database design, and concurrency control has remained a key challenge in high performance transaction management. Optimistic concurrency control (OCC) has regained popularity in a number of recent data infrastructures due to its performance, but it has two drawbacks. First, OCC requires tightly coupled components and a centralized validation; this limits system scalability. Second, in high data contention environments, transactions are much more likely to get aborted due to conflicts; this may lead to thrashing. In this talk, I will discuss solutions that address these issues. First, I will present Centiman, a system for high performance and elastic transaction processing. Centiman provides serializability on top of key-value stores using a lightweight OCC-based protocol. Centiman utilizes a loosely coupled distributed architecture, and avoids synchronization wherever possible. A watermark abstraction is used to improve the performance of read-only transactions, and to reduce the number of spurious aborts. Second, I will present our work on reducing transaction conflicts in high data contention scenarios using batching. We proposed a design that incorporates batching at multiple stages of transaction execution, allowing opportunities for reordering operations to reduce conflicts. We formalized the problem of transaction reordering, and proposed several algorithms and policies to solve this problem.
автотехномузыкадетское