research-article
Free Access

Why Logical Clocks are Easy: Sometimes all you need is the right language.

Abstract

Any computing system can be described as executing sequences of actions, with an action being any relevant change in the state of the system. For example, reading a file to memory, modifying the contents of the file in memory, or writing the new contents to the file are relevant actions for a text editor. In a distributed system, actions execute in multiple locations; in this context, actions are often called events. Examples of events in distributed systems include sending or receiving messages, or changing some state in a node. Not all events are related, but some events can cause and influence how other, later events occur. For example, a reply to a received mail message is influenced by that message, and maybe by prior messages received.

References

  1. Ajoux, P., Bronson, N., Kumar, S., Lloyd, W., Veeraraghavan, K. 2015. Challenges to adopting stronger consistency at scale. In Proceedings of the 15th Workshop on Hot Topics in Operating Systems, Kartause Ittingen, Switzerland. Usenix Association. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Almeida, P. S., Baquero, C., Gonçalves, R., Preguiça, N. M., Fonte, V. 2014. Scalable and accurate causality tracking for eventually consistent stores. In Proceedings of the Distributed Applications and Interoperable Systems, held as part of the Ninth International Federated Conference on Distributed Computing Techniques, Berlin, Germany: 67-81.Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Birman, K. P., Joseph, T. A. 1987. Reliable communication in the presence of failures. ACM Transactions on Computer Systems 5(1): 47-76. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Charron-Bost, B. 1991. Concerning the size of logical clocks in distributed systems. Information Processing Letters 39(1): 11-16. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Fidge, C. J. 1988. Timestamps in message-passing systems that preserve the partial ordering. Proceedings of the 11th Australian Computer Science Conference 10(1): 56-66.Google ScholarGoogle Scholar
  6. Fink, B. 2010. Why vector clocks are easy. Basho Blog; http://basho.com/posts/technical/why-vector-clocks-are-easy/.Google ScholarGoogle Scholar
  7. Hoff, T. 2014. How League of Legends scaled chat to 70 million players-it takes lots of minions. High Scalability; http://highscalability.com/blog/2014/10/13/how-league-of-legends-scaled-chat-to-70-million-players-it-t.html.Google ScholarGoogle Scholar
  8. Lamport, L. 1978. Time, clocks, and the ordering of events in a distributed system. Communications of the ACM 21(7): 558-565. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Lloyd, W., Freedman, M. J., Kaminsky, M., Andersen, D. G. 2011. Don't settle for eventual: scalable causal consistency for wide-area storage with COPS. In Proceedings of the 23rd ACM Symposium on Operating Systems Principles, New York, NY: 401-416. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Mattern, F. 1988. Virtual time and global states in distributed systems. In Proceedings of the International Workshop on Parallel and Distributed Algorithms, Gers, France: 215- 226.Google ScholarGoogle Scholar
  11. Neville-Neil, G. 2015. Time is an illusion. acmqueue 13(9). 57 - 72 Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Parker, D.S., Popek, G. J., Rudisin, G., Stoughton, A., Walker, B. J., Walton, E., Chow, J. M., Edwards, D., Kiser, S., Kline, C. 1983. Detection of mutual inconsistency in distributed systems. IEEE Transactions on Software Engineering 9(3): 240-247. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Preguiça, N. M., Baquero, C., Almeida, P. S., Fonte, V., Gonçalves, R. 2012. Brief announcement: efficient causality tracking in distributed storage systems with dotted version vectors. In ACM Symposium on Principles of Distributed Computing, eds. D. Kowalski and A. Panconesi: 335-336. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Schwarz, R., Mattern, F. 1994. Detecting causal relationships in distributed computations: in search of the Holy Grail. Distributed Computing 7(3): 149-174. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Sheehy, J. 2010. Why vector clocks are hard. Basho Blog; http://basho.com/posts/technical/why-vector-clocks-are-hard/.Google ScholarGoogle Scholar
  16. Sheehy, J. 2015. There is no now. acmqueue 13(3): 20-27. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

(auto-classified)
  1. Why Logical Clocks are Easy

      Comments

      Login options

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

      Sign in

      Full Access

      • Published in

        Queue cover image
        Queue  Volume 14, Issue 1
        Containers
        January-February 2016
        ISSN:1542-7730
        EISSN:1542-7749
        DOI:10.1145/2898442
        Issue’s Table of Contents

        Copyright © 2016 ACM

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 1 February 2016

        Permissions

        Request permissions about this article.

        Request Permissions

        Qualifiers

        • research-article
        • Popular
        • Refereed

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader

      HTML Format

      View this article in HTML Format .

      View HTML Format
      About Cookies On This Site

      We use cookies to ensure that we give you the best experience on our website.

      Learn more

      Got it!