Symmetric Peer-to-Peer Applications

Authors

DOI:

https://doi.org/10.22456/2175-2745.141618

Keywords:

Collaboration, Determinism, Peer-to-peer, Time Machine

Abstract

In real-time networked applications, such as shared documents, users can interact remotely and yet share the exact same experience as if they were in a single machine. In this work, we propose a middleware for symmetric peer-to-peer applications in which decentralized instances can trigger asynchronous events and yet conform to identical behavior. Peers are allowed to join and leave the network at any time. Application developers must adhere to a restricted API, which is deterministic, stateless, and only supports pre-allocated memory. The middleware is responsible for synchronizing the events in a global shared timeline across the network. Also, based on memory snapshots and deterministic simulation, a "time machine" can rollback conflicting peers to resynchronize their state. We show that the middleware can handle applications with over 20 peers in a heterogeneous topology under high churn. For instance, in a simulation scenario of 25 events per minute with a network latency of 50ms, the peers need to roll back and resynchronize only 3% of the time.

Downloads

Download data is not yet available.

References

SANT’ANNA, F.; SANTOS, R.; RODRIGUEZ, N. Symmetric distributed applications. In: Proceedings of the 8th ACM SIGPLAN International Workshop on Reactive and Event-Based Languages and Systems. [S.l.: s.n.], 2021. p. 41–50.

SMITH, D. A. et al. Croquet—a collaboration system architecture. In: IEEE. First Conference on Creating, Connecting and Collaborating Through Computing, 2003. C5 2003. Proceedings. [S.l.], 2003. p. 2–9.

THEOTOKIS, S. A.; SPINELLIS, D. A survey of peer-to-peer content distribution technologies. ACM Comput. Surv., Association for Computing Machinery, New York, NY, USA, dez. 2004. ISSN 0360-0300.

OHSHIMA, Y. et al. An experiment in live collaborative programming on the croquet shared experience platform. In: Companion Proceedings of the 6th International Conference on the Art, Science, and Engineering of Programming. [S.l.: s.n.], 2022. p. 46–53.

SHAPIRO, M. et al. Conflict-free replicated data types. In: SPRINGER. Symposium on Self-Stabilizing Systems. [S.l.], 2011. p. 386–400.

KLEPPMANN, M. et al. Local-first software: you own your data, in spite of the cloud. In: Proceedings of Onward’19. [S.l.: s.n.], 2019. p. 154–178.

KLEPPMANN, M.; BERESFORD, A. R. A conflict-free replicated JSON datatype. IEEE Transactions on Parallel and Distributed Systems, IEEE, v. 28, n. 10, p. 2733–2746, 2017.

HARDENBERG, P. van; KLEPPMANN, M. Pushpin: Towards production-quality peer-to-peer collaboration. In: Proceedings of the 7th Workshop on Principles and Practice of Consistency for Distributed Data. [S.l.: s.n.], 2020. p. 1–10.

LAMPORT, L. How to make a multiprocessor computer that correctly executes multiprocess programs. IEEE transactions on computers, IEEE Computer Society, v. 28, n. 09, p. 690–691, 1979.

HOWARD, H.; MORTIER, R. Paxos vs raft: Have we reached consensus on distributed consensus? In: Proceedings of the 7th Workshop on Principles and Practice of Consistency for Distributed Data. [S.l.: s.n.], 2020. p. 1–9.

GOMES, V. et al. Verifying strong eventual consistency in distributed systems. In: [S.l.]: ACM New York, NY, USA, 2017. v. 1, p. 1–28.

ENGBLOM, J. A review of reverse debugging. In: IEEE. Proceedings of the 2012 System, Software, SoC and Silicon Debug Conference. [S.l.], 2012. p. 1–6.

SCHUSTER, C.; FLANAGAN, C. Live programming for event-based languages. In: Proceedings of the 2015 Reactive and Event-based Languages and Systems Workshop, REBLS. [S.l.: s.n.], 2015. v. 15.

BURCKHARDT, S. et al. It’s alive! Continuous feedback in UI programming. In: Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation. [S.l.: s.n.], 2013. p. 95–104.

ABERER, K.; DATTA, A.; HAUSWIRTH, M. Efficient, self-contained handling of identity in peer-to-peer systems. IEEE Transactions on Knowledge and Data Engineering, IEEE, v. 16, n. 7, p. 858–869, 2004.

HEMMINGER, S. et al. Network emulation with netem. In: CITESEER. Linux conf au. [S.l.], 2005. v. 5, p. 2005.

Downloads

Published

2025-03-19

How to Cite

Sant’Anna, F. (2025). Symmetric Peer-to-Peer Applications. Revista De Informática Teórica E Aplicada, 32(2), 11–21. https://doi.org/10.22456/2175-2745.141618

Issue

Section

Regular Papers