Synthesis-Aided Crash Consistency for Storage Systems
Reliable storage systems must be \emph{crash consistent} — guaranteed to recover to a consistent state after a crash. Crash consistency is non-trivial as it requires maintaining complex invariants about persistent data structures in the presence of caching, reordering, and system failures. Current programming models offer little support for implementing crash consistency, forcing storage system developers to roll their own consistency mechanisms. Bugs in these mechanisms can lead to severe data loss for applications that rely on persistent storage.
This paper presents a new \emph{synthesis-aided} programming model for building crash-consistent storage systems. In this approach, storage systems can assume an \emph{angelic crash-consistency} model, where the underlying storage stack promises to resolve crashes in favor of consistency whenever possible. To realize this model, we introduce a new \emph{labeled writes} interface for developers to identify their writes to disk, and develop a program synthesis tool, DepSynth, that generates \emph{dependency rules} to enforce crash consistency over these labeled writes. We evaluate our model in a case study on a production storage system at a major cloud provider. We find that DepSynth can automate crash consistency for this complex storage system, with similar results to existing expert-written code, and can automatically identify and correct consistency and performance issues.
Thu 20 JulDisplayed time zone: Pacific Time (US & Canada) change
13:30 - 15:00 | ECOOP 5: SynthesisResearch Papers at Habib Classroom (Gates G01) Chair(s): Karine Even-Mendoza King’s College London | ||
13:30 15mTalk | Synthesis-Aided Crash Consistency for Storage Systems Research Papers Jacob Van Geffen Veridise Inc., James Bornholt University of Texas at Austin, Emina Torlak Amazon Web Services and University of Washington, Xi Wang University of Washington DOI | ||
13:45 15mTalk | Synthesizing Conjunctive Queries for Code Search Research Papers Chengpeng Wang Hong Kong University of Science and Technology, Peisen Yao Zhejing University, Wensheng Tang Hong Kong University of Science and Technology, Gang Fan Ant Group, Charles Zhang Hong Kong University of Science and Technology DOI | ||
14:00 15mTalk | Hoogle⋆: Constants and λ-abstractions in Petri-net-based Synthesis using Symbolic Execution Research Papers Henrique Botelho Guerra INESC-ID and IST, University of Lisbon, João F. Ferreira INESC-ID and IST, University of Lisbon, João Costa Seco NOVA-LINCS; Nova University of Lisbon DOI | ||
14:15 15mTalk | Building Code Transpilers for Domain-Specific Languages Using Program Synthesis Research Papers Sahil Bhatia University of California, Berkeley, Sumer Kohli UC Berkeley, Sanjit Seshia UC Berkeley, Alvin Cheung University of California at Berkeley DOI | ||
14:30 15mTalk | Do Machine Learning Models Produce TypeScript Types that Type Check? Research Papers DOI Media Attached File Attached | ||
14:45 15mTalk | Toward Tool-Independent Summaries for Symbolic Execution Research Papers Frederico Ramos Instituto Superior Técnico, Nuno Sabino Instituto Superior Técnico, Carnegie Mellon University, Pedro Adão IST-ULisboa and Instituto de Telecomunicações, David Naumann Stevens Institute of Technology, José Fragoso Santos INESC-ID/Instituto Superior Técnico, Portugal DOI |