Lock-Free Data-Structure Iterators

  • Erez Petrank
  • Shahar Timnat
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8205)


Concurrent data structures are often used with large concurrent software. An iterator that traverses the data structure items is a highly desirable interface that often exists for sequential data structures but is missing from (almost all) concurrent data-structure implementations. In this paper we introduce a technique for adding a linearizable wait-free iterator to a wait-free or a lock-free data structure that implements a set. We use this technique to implement an iterator for the wait-free and lock-free linked-lists and for the lock-free skip-list.


concurrent data structures lock-freedom wait-freedom linked-list skiplist iterator snapshot 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Afek, Y., Dolev, D., Attiya, H., Gafni, E., Merritt, M., Shavit, N.: Atomic snapshots of shared memory. In: PODC, pp. 1–13 (1990)Google Scholar
  2. 2.
    Afek, Y., Shavit, N., Tzafrir, M.: Interrupting snapshots and the java\(^{\mbox{\tiny TM}}\) size() method. In: Keidar, I. (ed.) DISC 2009. LNCS, vol. 5805, pp. 78–92. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  3. 3.
    Anderson, J.H.: Multi-writer composite registers, pp. 175–195 (1994)Google Scholar
  4. 4.
    Braginsky, A., Petrank, E.: A lock-free b+tree. In: SPAA, pp. 58–67 (2012)Google Scholar
  5. 5.
    Bronson, N.G., Casper, J., Chafi, H., Olukotun, K.: A practical concurrent binary search tree. In: PPOPP, pp. 257–268 (2010)Google Scholar
  6. 6.
    Ellen, F., Fatourou, P., Ruppert, E., van Breugel, F.: Non-blocking binary search trees. In: PODC, pp. 131–140 (2010)Google Scholar
  7. 7.
    Fatourou, P., Kallimanis, N.D.: Time-optimal, space-efficient single-scanner snapshots & multi-scanner snapshots using cas. In: PODC, pp. 33–42 (2007)Google Scholar
  8. 8.
    Fomitchev, M., Ruppert, E.: Lock-free linked lists and skip lists. In: Proceedings of the Twenty-Third Annual ACM Symposium on Principles of Distributed Computing, PODC 2004, pp. 50–59. ACM, New York (2004)CrossRefGoogle Scholar
  9. 9.
    Harris, T.L.: A pragmatic implementation of non-blocking linked-lists. In: Welch, J.L. (ed.) DISC 2001. LNCS, vol. 2180, pp. 300–314. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  10. 10.
    Herlihy, M., Shavit, N.: The Art of Multiprocessor Programming. Morgan Kaufmann (2008)Google Scholar
  11. 11.
    Jayanti, P.: An optimal multi-writer snapshot algorithm. In: STOC, pp. 723–732 (2005)Google Scholar
  12. 12.
    Michael, M.M., Scott, M.L.: Simple, fast, and practical non-blocking and blocking concurrent queue algorithms. In: Proc. ACM Symposium on Principles of Distributed Computing (PODC), pp. 267–275 (1996)Google Scholar
  13. 13.
    Prokopec, A., Bronson, N.G., Bagwell, P., Odersky, M.: Concurrent tries with efficient non-blocking snapshots. In: PPOPP, pp. 151–160 (2012)Google Scholar
  14. 14.
    Riany, Y., Shavit, N., Touitou, D., Touitou, D.: Towards a practical snapshot algorithm. In: ISTCS, pp. 121–129 (1995)Google Scholar
  15. 15.
    Timnat, S., Braginsky, A., Kogan, A., Petrank, E.: Wait-free linked-lists. In: PPOPP, pp. 309–310 (2012)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  • Erez Petrank
    • 1
  • Shahar Timnat
    • 1
  1. 1.Dept. of Computer ScienceTechnion - Israel Institute of TechnologyHaifaIsrael

Personalised recommendations