Using Lightweight Formal Methods to Validate a Key-Value Storage Node in Amazon S3
James Bornholt, Rajeev Joshi, Vytautas Astrauskas, Brendan Cully, Bernhard Kragl, Seth Markle, Kyle Sauri, Drew Schleit, Grant Slatton, Serdar Tasiran, Jacob Van Geffen, Andrew Warfield
Abstract
This paper reports our experience applying lightweight formal methods to validate the correctness of ShardStore, a new key-value storage node implementation for the Amazon S3 cloud object storage service. By "lightweight formal methodsž we mean a pragmatic approach to verifying the correctness of a production storage node that is under ongoing feature development by a full-time engineering team. We do not aim to achieve full formal verification, but instead emphasize automation, usability, and the ability to continually ensure correctness as both software and its specification evolve over time. Our approach decomposes correctness into independent properties, each checked by the most appropriate tool, and develops executable reference models as specifications to be checked against the implementation. Our work has prevented 16 issues from reaching production, including subtle crash consistency and concurrency problems, and has been extended by non-formal-methods experts to check new features and properties as ShardStore has evolved.
• Software and its engineering → Software verification and validation.
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 f3ad4d55-7009-4eb9-b5be-f598a9024956Cited by top-tier papers43
- On-demand Container Loading in AWS LambdaMarc Brooker, Mike Danilov, Chris Greenwood, Phil PiwonkaUSENIX ATC 2023 · 73 citations
- What's the Story in EBS Glory: Evolutions and Lessons in Building Cloud Block StoreWeidong Zhang, Erci Xu, Qiuping Wang, Xiaolu Zhang et al.FAST 2024 · 37 citations
- Property-Based Testing in PracticeHarrison Goldstein, Joseph W. Cutler, Daniel Dickstein, Benjamin C. Pierce et al.ICSE 2024 · 21 citations
- Accelerating Communications in Federated Applications with Transparent Object ProxiesJ. Gregory Pauloski, Valérie Hayot-Sasson, Logan T. Ward, Nathaniel Hudson et al.SC 2023 · 18 citations
- Burstable Cloud Block Storage with Data Processing UnitsJunyi Shu, Kun Qian, Ennan Zhai, Xuanzhe Liu et al.OSDI 2024 · 17 citations
Builds on3
- How do programmers use unsafe rust?Vytautas Astrauskas, Christoph Matheja, Federico Poli, Peter Müller et al.OOPSLA 2020 · 78 citations
- Storage Systems are Distributed Systems (So Verify Them That Way!)Travis Hance, Andrea Lattuada, Chris Hawblitzel, Jon Howell et al.OSDI 2020 · 52 citations
- GoJournal: a verified, concurrent, crash-safe journaling systemTej Chajed, Joseph Tassarotti, Mark Theng, Ralf Jung et al.OSDI 2021 · 31 citations
Related papers
- Validating a High-Performance Cloud Object Store with Lightweight Formal MethodsRajeev Joshi, Bernhard Kragl, Vimuth Fernando, Sarek Høverstad Skotåm et al.SOSP 2026
- Bolt-On Strong Consistency: Specification, Implementation, and VerificationNicholas V. Lewchenko, Gowtham Kaki, Bor-Yuh Evan ChangOOPSLA 2025 · 2 citations
- Formally Verified Cloud-Scale AuthorizationAleks Chakarov, Jaco Geldenhuys, Matthew Heck, Michael Hicks et al.ICSE 2025 · 1 citation
- Lessons Learned from Incorporating Formal Methods in Huawei Cloud ReliabilityClaudia Cauli, Timo Lang, Shuo Chen, Sebti Mouelhi et al.EuroSys 2026 · 2 citations
- AutoMan: Facilitating Verified Distributed Systems Development Through Automatic Code Generation and Manual OptimizationsZihao Zhang, Ti Zhou, Christa Jenkins, Omar Chowdhury et al.SOSP 2025 · 2 citations
