Advertisement

Proving Atomicity: An Assertional Approach

  • Gregory Chockler
  • Nancy Lynch
  • Sayan Mitra
  • Joshua Tauber
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3724)

Abstract

Atomicity (or linearizability) is a commonly used consistency criterion for distributed services and objects. Although atomic object implementations are abundant, proving that algorithms achieve atomicity has turned out to be a challenging problem. In this paper, we initiate the study of systematic ways of verifying distributed implementations of atomic objects, beginning with read/write objects (registers). Our general approach is to replace the existing operational reasoning about events and partial orders with assertional reasoning about invariants and simulation relations. To this end, we define an abstract state machine that captures the atomicity property and prove correctness of the object implementations by establishing a simulation mapping between the implementation and the specification automata. We demonstrate the generality of our specification by showing that it is implemented by three different read/write register constructions: the message-passing register emulation of Attiya, Bar-Noy and Dolev, its optimized version based on real time, and the shared memory register construction of Vitanyi and Awerbuch. In addition, we show that a simplified version of our specification is implemented by a general atomic object construction based on the Lamport’s replicated state machine algorithm.

Keywords

Read Operation Forward Simulation Simulation Relation Abstract State Machine Quorum System 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Abraham, I., Chockler, G., Keidar, I., Malkhi, D.: Byzantine disk paxos: Optimal resilience with byzantine shared memory. In: Proceedings of the 23rd ACM Symposium on Principles of Distributed Computing (PODC 2004), St John’s Newfoundland, Canada, July 2004, pp. 226–235 (2004)Google Scholar
  2. 2.
    Archer, M.: TAME: PVS Strategies for special purpose theorem proving. Annals of Mathematics and Artificial Intelligence 29(1/4) (February 2001)Google Scholar
  3. 3.
    Attiya, H., Bar-Noy, A., Dolev, D.: Sharing memory robustly in message-passing systems. Journal of the ACM 42(1), 124–142 (1995)zbMATHCrossRefGoogle Scholar
  4. 4.
    Attiya, H., Welch, J.: Distributed Computing: Fundamentals, Simulations, and Advanced Topics. McGraw-Hill Publishing Company, UK (1998)Google Scholar
  5. 5.
    Bogdanov, A.: Formal verification of simulations between i/o automata. Master’s thesis, Massachusetts Institute of Technology (July 2001)Google Scholar
  6. 6.
    Chockler, G., Lynch, N., Mitra, S., Tauber, J.: Proving atomicity: An assertional approach. Technical Report MIT/LCS/TR-XXX, MIT Laboratory for Computer Science (2005)Google Scholar
  7. 7.
    Doherty, S., Groves, L., Luchangco, V., Moir, M.: Formal verification of a practical lock-free queue algorithm. In: de Frutos-Escrig, D., Núñez, M. (eds.) FORTE 2004. LNCS, vol. 3235, pp. 97–114. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  8. 8.
    Dolev, S., Gilbert, S., Lynch, N.A., Shvartsman, A.A., Welch, J.L.: GeoQuorums: Implementing atomic memory in ad hoc networksGoogle Scholar
  9. 9.
    Fekete, A., Gupta, D., Luchangco, V., Lynch, N., Shvartsman, A.: Eventually-serializable data services. In: Proceedings of the Fifteenth Annual ACM Symposium on Principles of Distributed Computing, Philadelphia, PA, May 1996, pp. 300–309 (1996)Google Scholar
  10. 10.
    Herlihy, M.P., Wing, J.M.: Linearizability: A correctness condition for concurrent objects. ACM Transactions on Programming Languages and Systems 12(3), 463–492 (1990)zbMATHCrossRefGoogle Scholar
  11. 11.
    Kaynar, D., Lynch, N., Segala, R., Vaandrager, F.: The theory of timed I/O automata. Technical Report MIT/LCS/TR-917a, MIT Laboratory for Computer Science (2004), Available at http://theory.lcs.mit.edu/tds/reflist.html
  12. 12.
    Kaynar, D.K., Lynch, N., Segala, R., Vaandrager, F.: Timed I/O automata: A mathematical framework for modeling and analyzing real-time system. In: RTSS 2003: The 24th IEEE International Real-Time Systems Symposium, Cancun, Mexico, December 2003,Google Scholar
  13. 13.
    Ladin, R., Liskov, B., Shrira, L., Ghemawat, S.: Providing high availability using lazy replication. ACM Transactions on Computer Science 10(4), 360–391 (1992)CrossRefGoogle Scholar
  14. 14.
    Lamport, L.: The part-time parliament. ACM Transactions on Computer Systems 16(2), 133–169 (1998); Earlier version in Research Report 49, Digital Equipment Corporation Systems Research Center, Palo Alto, CA (September 1989)CrossRefGoogle Scholar
  15. 15.
    Lamport, L.: Time, clocks, and the ordering of events in a distributed system. Communications of the ACM 21(7), 558–565 (1978)zbMATHCrossRefGoogle Scholar
  16. 16.
    Lamport, L.: On interprocess communication: Part I and II. Dist. Comput. 1, 77–101 (1986)zbMATHCrossRefGoogle Scholar
  17. 17.
    Lamport, L.: On interprocess communication, Part II: Algorithms. Distributed Computing 1(2), 86–101 (1986)zbMATHCrossRefGoogle Scholar
  18. 18.
    Lamport, L.: Paxos made simple. ACM SIGACT News (Distributed Computing Column) 32(4), 18–25 (2001)Google Scholar
  19. 19.
    Lampson, B.: The ABCD’s of paxos. In: Proceedings of the Twentieth Annual ACM symposium on Principles of Distributed Computing, Newport, RI (August 2001)Google Scholar
  20. 20.
    Lynch, N.A., Tuttle, M.R.: An introduction to Input/Output Automata. CWI Quarterly 2(3), 219–246 (1989)zbMATHMathSciNetGoogle Scholar
  21. 21.
    Lynch, N.: Distributed Algorithms. Morgan Kaufmann Publishers, Inc., San Mateo (1996)zbMATHGoogle Scholar
  22. 22.
    Lynch, N., Shvartsman, A.: Robust emulation of shared memory using dynamic quorum-acknowledged broadcasts. In: Twenty-Seventh Annual International Symposium on Fault-Tolerant Computing (FTCS 1997), Seattle, Washington, USA, June 1997, pp. 272–281. IEEE, Los Alamitos (1997)Google Scholar
  23. 23.
    Lynch, N., Shvartsman, A.: RAMBO: A reconfigurable atomic memory service for dynamic networks. In: Malkhi, D. (ed.) DISC 2002. LNCS, vol. 2508, pp. 173–190. Springer, Heidelberg (2002) Also, Technical Report MIT-LCS-TR-856CrossRefGoogle Scholar
  24. 24.
    Malkhi, D., Reiter, M.: Byzantine quorum systems. Journal of Distributed Computing 11(4), 203–213 (1998)CrossRefGoogle Scholar
  25. 25.
    Martin, J.P., Alvisi, L., Dahlin, M.: Minimal Byzantine storage. In: Malkhi, D. (ed.) DISC 2002. LNCS, vol. 2508, pp. 311–325. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  26. 26.
    Owre, S., Rajan, S., Rushby, J.M., Shankar, N., Srivas, M.K.: PVS: Combining specification, proof checking, and model checking. In: Alur, R., Henzinger, T.A. (eds.) CAV 1996. LNCS, vol. 1102, pp. 411–414. Springer, Heidelberg (1996)Google Scholar
  27. 27.
    Peterson, G.L., Burns, J.E.: Concurrent reading while writing II: The multi-writer case. In: 28th Annual Symposium on Foundations of Computer Science, October 1987, pp. 383–392. IEEE, Los Angeles (1987)CrossRefGoogle Scholar
  28. 28.
    Udaya Shankar, A.: An introduction to assertional reasoning for concurrent systems. ACM Comput. Surv. 25(3), 225–262 (1993)CrossRefGoogle Scholar
  29. 29.
    Shao, C., Pierce, E., Welch, J.L.: Multi-writer consistency conditions for shared memory objects. In: Fich, F.E. (ed.) DISC 2003. LNCS, vol. 2848, pp. 106–120. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  30. 30.
    Tauber, J.A.: Verifiable Compilation of I/O Automata without Global Synchronization. PhD thesis, Massachusetts Institute of Technology, Cambridge, MA (September 2004)Google Scholar
  31. 31.
    Tauber, J.A., Lynch, N.A., Tsai, M.J.: Compiling IOA without global synchronization. In: Proceedings of the the 3rd IEEE International Symposium on Network Computing and Applications (IEEE NCA 2004), September 2004, pp. 121–130 (2004)Google Scholar
  32. 32.
    Tromp, J.: How to construct an atomic variable. In: Bermond, J.-C., Raynal, M. (eds.) WDAG 1989. LNCS, vol. 392, pp. 292–302. Springer, Heidelberg (1989)Google Scholar
  33. 33.
    Vidyasankar, K.: Concurrent reading while writing revisited. Distributed Computing 4, 81–85 (1990)zbMATHCrossRefMathSciNetGoogle Scholar
  34. 34.
    Vitanyi, P.: Simple wait-free multireader registers. In: Malkhi, D. (ed.) DISC 2002. LNCS, vol. 2508, pp. 118–132. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  35. 35.
    Vitányi, P.M.B.: Distributed elections in an Archimedean ring of processors. In: Proceedings of the Sixteenth Annual ACM Symposium on Theory of Computing, April/May 1984, pp. 542–547. Washington, D.C (1984)Google Scholar
  36. 36.
    Vitanyi, P.M.B., Awerbuch, B.: Atomic shared register access by asynchronous hardware. In: 27th IEEE Annual Symposium on Foundations of Computer Science, pp. 233–243 (1986)Google Scholar
  37. 37.
    Wang, L., Stoller, S.D.: Static analysis for programs with non-blocking synchronization. In: Proc. ACM SIGPLAN 2005 Symposium on Principles and Practice of Parallel Programming (PPoPP). ACM Press, New York (2005)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2005

Authors and Affiliations

  • Gregory Chockler
    • 1
  • Nancy Lynch
    • 1
  • Sayan Mitra
    • 1
  • Joshua Tauber
    • 1
  1. 1.The Stata CenterMIT CSAILCambridgeUSA

Personalised recommendations