Designing asynchronous multiparty protocols with crash-stop failures

Session types provide a typing discipline for message-passing systems. However, most session type approaches assume an ideal world: one in which everything is reliable and without failures. Yet this is in stark contrast with distributed systems in the real world. To address this limitation, we intro...

Full description

Bibliographic Details
Main Authors: Barwell, A, Hou, P, Yoshida, N, Zhou, F
Format: Conference item
Language:English
Published: Association for Computing Machinery 2023
_version_ 1797112139551342592
author Barwell, A
Hou, P
Yoshida, N
Zhou, F
author_facet Barwell, A
Hou, P
Yoshida, N
Zhou, F
author_sort Barwell, A
collection OXFORD
description Session types provide a typing discipline for message-passing systems. However, most session type approaches assume an ideal world: one in which everything is reliable and without failures. Yet this is in stark contrast with distributed systems in the real world. To address this limitation, we introduce Teatrino, a code generation toolchain that utilises asynchronous multiparty session types (MPST) with crash-stop semantics to support failure handling protocols. We augment asynchronous MPST and processes with crash handling branches. Our approach requires no user-level syntax extensions for global types and features a formalisation of global semantics, which captures complex behaviours induced by crashed/crash handling processes. The sound and complete correspondence between global and local type semantics guarantees deadlockfreedom, protocol conformance, and liveness of typed processes in the presence of crashes. Our theory is implemented in the toolchain Teatrino, which provides correctness by construction. Teatrino extends the Scribble multiparty protocol language to generate protocol-conforming Scala code, using the Effpi concurrent programming library. We extend both Scribble and Effpi to support crash-stop behaviour. We demonstrate the feasibility of our methodology and evaluate Teatrino with examples extended from both session type and distributed systems literature.
first_indexed 2024-03-07T08:19:59Z
format Conference item
id oxford-uuid:4c8c642f-6515-43ec-a1da-651c97c3d955
institution University of Oxford
language English
last_indexed 2024-03-07T08:19:59Z
publishDate 2023
publisher Association for Computing Machinery
record_format dspace
spelling oxford-uuid:4c8c642f-6515-43ec-a1da-651c97c3d9552024-01-23T10:37:53ZDesigning asynchronous multiparty protocols with crash-stop failuresConference itemhttp://purl.org/coar/resource_type/c_5794uuid:4c8c642f-6515-43ec-a1da-651c97c3d955EnglishSymplectic ElementsAssociation for Computing Machinery2023Barwell, AHou, PYoshida, NZhou, FSession types provide a typing discipline for message-passing systems. However, most session type approaches assume an ideal world: one in which everything is reliable and without failures. Yet this is in stark contrast with distributed systems in the real world. To address this limitation, we introduce Teatrino, a code generation toolchain that utilises asynchronous multiparty session types (MPST) with crash-stop semantics to support failure handling protocols. We augment asynchronous MPST and processes with crash handling branches. Our approach requires no user-level syntax extensions for global types and features a formalisation of global semantics, which captures complex behaviours induced by crashed/crash handling processes. The sound and complete correspondence between global and local type semantics guarantees deadlockfreedom, protocol conformance, and liveness of typed processes in the presence of crashes. Our theory is implemented in the toolchain Teatrino, which provides correctness by construction. Teatrino extends the Scribble multiparty protocol language to generate protocol-conforming Scala code, using the Effpi concurrent programming library. We extend both Scribble and Effpi to support crash-stop behaviour. We demonstrate the feasibility of our methodology and evaluate Teatrino with examples extended from both session type and distributed systems literature.
spellingShingle Barwell, A
Hou, P
Yoshida, N
Zhou, F
Designing asynchronous multiparty protocols with crash-stop failures
title Designing asynchronous multiparty protocols with crash-stop failures
title_full Designing asynchronous multiparty protocols with crash-stop failures
title_fullStr Designing asynchronous multiparty protocols with crash-stop failures
title_full_unstemmed Designing asynchronous multiparty protocols with crash-stop failures
title_short Designing asynchronous multiparty protocols with crash-stop failures
title_sort designing asynchronous multiparty protocols with crash stop failures
work_keys_str_mv AT barwella designingasynchronousmultipartyprotocolswithcrashstopfailures
AT houp designingasynchronousmultipartyprotocolswithcrashstopfailures
AT yoshidan designingasynchronousmultipartyprotocolswithcrashstopfailures
AT zhouf designingasynchronousmultipartyprotocolswithcrashstopfailures