Citron: Distributed Range Lock Management with One-sided RDMA
summary
Citron implements a distributed range lock manager that uses one-sided RDMA and a static segment tree layout so clients bypass server-side CPUs. It maps any range to up to two tree nodes (default two) and uses extended atomics plus tiny per-node queues and bitmaps to notify ancestors/descendants. Built and evaluated on a 4-node cluster (1 server, 3 clients), it delivers up to 3.05× throughput and 76.4% lower tail latency than CPU-based approaches while reducing false conflicts by ~96%.
AI-written summary · about
chapters (26)
- 0:00Intro
- 0:29Range Locks
- 1:51Previous Approaches
- 3:12One-sided Approach? (Cont.)
- 3:56The Big Picture
- 4:25The Segment Tree
- 5:16Map Ranges to Tree Nodes
- 5:55Selecting the Nodes Properly
- 6:20Lock Protocol - Theory
- 7:10Lock Protocol - Practice, i.e., Tasks
- 7:29Lock Protocol - Tools
- 8:24Lock the Desired Node
- 8:52Notify Descendants
- 9:03Detect Ancestors
- 9:25Notify Ancestors
- 9:50Detect Descendants
- 10:13Data Structure Summary
- 10:38Lock Protocol Summary
- 10:58Unlock
- 11:26Supportive Designs
- 11:43Experiment Setup
- 11:58Baselines
- 12:11Citron vs. Two-sided
- 12:40Citron vs. Trivial One-sided
- 13:16Other Evaluation Results
- 13:46Conclusion
related talks
18mFARLock: Asymmetric RDMA Locking Made Fair
16mFORD: Fast One-sided RDMA-based Distributed Transactions for Disaggregated Persistent...
15mShiftLock: Mitigate One-sided RDMA Lock Contention via Handover
15mAurogon: Taming Aborts in All Phases for Distributed In-Memory Transactions
18mCuckoo for Clients: Disaggregated Cuckoo Hashing
01h 09mAlgorithms for practical distributed agreement
13mDMTree: Towards Efficient Tree Indexing on Disaggregated Memory via Compute-side...
48mHow to build distributed concurrency primitives
