Skip to main content

Snapshots in Shared Memory

  • Reference work entry
  • First Online:
Encyclopedia of Algorithms
  • 39 Accesses

Years and Authors of Summarized Original Work

  • 1993; Afek, Attiya, Dolev, Gafni, Merritt, Shavit

Problem Definition

Implementing a snapshot object is an abstraction of the problem of obtaining a consistent view of several shared variables while other processes are concurrently updating those variables.

In an asynchronous shared-memory distributed system, a collection of n processes communicate by accessing shared data structures, called objects. The system provides basic types of shared objects; other needed types must be built from them. One approach uses locks to guarantee exclusive access to the basic objects, but this approach is not fault-tolerant, risks deadlock or livelock, and causes delays when a process holding a lock runs slowly. Lock-free algorithms avoid these problems but introduce new challenges. For example, if a process reads two shared objects, the values it reads may not be consistent if the objects were updated between the two reads.

snapshot objectstores...

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 1,599.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Hardcover Book
USD 1,999.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Recommended Reading

  1. Afek Y, Attiya H, Dolev D, Gafni E, Merritt M, Shavit N (1993) Atomic snapshots of shared memory. J Assoc Comput Mach 40:873–890

    Article  MATH  Google Scholar 

  2. Anderson JH (1993) Composite registers. Distrib Comput 6:141–154

    Article  MATH  Google Scholar 

  3. Anderson JH (1994) Multi-writer composite registers. Distrib Comput 7:175–195

    Article  Google Scholar 

  4. Aspnes J, Herlihy M (1990) Wait-free data structures in the asynchronous PRAM model. In: Proceedings of the 2nd ACM symposium on parallel algorithms and architectures, Crete, July 1990. ACM, New York, pp 340–349

    Google Scholar 

  5. Attiya H, Fouren A (2001) Adaptive and efficient algorithms for lattice agreement and renaming. SIAM J Comput 31:642–664

    Article  MathSciNet  MATH  Google Scholar 

  6. Attiya H, Fouren A, Gafni E (2002) An adaptive collect algorithm with applications. Distrib Comput 15:87–96

    Article  Google Scholar 

  7. Attiya H, Herlihy M, Rachman O (1995) Atomic snapshots using lattice agreement. Distrib Comput 8:121–132

    Article  Google Scholar 

  8. Attiya H, Rachman O (1998) Atomic snapshots in O(n log n) operations. SIAM J Comput 27:319–340

    Article  MathSciNet  MATH  Google Scholar 

  9. Ellen F, Fatourou P, Ruppert E (2007) Time lower bounds for implementations of multi-writer snapshots. J Assoc Comput Mach 54(6), 30

    Article  MathSciNet  MATH  Google Scholar 

  10. Fatourou P, Kallimanis ND (2006) Single-scanner multi-writer snapshot implementations are fast! In: Proceedings of the 25th ACM symposium on principles of distributed computing, Colorado, July 2006. ACM, New York, pp 228–237

    Google Scholar 

  11. Fich FE (2005) How hard is it to take a snapshot? In: SOFSEM 2005: theory and practice of computer science, Liptovský Ján, Jan 2005. LNCS, vol 3381. Springer, pp 28–37

    Google Scholar 

  12. Guerraoui R, Ruppert E (2007) Anonymous and fault-tolerant shared-memory computing. Distrib Comput 20(3):165–177

    Article  MATH  Google Scholar 

  13. Jayanti P (2005) An optimal multi-writer snapshot algorithm. In: Proceedings of the 37th ACM symposium on theory of computing, Baltimore, May 2005. ACM, New York, pp 723–732

    Google Scholar 

  14. Kirousis LM, Spirakis P, Tsigas P (1996) Simple atomic snapshots: a linear complexity solution with unbounded time-stamps. Inf Process Lett 58:47–53

    Article  MATH  Google Scholar 

  15. Mostéfaoui A, Rajsbaum S, Raynal M, Roy M (2004) Conditionbased consensus solvability: a hierarchy of conditions and efficient protocols. Distrib Comput 17:1–20

    Article  Google Scholar 

  16. Riany Y, Shavit N, Touitou D (2001) Towards a practical snapshot algorithm. Theor Comput Sci 269:163–201

    Article  MathSciNet  MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2016 Springer Science+Business Media New York

About this entry

Cite this entry

Ruppert, E. (2016). Snapshots in Shared Memory. In: Kao, MY. (eds) Encyclopedia of Algorithms. Springer, New York, NY. https://doi.org/10.1007/978-1-4939-2864-4_380

Download citation

Publish with us

Policies and ethics