Using Lightweight Formal Methods to Validate a Key-Value Storage Node in Amazon S3

78Citations
Citations of this article
71Readers
Mendeley users who have this article in their library.
Get full text

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.

Cite

CITATION STYLE

APA

Bornholt, J., Joshi, R., Astrauskas, V., Cully, B., Kragl, B., Markle, S., … Warfield, A. (2021). Using Lightweight Formal Methods to Validate a Key-Value Storage Node in Amazon S3. In SOSP 2021 - Proceedings of the 28th ACM Symposium on Operating Systems Principles (pp. 836–850). Association for Computing Machinery, Inc. https://doi.org/10.1145/3477132.3483540

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free