A Multiparty Session Typing Discipline for Fault-tolerant Event-driven Distributed Programming

Staff - Faculty of Informatics

Date: 26 April 2022 / 13:00 - 14:00

Online on MS Teams

You can join here

Speaker: Malte Viering, Global Cloud Services - SAP

Abstract:
The Internet and its services have become an omnipresent part of our lives. Asynchronous distributed systems form the basis of these services. Resiliency in the face of partial failures is an essential requirement for many distributed systems, meaning the system must continue to function as specified even if several components fail. Ensuring correct behavior, particularly when it comes to failures and asynchrony, makes programming such systems very challenging. 
In this talk, we present how to leverage Multiparty Session Types, a typing discipline for concurrent processes, to verify typing properties of distributed applications. We present the first formulation of MPST for fault-tolerant distributed programming of asynchronous distributed systems. Key to our approach is the development of the first model of event-driven concurrency for multiparty sessions to unify the session-typed handling of failures and regular I/O events. Moreover, the characteristics of our model allow us to prove a global progress property for well-typed processes engaged in multiple concurrent sessions. Global progress traditionally does not hold in MPST systems. To demonstrate the model's practicality, we implement our approach as a toolchain for Scala and use it to specify and implement a session-typed version of the cluster manager of the widely employed Apache Spark data analytics engine. Our session-typed cluster manager integrates with other vanilla Spark components to give a functioning Spark runtime, i.e., it can execute existing unmodified third-party Spark applications. Measured on an industry-standard benchmark Apache Spark has an average performance overhead of approximately 10% when using our session-typed cluster manage instead of Spark's default cluster manager.

Biography:
Malte Viering is a Senior Developer in the Innovation Office @ Global Cloud Services at SAP, where he works in predictive maintenances and cloud optimization. Before that, he finished his Ph.D. studies and his master's and bachelor's degree at the TU Darmstadt, where he published multiple scientific papers in top-tier venues. During his Ph.D. Studies, he was awarded a slot in the Software Campus program, which connects aspiring researchers with industrial partners to facilitate joint research.

Host: Prof. Patrick Thomas Eugster