Blogs (28) >>
ECOOP 2016
Sun 17 - Fri 22 July 2016 Rome, Italy

Whether you are programming a rich web application in JavaScript that mutates state in the client’s browser, or you are building a massively deployed mobile application that will operate with client state at the device, it’s undeniable that you are building a distributed system!

Two major challenges of programming distributed systems are concurrency and partial failure. Concurrency of operations can introduce accidental nondeterminism: computations may result in different outcomes with the same inputs given scheduling differences in the underlying system unless a synchronization mechanism is used to enforce some order. Synchronization is typically expensive, and reduces the efficiency of user applications. Partial failure, or the failure of one or more components in a distributed system at one time, introduces the challenge of knowing, when an operation fails, which components of the operation completed successfully. To solve these problems in practice on an unreliable, asynchronous network, atomic commit protocols and timeouts as failure detection are typically used.

Because of these challenges, early approaches to providing programming abstractions for distributed computing that ignored them were inherently misguided: the canonical example being the Remote Procedure Call, still widely deployed in industry.

The goal of this workshop is to discuss new approaches to distributed programming that provide efficient execution and the elimination of accidental nondeterminism resulting from concurrency and partial failure. It will bring together both practitioners and theoreticians from many disciplines: database theory, distributed systems, systems programming, programming languages, data-centric programming, web application development, and verification, to discuss the state-of-the-art of distributed programming, advancement of the state-of-the-art and paths forward to better application of theory in practice.

The main objectives of this workshop are the following:

  • To review the state-of-the-art research in languages, models, and systems for distributed programming;
  • To identify areas of critical need where research can advance the state of the art;
  • To create a forum for discussion;
  • To present open problems from practitioners with an aim towards motivating academic research on relevant problems faced by industry.

In the spirit of both ECOOP and Curry On, this workshop aims at favoring a multidisciplinary perspective by bringing together researchers, developers, and practitioners from both academia and industry.

PMLDC is sponsored by the SyncFree project in the European Union Seventh Framework Programme and by the Google Cloud Platform.

Accepted Papers

Title
Building Distributed Applications with Data and Time Frames
PMLDC
Implicitly Distributing Pervasively Concurrent Programs
PMLDC
Link to publication DOI
Integration Challenges of Pure Operation-based CRDTs in Redis
PMLDC
On the Potential of Event Sourcing for Retroactive Actor-based Programming
PMLDC
Link to publication DOI
The Consistency Babel
PMLDC
Towards Aggregate Programming in Scala
PMLDC
Link to publication DOI
Tracking the Elephants in the System
PMLDC
Data-centric Consistency Policies: A Programming Model for Distributed Applications with Tunable Consistency
PMLDC
Link to publication DOI Pre-print
Fractional Permissions for Race-Free Mutable References in a Dataflow Intermediate Language
PMLDC
Join Decompositions for Efficient Synchronization of CRDTs after a Network Partition
PMLDC
Link to publication DOI Pre-print
Static Type Checking for the Kompics Component Model -- Kola - The Kompics Language
PMLDC
Link to publication DOI File Attached

Call for Papers

First Workshop on Programming Models and Languages for Distributed Computing

Co-located with ECOOP 2016, Rome, Italy

Date: July 17th, 2016

Whether you are programming a rich web application in JavaScript that mutates state in the client’s browser, or you are building a massively deployed mobile application that will operate with client state at the device, it’s undeniable that you are building a distributed system!

Two major challenges of programming distributed systems are concurrency and partial failure. Concurrency of operations can introduce accidental nondeterminism: computations may result in different outcomes with the same inputs given scheduling differences in the underlying system unless a synchronization mechanism is used to enforce some order. Synchronization is typically expensive, and reduces the efficiency of user applications. Partial failure, or the failure of one or more components in a distributed system at one time, introduces the challenge of knowing, when an operation fails, which components of the operation completed successfully. To solve these problems in practice on an unreliable, asynchronous network, atomic commit protocols and timeouts as failure detection are typically used.

Because of these challenges, early approaches to providing programming abstractions for distributed computing that ignored them were inherently misguided: the canonical example being the Remote Procedure Call, still widely deployed in industry.

The goal of this workshop is to discuss new approaches to distributed programming that provide efficient execution and the elimination of accidental nondeterminism resulting from concurrency and partial failure. It will bring together both practitioners and theoreticians from many disciplines: database theory, distributed systems, systems programming, programming languages, data-centric programming, web application development, and verification, to discuss the state-of-the-art of distributed programming, advancement of the state-of-the-art and paths forward to better application of theory in practice.

The main objectives of this workshop are the following:

  • To review the state-of-the-art research in languages, models, and systems for distributed programming;
  • To identify areas of critical need where research can advance the state of the art;
  • To create a forum for discussion;
  • To present open problems from practitioners with an aim towards motivating academic research on relevant problems faced by industry.

In the spirit of both ECOOP and Curry On, this workshop aims at favoring a multidisciplinary perspective by bringing together researchers, developers, and practitioners from both academia and industry.

Submission Guidelines

We solicit proposals for contributed talks. We recommend preparing proposals of 2 pages, in ACM 2 column SIGPLAN style, written in English and in PDF format. However, we will accept longer proposals or submissions to other conferences, under the understanding that PC members are only expected to read the first two pages of such longer submissions. Authors with accepted papers will have the opportunity to have their submission published on the ACM Digital Library.

Important Dates

  • Paper submission: May 6, 2016 (any place on Earth)
  • Authors notification: June 10, 2016
  • Final version: June 17, 2016

You're viewing the program in a time zone which is different from your device's time zone - change time zone

Conference Day
Sun 17 Jul

Displayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change

08:45 - 09:45
Invited talkPMLDC at Montale
08:45
15m
Day opening
Opening Remarks
PMLDC

09:00
45m
Talk
We Are All Distributed System Engineers
PMLDC
Carl LercheIndependent Consultant
16:00 - 17:30
Session 3: ConsistencyPMLDC at Montale
16:00
30m
The Consistency Babel
PMLDC
Rodrigo RodriguesInstituto Superior Técnico, University of Lisboa & INESC-ID
16:30
30m
Data-centric Consistency Policies: A Programming Model for Distributed Applications with Tunable Consistency
PMLDC
Nosheen ZazaUniversità della Svizzera italiana, Nate NystromUniversita della Svizzera italiana (USI)
Link to publication DOI Pre-print
17:00
30m
On the Potential of Event Sourcing for Retroactive Actor-based Programming
PMLDC
Benjamin ErbUlm University, Germany , Gerhard Habiger, Franz J. Hauck
Link to publication DOI

We Are All Distributed System Engineers, Carl Lerche (Independent Consultant, USA)

The average web and mobile developer works in the context of a distributed system. Yet, only a percentage of these developers realize this fact, and an even smaller percentage is aware of ongoing research in the distributed system space. Their reality is that agility trumps correctness. Most applications today use a last write wins approach. This talk reflects further on the state of consistency in web and mobile development, the challenges that today’s developers face, and provides thoughts on how the academic community could help.

Tracking the Elephants in the System, Zach Tellman (Fitbit, USA)

In any distributed system, for every real-time metric we measure there are thousands we don’t. We choose our metrics by balancing their cost and complexity against their expected utility. We might track the request volume per machine, but generally not the request volume per client IP address. We might track the number of IOPS on a database server, but not the number of IOPS per user-id. Using typical monitoring infrastructure, any attempt to monitor and understand these rates across billions of keys is impractical. And yet, very often the distribution of these keys follow a power law, and a small number of users or clients consume a huge amount of our shared, fixed resources.

Tallyman is a distributed, real-time metrics service designed to monitor frequency distributions comprising billions of keys, using modest resources. It tracks the full distribution approximately, but identifies and tracks the top end of the distribution precisely. These metrics can then be fed back into the system, allowing us to automatically identify and respond to a wide range of pathological behavior. This represents an unfilled niche in practical large-scale systems deisgn, and should be useful in a wide variety of applications.