skip to main content
10.1145/3486605.3486786acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

Symmetric distributed applications

Published:17 October 2021Publication History

ABSTRACT

A program is deterministic if multiple re-executions with the same inputs always lead to the same state. Even concurrent instances of a deterministic program should observe identical behavior---in real time---if assigned the same set of inputs. In this work, we propose real-time reproducibility for distributed programs. Multiple instances of the same interactive application can broadcast asynchronous inputs and yet conform to identical behavior. Collaborative networked applications, such as watch parties, document editing, and video games can benefit from this approach. We name this class of applications as symmetric distributed applications. Using a standard event-driven API to wait and emit events, programmers write code as if the application executes in a single machine. Our middleware intercepts event generation and synchronizes all instances in a consistent timeline so that receipt is identically reproducible. Not only distributed applications benefit from consistency and determinism but also development and testing can be done in a single instance with the same guarantees. In our experiments, the middleware can handle applications with 25 FPS, distributed in up to 25 nodes over the Internet, with an event latency below 350ms.

References

  1. Albert Benveniste and Gérard Berry. 1991. The synchronous approach to reactive and real-time systems. Proc. IEEE, 79, 9 (1991), 1270–1282.Google ScholarGoogle ScholarCross RefCross Ref
  2. Albert Benveniste, Paul Caspi, Stephen A Edwards, Nicolas Halbwachs, Paul Le Guernic, and Robert De Simone. 2003. The synchronous languages 12 years later. Proc. IEEE, 91, 1 (2003), 64–83.Google ScholarGoogle ScholarCross RefCross Ref
  3. Gérard Berry and Georges Gonthier. 1992. The Esterel synchronous programming language: Design, semantics, implementation. Science of computer programming, 19, 2 (1992), 87–152. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Gérard Berry, S Ramesh, and RK Shyamasundar. 1993. Communicating reactive processes. In Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages. 85–98. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Robert L Bocchino, Vikram Adve, Sarita Adve, and Marc Snir. 2009. Parallel programming must be deterministic by default. Usenix HotPar, 6 (2009). Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Conal Elliott, Greg Schechter, Ricky Yeung, and Salim Abi-Ezzi. 1994. TBAG: A high level framework for interactive, animated 3D graphics applications. In Proceedings of the 21st annual conference on Computer graphics and interactive techniques. 421–434. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Nicolas Halbwachs. 1998. Synchronous programming of reactive systems. In International Conference on Computer Aided Verification. 1–16. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Charles Antony Richard Hoare. 1978. Communicating sequential processes. Commun. ACM, 21, 8 (1978), 666–677. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Martin Kleppmann, Adam Wiggins, Peter van Hardenberg, and Mark McGranaghan. 2019. Local-first software: you own your data, in spite of the cloud. In Proceedings of Onward’19. 154–178. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Leslie Lamport. 1979. How to make a multiprocessor computer that correctly executes multiprocess progranm. IEEE transactions on computers, 28, 09 (1979), 690–691. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Avinash Malik, Zoran Salcic, Partha S Roop, and Alain Girault. 2010. SystemJ: A GALS language for system level design. Computer Languages, Systems & Structures, 36, 4 (2010), 317–344. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Florence Maraninchi. 1991. The Argos language: Graphical representation of automata and description of reactive systems. In IEEE Workshop on Visual Languages. 3.Google ScholarGoogle Scholar
  13. Dumitru Potop-Butucaru, Robert De Simone, and Jean-Pierre Talpin. 2005. The synchronous hypothesis and synchronous languages. The embedded systems handbook, 1–21.Google ScholarGoogle Scholar
  14. S Ramesh. 1998. Communicating reactive state machines: Design, model and implementation. IFAC Proceedings Volumes, 31, 32 (1998), 105–110.Google ScholarGoogle ScholarCross RefCross Ref
  15. Rodrigo CM Santos, Francisco Sant’Anna, and Noemi Rodriguez. 2017. A GALS Approach for Programming Distributed Interactive Multimedia Applications. In Anais Estendidos do XXIII Simpósio Brasileiro de Sistemas Multimídia e Web. 52–57.Google ScholarGoogle Scholar
  16. Lui Sha, Abdullah Al-Nayeem, Mu Sun, Jose Meseguer, and Peter C Olveczky. 2009. PALS: Physically asynchronous logically synchronous systems.Google ScholarGoogle Scholar
  17. Marc Shapiro, Nuno Preguiça, Carlos Baquero, and Marek Zawirski. 2011. Conflict-free replicated data types. In Symposium on Self-Stabilizing Systems. 386–400. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. David A Smith, Alan Kay, Andreas Raab, and David P Reed. 2003. Croquet-a collaboration system architecture. In First Conference on Creating, Connecting and Collaborating Through Computing, 2003. C5 2003. Proceedings.. 2–9.Google ScholarGoogle ScholarCross RefCross Ref
  19. Paul Teehan, Mark Greenstreet, and Guy Lemieux. 2007. A survey and taxonomy of GALS design styles. IEEE Design & Test of Computers, 24, 5 (2007), 418–428. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Symmetric distributed applications

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Published in

        cover image ACM Conferences
        REBLS 2021: Proceedings of the 8th ACM SIGPLAN International Workshop on Reactive and Event-Based Languages and Systems
        October 2021
        60 pages
        ISBN:9781450391085
        DOI:10.1145/3486605

        Copyright © 2021 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 17 October 2021

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article

        Upcoming Conference

      • Article Metrics

        • Downloads (Last 12 months)13
        • Downloads (Last 6 weeks)1

        Other Metrics

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader