Scaling the IO Wall with Declarative IO
Sanjith Athlur, Sara McAllister, Theo Gregersen, Timothy Kim, Yiwei Chen, Sarvesh Tandon, Lucy Wang, Daniel S. Berger, Saurabh Kadekodi, Arif Merchant, Benjamin Berg, Nathan Beckmann
Abstract
HDD capacities will greatly increase over the next ten years, lowering cost-per-TB in large-scale storage systems. Unfortunately, device bandwidth will not grow proportionally to device capacity. Hence, storage systems will face an IO wall where the demand for HDD IO will outstrip supply. We find that, surprisingly, between 45% and 70% of after-cache HDD IO demand for 6 hyperscalers comes from crucial maintenance tasks that ensure data reliability and efficiency (e.g. scrubbing, garbage collection). Unfortunately, caching maintenance tasks is ineffective — individual tasks have little reuse and inter-task reuse is too far apart in time. Fortunately, maintenance tasks are flexible in the timing, ordering of data accesses, and even which data they access. However, the current imperative storage interface (e.g., read/write) hides maintenance tasks’ flexible nature. We propose Declarative IO, a new interface for distributed storage systems that allows developers to expose tasks’ flexibility to the storage system. This interface allows tasks to send a declaration to our distributed storage system, DINGO, specifying sets of data and their associated deadlines, such as “process all blocks of this device within 7 days”. In processing declarations, DINGO coordinates IO across different tasks to create timely data reuse. DINGO achieves a 26–51% IO savings for maintenance task mixes corresponding to real hyperscalers, enabling the deployment of 1.7×larger HDDs than in imperative systems.
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 ce530af5-8d85-4b44-8f71-861495ad247eBuilds on12
- The CacheLib Caching Engine: Design and Experiences at ScaleBenjamin Berg, Daniel S. Berger, Sara McAllister, Isaac Grosof et al.OSDI 2020 · 145 citations
- Facebook's Tectonic Filesystem: Efficiency from ExascaleSatadru Pan, Theano Stavrinos, Yunqiao Zhang, Atul Sikaria et al.FAST 2021 · 110 citations
- Kangaroo: Caching Billions of Tiny Objects on FlashSara McAllister, Benjamin Berg, Julian Tutuncu-Macias, Juncheng Yang et al.SOSP 2021 · 38 citations
- Metastable Failures in the WildLexiang Huang, Matthew Magnusson, Abishek Bangalore Muralikrishna, Salman Estyak et al.OSDI 2022 · 38 citations
- PACEMAKER: Avoiding HeART attacks in storage clusters with disk-adaptive redundancySaurabh Kadekodi, Francisco Maturana, Suhas Jayaram Subramanya, Juncheng Yang et al.OSDI 2020 · 29 citations
Related papers
- BCW: Buffer-Controlled Writes to HDDs for SSD-HDD Hybrid Storage ServerShucheng Wang, Ziyi Lu, Qiang Cao, Hong Jiang et al.FAST 2020 · 37 citations
- λ-IO: A Unified IO Stack for Computational StorageZhe Yang, Youyou Lu, Xiaojian Liao, Youmin Chen et al.FAST 2023 · 54 citations
- IDIO: Network-Driven, Inbound Network Data Orchestration on Server ProcessorsMohammad Alian, Siddharth Agarwal, Jongmin Shin, Neel Patel et al.MICRO 2022 · 21 citations
- IOCost: block IO control for containers in datacentersTejun Heo, Dan Schatzberg, Andrew Newell, Song Liu et al.ASPLOS 2022 · 22 citations
- RIO: Order-Preserving and CPU-Efficient Remote Storage AccessXiaojian Liao, Zhe Yang, Jiwu ShuEuroSys 2023 · 10 citations
