Polyjuice: High-Performance Transactions via Learned Concurrency Control
Talkat 15th USENIX Symposium on Operating Systems Design and Implementation (OSDI '21) · 2021-07-14..07-16·
summary
Polyjuice is a learned concurrency-control system that encodes CC as a per-access policy table mapping (transaction type, access id) to choices for waiting, read version, write visibility and early validation — the four action knobs — and uses offline evolutionary search to optimize policies for a given workload. It implements SILO-style final validation, supports waiting for specific dependent-access indices, and yields concrete speedups on benchmarks: 15–56% throughput gains vs. best fixed algorithms and up to 45% on a high-contention TPC-C setting (19% on a moderate one).
AI-written summary · about
chapters (18)
- 0:00Intro
- 0:40CC is crucial to database performance
- 2:46Our approach: CC as a fine-grained learning task
- 3:33Polyjuice: CC as a policy table
- 3:45Challenge: designing the policy table
- 4:05Polyjuice: state space
- 5:39Polyjuice: action space
- 6:29Wait action choices
- 7:17Wait choices: wait commit
- 9:27Wait choices: fine-grained wait
- 10:03Read action: 2 choices
- 10:34Write action: 2 choices
- 10:59Validation: 2 choices
- 11:22Polyjuice: state and action space
- 12:32Optimize policy for a given workload
- 13:10Evaluation
- 13:49Polyjuice finds a more efficient interleaving
- 14:44Conclusion
related talks
45mTransactions and Concurrency Control Patterns
25mEnsuring Authorized Updates in Multi-user Database-Backed Applications
41mTransactions: myths, surprises and opportunities
50mExplaining the PG concurrency control mechanisms using rollercoasters
17mJust-Right Consistency
41mConcurrency, Scalability and Transactions -- Myths and Surprises
47mAnatomy of concurrent data access in PostgreSQL
18mAvoiding Conflicts in Highly-Concurrent Applications
