SPLASH 2023
Sun 22 - Fri 27 October 2023 Cascais, Portugal
Fri 27 Oct 2023 11:18 - 11:36 at Room II - distribution & networking 1 Chair(s): Elisa Gonzalez Boix

Several distributed programming language solutions have been proposed to reason about the placement of data, computations, and peers interaction. Such solutions include, among the others, multitier programming, choreographic programming and various approaches based on behavioral types. These methods statically ensure safety properties thanks to a complete knowledge about placement of data and computation at compile time. In distributed systems, however, dynamic placement of computation and data is crucial to enable performance optimizations, e.g., driven by data locality or in presence of a number of other constraints such as security and compliance regarding data storage location. Unfortunately, in existing programming languages, dynamic placement conflicts with static reasoning about distributed programs: the flexibility required by dynamic placement hinders statically tracking the location of data and computation.

In this paper we present Dyno, a programming language that enables static reasoning about dynamic placement. Dyno features a type system where values are explicitly placed, but in contrast to existing approaches, placed values are also first class, ensuring that they can be passed around and referred to from other locations. Building on top of this mechanism, we provide a novel interpretation of dynamic placement as unions of placement types. We formalize type soundness, placement correctness (as part of type soundness) and architecture conformance. In case studies and benchmarks, our evaluation shows that Dyno enables static reasoning about programs even in presence of dynamic placement, ensuring type safety and placement correctness of programs at negligible performance cost. We reimplement an Android app with ∼ 7 K LOC in Dyno, find a bug in the existing implementation, and show that the app's approach is representative of a common way to implement dynamic placement found in over 100 apps in a large open-source app store.

Fri 27 Oct

Displayed time zone: Lisbon change

11:00 - 12:30
distribution & networking 1OOPSLA at Room II
Chair(s): Elisa Gonzalez Boix Vrije Universiteit Brussel
11:00
18m
Talk
Initializing Global Objects: Time and OrderDistinguished Paper
OOPSLA
Fengyun Liu Oracle Labs, Ondřej Lhoták University of Waterloo, David Hua University of Waterloo, Enze Xing University of Waterloo
DOI
11:18
18m
Talk
Type-Safe Dynamic Placement with First-Class Placed Values
OOPSLA
George Zakhour University of St. Gallen, Pascal Weisenburger University of St. Gallen, Guido Salvaneschi University of St. Gallen
DOI Pre-print
11:36
18m
Talk
Secure RDTs: Enforcing Access Control Policies for Offline Available JSON Data
OOPSLA
Thierry Renaux Vrije Universiteit Brussel, Sam Van den Vonder Vrije Universiteit Brussel, Wolfgang De Meuter Vrije Universiteit Brussel
DOI Pre-print
11:54
18m
Talk
AtomiS: Data-Centric Synchronization Made Practical
OOPSLA
Hervé Paulino Nova University of Lisbon, Ana Almeida Matos University of Lisbon, Jan Cederquist University of Lisbon, Marco Giunti Nova University of Lisbon, João Batista Pereira Matos Júnior Sidia Instituto de Ciência e Tecnologia, António Ravara Nova University of Lisbon
DOI
12:12
18m
Talk
Enabling Bounded Verification of Doubly-Unbounded Distributed Agreement-Based Systems via Bounded Regions
OOPSLA
Christopher Wagner Purdue University, Nouraldin Jaber Purdue University, Roopsha Samanta Purdue University
DOI