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.
This work is supported by MURI-AFOSR SA2796PO 1-0000243658, USAF-AFRL #FA9550-04-1-0121, NSF Grant CCR-0121277, NSF-Texas Engineering Experiment Station Grant 64961-CS, and DARPA F33615-01-C-1896.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
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)
Archer, M.: TAME: PVS Strategies for special purpose theorem proving. Annals of Mathematics and Artificial Intelligence 29(1/4) (February 2001)
Attiya, H., Bar-Noy, A., Dolev, D.: Sharing memory robustly in message-passing systems. Journal of the ACM 42(1), 124–142 (1995)
Attiya, H., Welch, J.: Distributed Computing: Fundamentals, Simulations, and Advanced Topics. McGraw-Hill Publishing Company, UK (1998)
Bogdanov, A.: Formal verification of simulations between i/o automata. Master’s thesis, Massachusetts Institute of Technology (July 2001)
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)
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)
Dolev, S., Gilbert, S., Lynch, N.A., Shvartsman, A.A., Welch, J.L.: GeoQuorums: Implementing atomic memory in ad hoc networks
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)
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)
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
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,
Ladin, R., Liskov, B., Shrira, L., Ghemawat, S.: Providing high availability using lazy replication. ACM Transactions on Computer Science 10(4), 360–391 (1992)
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)
Lamport, L.: Time, clocks, and the ordering of events in a distributed system. Communications of the ACM 21(7), 558–565 (1978)
Lamport, L.: On interprocess communication: Part I and II. Dist. Comput. 1, 77–101 (1986)
Lamport, L.: On interprocess communication, Part II: Algorithms. Distributed Computing 1(2), 86–101 (1986)
Lamport, L.: Paxos made simple. ACM SIGACT News (Distributed Computing Column) 32(4), 18–25 (2001)
Lampson, B.: The ABCD’s of paxos. In: Proceedings of the Twentieth Annual ACM symposium on Principles of Distributed Computing, Newport, RI (August 2001)
Lynch, N.A., Tuttle, M.R.: An introduction to Input/Output Automata. CWI Quarterly 2(3), 219–246 (1989)
Lynch, N.: Distributed Algorithms. Morgan Kaufmann Publishers, Inc., San Mateo (1996)
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)
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-856
Malkhi, D., Reiter, M.: Byzantine quorum systems. Journal of Distributed Computing 11(4), 203–213 (1998)
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)
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)
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)
Udaya Shankar, A.: An introduction to assertional reasoning for concurrent systems. ACM Comput. Surv. 25(3), 225–262 (1993)
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)
Tauber, J.A.: Verifiable Compilation of I/O Automata without Global Synchronization. PhD thesis, Massachusetts Institute of Technology, Cambridge, MA (September 2004)
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)
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)
Vidyasankar, K.: Concurrent reading while writing revisited. Distributed Computing 4, 81–85 (1990)
Vitanyi, P.: Simple wait-free multireader registers. In: Malkhi, D. (ed.) DISC 2002. LNCS, vol. 2508, pp. 118–132. Springer, Heidelberg (2002)
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)
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)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Chockler, G., Lynch, N., Mitra, S., Tauber, J. (2005). Proving Atomicity: An Assertional Approach. In: Fraigniaud, P. (eds) Distributed Computing. DISC 2005. Lecture Notes in Computer Science, vol 3724. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11561927_13
Download citation
DOI: https://doi.org/10.1007/11561927_13
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-29163-3
Online ISBN: 978-3-540-32075-3
eBook Packages: Computer ScienceComputer Science (R0)