Polyjuice: High-Performance Transactions via Learned Concurrency Control
Abstract
Concurrency control algorithms are key determinants of the performance of in-memory databases. Existing algorithms are designed to work well for certain workloads. For example, optimistic concurrency control (OCC) is better than two-phase-locking (2PL) under low contention, while the converse is true under high contention. To adapt to different workloads, prior works mix or switch between a few known algorithms using manual insights or simple heuristics. We propose a learning-based framework that instead explicitly optimizes concurrency control via offline training to maximize performance. Instead of choosing among a small number of known algorithms, our approach searches in a "policy space" of fine-grained actions, resulting in novel algorithms that can outperform existing algorithms by specializing to a given workload. We build Polyjuice based on our learning framework and evaluate it against several existing algorithms. Under different configurations of TPC-C and TPC-E, Polyjuice can achieve throughput numbers higher than the best of existing algorithms by 15% to 56%.
Cite
@article{arxiv.2105.10329,
title = {Polyjuice: High-Performance Transactions via Learned Concurrency Control},
author = {Jiachen Wang and Ding Ding and Huan Wang and Conrad Christensen and Zhaoguo Wang and Haibo Chen and Jinyang Li},
journal= {arXiv preprint arXiv:2105.10329},
year = {2021}
}