Bridging the design and implementation of distributed systems with program analysis.
Ivan Beschastnikh ,
University of British Columbia –
Much of today’s software runs in a distributed context: mobile apps
communicate with the cloud, web apps interface with complex
distributed backends, and cloud-based systems use geo-distribution and
replication for performance, scalability, and fault tolerance.
However, distributed systems that power most of today’s infrastructure
pose unique challenges for software developers. For example, reasoning
about concurrent activities of system nodes and even understanding the
system’s communication topology can be difficult.
In this talk I will overview three program analysis techniques developed in
my group that address these challenges. First, I will present Dinv, a
dynamic analysis technique for inferring likely distributed state
properties of distributed systems. By relating state across nodes in the
system Dinv infers properties that help reason about system correctness.
Second, I will review Dara, a model checker for distributed systems that
introduces new techniques to cope with state explosion by combining
traditional abstract model checking with dynamic model inference
techniques. Finally, I will discuss PGo, a compiler that compiles formal
specifications written in PlusCal/TLA+ into runnable distributed system
implementations in the Go language. All three projects employ program
analysis in the context of distributed systems and aim to bridge the gap
between the design and implementations of such systems.
Ivan Beschastnikh is an Assistant Professor in the Department of
Computer Science at the University of British Columbia. He finished
his PhD at the University of Washington in 2013 and received his
formative training at the University of Chicago. He has broad research
interests that touch on systems and software engineering. His recent
projects span distributed systems, program analysis, networks, and security.
Visit his homepage to learn more:
For more information: