Abstract
In unreliable asynchronous distributed systems with failures, achieving a causal view of the system across all processes is a challenging task. The Causal Reliable Broadcast (CRB) abstraction is used to solve this task. When CRB is implemented with algorithms that use logical vector clocks to timestamp broadcast events, the causal relationships between broadcast events can be detected with maximal accuracy. However, this timestamping mechanism used by CRB might not be useful for systems that need to reason about the causal relationships among both broadcast and delivery events. To address this challenge, the paper proposes a Causal Timestamp System (CTS) based on vector clocks that timestamps broadcast and delivery events capturing with maximal accuracy the causal relationships among those events. CTS simplifies the formal verification and testing of implementations of CRB algorithms based on CTS. Additionally, a new Global State Monitoring (GSM) algorithm is proposed, tailored to a distributed system that uses CRB with CTS. GSM enables finer-grained assessment of global states and application-dependent predicates of that system. We clarify these concepts with an IoT example.
![](http://media.springernature.com/m312/springer-static/image/art%3A10.1007%2Fs11227-024-06187-6/MediaObjects/11227_2024_6187_Fig1_HTML.png)
![](http://media.springernature.com/m312/springer-static/image/art%3A10.1007%2Fs11227-024-06187-6/MediaObjects/11227_2024_6187_Fig2_HTML.png)
![](http://media.springernature.com/m312/springer-static/image/art%3A10.1007%2Fs11227-024-06187-6/MediaObjects/11227_2024_6187_Fig3_HTML.png)
![](http://media.springernature.com/m312/springer-static/image/art%3A10.1007%2Fs11227-024-06187-6/MediaObjects/11227_2024_6187_Fig4_HTML.png)
Similar content being viewed by others
References
Birman KP, Joseph TA (1987) Reliable communication in the presence of failures. ACM Trans Comput Syst 5(1):47–76. https://doi.org/10.1145/7351.7478
Lamport L (1978) Time, clocks, and the ordering of events in a distributed system. Commun ACM 21(7):558–565. https://doi.org/10.1145/359545.359563
Lloyd W, Freedman MJ, Kaminsky M, Andersen DG (2011) Don’t settle for eventual: scalable causal consistency for wide-area storage with cops. In: Proceedings of the Twenty-Third ACM Symposium on Operating Systems Principles. SOSP ’11, pp. 401–416. ACM, New York. https://doi.org/10.1145/2043556.2043593
Baquero C, Almeida PS, Shoker A (2017) Pure operation-based replicated data types. http://arxiv.org/abs/1710.04469
Fidge CJ (1988) Timestamps in message-passing systems that preserve the partial ordering. In: Proceedings \(11^{{{\rm th}}}\) Australasian Computer Science Conference, vol. 10, pp. 56–66
Mattern F (1989) Virtual time and global states of distributed systems. In: Parallel and Distributed Algorithms: Proceedings of the International Workshop on Parallel and Distributed Algorithms, vol. 1. Amsterdam, the Netherlands, pp. 215–226
Birman K, Schiper A, Stephenson P (1991) Lightweight causal and atomic group multicast. ACM Trans Comput Syst 9(3):272–314. https://doi.org/10.1145/128738.128742
Charron-Bost B (1991) Concerning the size of logical clocks in distributed systems. Inf Process Lett 39(1):11–16. https://doi.org/10.1016/0020-0190(91)90055-M
Singhal M, Kshemkalyani A (1992) An efficient implementation of vector clocks. Inf Process Lett 43(1):47–52. https://doi.org/10.1016/0020-0190(92)90028-T
Hadzilacos V, Toueg S (1994) A modular approach to fault-tolerant broadcasts and related problems. https://api.semanticscholar.org/CorpusID:13974342
Almeida PS, Baquero C, Fonte V (2008) Interval tree clocks. In: Baker, T.P., Bui, A., Tixeuil, S. (eds.) Principles of distributed systems, pp. 259–274. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-92221-6_18
Auvolat A, Frey D, Raynal M, Taiani F (2021) Byzantine-tolerant causal broadcast. Theor Comput Sci 885, 55–68. https://doi.org/10.1016/j.tcs.2021.06.021
Pozzetti T, Kshemkalyani AD (2020) Resettable encoded vector clock for causality analysis with an application to dynamic race detection. IEEE Trans Parallel Distrib Syst 32(4):772–785. https://doi.org/10.1109/TPDS.2020.3032293
Torres-Rojas FJ, Ahamad M (1999) Plausible clocks: constant size logical clocks for distributed systems. Distrib Comput 12(4):179–195
Ramabaja L (2019) The bloom clock. arXiv preprint arXiv:1905.13064
Kshemkalyani AD, Misra A (2021) The bloom clock to characterize causality in distributed systems. In: Advances in networked-based information systems: the 23rd international conference on network-based information systems (NBiS-2020) 23, pp. 269–279. https://doi.org/10.1007/978-3-030-57811-4_25 . Springer
Rodrigues L, Veríssimo P (1995) Causal separators for large-scale multicast communication. In: of 15th International Conference on Distributed Computing Systems (ICDCS), pp. 83–91. IEEE
Baldoni R, Friedman R, Renesse R (1997) The hierarchical daisy architecture for causal delivery. In: Proceedings of 17th International Conference on Distributed Computing Systems, pp. 570–577.https://doi.org/10.1109/ICDCS.1997.603422
Friedman R, Manor S (2004) Causal ordering in deterministic overlay networks. Technical report, Israel Institute of Technology, Haifa, Israel
Nédelec B, Molli P, Mostéfaoui A (2018) Breaking the scalability barrier of causal broadcast for large and dynamic systems. In: 2018 IEEE 37th symposium on reliable distributed systems (SRDS), pp. 51–60. https://doi.org/10.1109/SRDS.2018.00016
Attiya H, Welch J (2004) Distributed computing: fundamentals, simulations and advanced topics, \(2^{{{\rm nd}}}\) Ed., pp. 175–177. Wiley, Inc., Hoboken
Raynal M (2013) Distributed algorithms for message-passing systems, sec.7.2, 7.3, 12.1 and 12.3. Springer, Berlin, Heidelberg
Bouajjani A, Enea C, Guerraoui R, Hamza J (2017) On verifying causal consistency. In: Proceedings of the 44th ACM SIGPLAN symposium on principles of programming languages. POPL ’17, pp. 626–638. ACM, New York. https://doi.org/10.1145/3009837.3009888
Babaoğlu O, Marzullo K (1993) Consistent global states of distributed systems: fundamental concepts and mechanisms, pp. 55–96. ACM Press/Addison-Wesley Publishing Co.
Cachin C, Guerraoui R, Rodrigues L (2011) Introduction to reliable and secure distributed programming, \(2^{{{\rm nd}}}\) Ed. Springer, Berlin, Heidelberg
Nieto A, Gondelman L, Reynaud A, Timany A, Birkedal L (2022) Modular verification of op-based CRDTs in separation logic. Proc ACM Program Lang. 6(OOPSLA2). https://doi.org/10.1145/3563351
Redmond P, Shen G, Vazou N, Kuper L (2023) Verified causal broadcast with liquid haskell. In: Proceedings of the 34th symposium on implementation and application of functional languages. IFL ’22. ACM, New York. https://doi.org/10.1145/3587216.3587222
Cugola G, Margara A (2012) Processing flows of information: From data stream to complex event processing. ACM Compt Surv 44(3):1–62 https://doi.org/10.1145/2187671.2187677
Raynal M (2018) Fault-tolerant message-passing distributed systems: an algorithmic approach. Springer, Berlin
Kshemkalyani AD, Shen M, Voleti B (2020) Prime clock: encoded vector clock to characterize causality in distributed systems. J Parallel Distrib Comput 140, 37–51 https://doi.org/10.1016/J.JPDC.2020.02.008
Bloom BH (1970) Space/time trade-offs in hash coding with allowable errors. Commun ACM 13(7):422–426
Misra A, Kshemkalyani AD (2021) The bloom clock for causality testing. In: Distributed computing and internet technology: 17th international conference, ICDCIT 2021, Bhubaneswar, India, 2021, Proceedings 17, pp. 3–23. https://doi.org/10.1007/978-3-030-65621-8_1. Springer
Acharya A, Badrinath B (1992) Recording distributed snopshots based on causal order of message delivery. Inf Process Lett 44(6):317–321. https://doi.org/10.1016/0020-0190(92)90107-7
Alagar S, Venkatesan S (1994) An optimal algorithm for distributed snapshots with causal message ordering. Inf Process Lett 50(6):311–316. https://doi.org/10.1016/0020-0190(94)00055-7
Misra A, Kshemkalyani AD (2022) Detecting causality in the presence of byzantine processes: There is no holy grail. In: 2022 IEEE 21st international symposium on network computing and applications (NCA), vol. 21, pp. 73–80. https://doi.org/10.1109/NCA57778.2022.10013644
Acknowledgements
We want to thank the reviewers for their comments on our paper. This research has been partially funded by the Community of Madrid, under grant EDGEDATA-CM (P2018/TCS-4499), the Spanish Research Council, under grant QoSData (PID2020-119461GB-I00) and by URJC, under grant OpenSSDWMN 5 G (URJC 2022/00004/017).
Author information
Authors and Affiliations
Contributions
All the authors have contributed to all sections of this study.
Corresponding author
Ethics declarations
Conflict of interest
The authors have no conflict of interest that may have affected the content of this work.
Ethics approval
Not applicable.
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
Springer Nature or its licensor (e.g. a society or other partner) holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.
About this article
Cite this article
Muñoz-Fernández, I., Arévalo-Viñuales, S. & de-las-Heras-Quirós, P. Timestamp system for causal broadcast communication. J Supercomput (2024). https://doi.org/10.1007/s11227-024-06187-6
Accepted:
Published:
DOI: https://doi.org/10.1007/s11227-024-06187-6