University of Cambridge > Talks.cam > Computer Laboratory Systems Research Group Seminar > Compiling Distributed System Models with PGo, and Beyond

Compiling Distributed System Models with PGo, and Beyond

Add to your list(s) Download to your calendar using vCal

If you have a question about this talk, please contact Richard Mortier.

Distributed Systems are inherently hard to build and reason about. Their combination of asynchrony and partial failures leads to complex edge cases that are rarely repeatable under test conditions. To address this problem, we can use formal methods to formally model and analyze our distributed systems, detecting error scenarios before they reach production. Taking the idea further, we can compile our formal model into an implementation, minimizing the chances that our formal models and systems exhibit diverging behavior. Our compiler PGo does this, and we have used it to develop a collection formally verified distributed systems. Of those, our verified Raft-based key-value store PGo-RaftKV outperforms related work that is compiled from formal models. The story isn’t over, however. Spec-compiled code is still not performance-competitive with hand-written production systems like etcd, and spec-compiled code can still have bugs (in how the verified protocol interacts with the world). We describe our work so far, as well as follow-up work we have begun that addresses remaining shortfalls in compiling distributed system models into practical implementations.

Bio:

Finn is a Ph.D. student exploring practical applications of programming language design and formal verification, currently on internship with the VeriDis team at Inria. As a member of the Systopia lab and Software Practices Lab at the University of British Columbia, Finn aims to build language-level tools that help developers interact more confidently with the complex and unintuitive design problems that arise when building practical systems. Finn’s most recent work is PGo, a TLA +-based domain-specific language for developing formally verified distributed systems.

This talk is part of the Computer Laboratory Systems Research Group Seminar series.

Tell a friend about this talk:

This talk is included in these lists:

Note that ex-directory lists are not shown.

 

© 2006-2024 Talks.cam, University of Cambridge. Contact Us | Help and Documentation | Privacy and Publicity