WriteGuards: Distributed Storage Support for Strongly Consistent Caches
Ziming Mao, Atul Adya, Jonathan Ellithorpe, Rishabh Iyer, Matei Zaharia, Scott Shenker, Ion Stoica
Abstract
This paper presents a set of in-process and remote distributed caches for datacenter environments, CLINK and CRINK respectively, that provide linearizable reads entirely from memory without contacting storage. These caches remain loosely coupled to the storage layer and achieve high performance, scale, and availability by cooperating with auto-sharders and by tracking consistency metadata at the granularity of key ranges rather than individual keys. To our knowledge, CLINK is the first distributed linked cache that delivers scalable, linearizable reads from memory while remaining loosely coupled with storage.
At the heart of these caches is a lightweight storage primitive called WriteGuards that can be easily added to a distributed store. WriteGuards prevent a subtle race we call the delayed-writes anomaly arising during changes in ownership of key ranges. Each write carries a small fencing value tied to the current owner, and the storage system checks this value to reject delayed writes. WriteGuards apply to key ranges instead of individual keys for scalability, add only a conditional check on the write path, and require no coordination on reads.
We implemented our cache designs on TiDB. The inprocess cache CLINK cuts tail read latency by three orders of magnitude, and the remote cache CRINK reduces it by 2.2 -2.4× relative to direct storage access and existing strongly consistent remote caches.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext ea001a91-4b13-4f5c-aaad-4623f4281a35Builds on12
- FaasCache: keeping serverless computing alive with greedy-dual cachingAlexander Fuerst, Prateek SharmaASPLOS 2021 · 223 citations
- The CacheLib Caching Engine: Design and Experiences at ScaleBenjamin Berg, Daniel S. Berger, Sara McAllister, Isaac Grosof et al.OSDI 2020 · 145 citations
- Twine: A Unified Cluster Management System for Shared InfrastructureChunqiang Tang, Kenny Yu, Kaushik Veeraraghavan, Jonathan Kaldor et al.OSDI 2020 · 107 citations
- Segcache: a memory-efficient and scalable in-memory key-value cache for small objectsJuncheng Yang, Yao Yue, Rashmi VinayakNSDI 2021 · 70 citations
- Fresh Caching for Dynamic ContentBahman Abolhassani, John Tadrous, Atilla Eryilmaz, Edmund YehINFOCOM 2021 · 61 citations
Related papers
- Asynchronous Prefix Recoverability for Fast Distributed StoresTianyu Li, Badrish Chandramouli, Jose M. Faleiro, Samuel Madden et al.SIGMOD 2021 · 7 citations
- Carbink: Fault-Tolerant Far MemoryYang Zhou, Hassan M. G. Wassel, Sihang Liu, Jiaqi Gao et al.OSDI 2022 · 35 citations
- DRPTM: A Decoupled Read-efficient High-scalable Persistent Transactional MemoryWenkai Liang, Hao Hu, Xiangyu Zou, Wen Xia et al.DAC 2023 · 3 citations
- CHIME: A Cache-Efficient and High-Performance Hybrid Index on Disaggregated MemoryXuchuan Luo, Jiacheng Shen, Pengfei Zuo, Xin Wang et al.SOSP 2024 · 10 citations
- A Logically Disaggregated Cache for Replicated Storage SystemsKiran Hombal, Henry Zhu, Shreesha Gopalakrishna Bhat, Neil Kaushikkar et al.EuroSys 2026
