Of Concurrent Data Structures and Iterations

  • Yiannis Nikolakopoulos
  • Anders Gidenstam
  • Marina Papatriantafilou
  • Philippas Tsigas
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9295)


Bulk operations on data structures are widely used both on user-level but also on programming language level. Iterations are a good example of such bulk operations. In the sequential setting iterations are easy to design on top of an algorithmic construction of a data structure and is not considered as a challenge. In a concurrent environment, such as a multicore system, the situation is completely different and the issue of extending concurrent data structure designs to support iteration operations opens new research challenges in concurrent algorithmic data structure implementations, with respect to consistency and efficiency. In this paper we take a journey through this young and evolving research topic. More precisely we describe recent advances in the area together with an overview of iteration implementations that have appeared in the research literature as well as in widely-used programming environments and we outline a range of application targets and challenging future directions.


Iteration Consistency Lock-free Concurrent data structures In-memory computation Range-queries 



The research leading to these results has been partially supported by the European Union Seventh Framework Programme (FP7/2007-2013) through the EXCESS Project ( under grant agreement 611183 and by the Swedish Research Council (Vetenskapsrådet) project “Fine-grain synchronization in parallel programming”, contract nr. 2010-4801.


  1. 1.
    Intel threading building blocks documentation. Accessed on 27 November 2012
  2. 2.
    Java platform standard edition 7 documentation. Accessed on 06 December 2012
  3. 3.
    .NET framework class library documentation. Accessed on 10 May 2013
  4. 4.
    Python v2.7.5 documentation. Accessed on 10 September 2013
  5. 5.
    Anderson, J.H.: Multi-writer composite registers. Distrib. Comput. 7(4), 175–195 (1994)CrossRefGoogle Scholar
  6. 6.
    Avni, H., Shavit, N., Suissa, A.: Leaplist: lessons learned in designing TM-supported range queries. In: Proceedings of the 2013 ACM Symposium on Principles of Distributed Computing, PODC 2013, pp. 299–308. ACM, New York, NY, USA (2013)Google Scholar
  7. 7.
    Brown, T., Avni, H.: Range queries in non-blocking k-ary search trees. In: Baldoni, R., Flocchini, P., Binoy, R. (eds.) OPODIS 2012. LNCS, vol. 7702, pp. 31–45. Springer, Heidelberg (2012) CrossRefGoogle Scholar
  8. 8.
    Cederman, D., Chatterjee, B., Nguyen, N., Nikolakopoulos, Y., Papatriantafilou, M., Tsigas, P.: A study of the behavior of synchronization methods in commonly used languages and systems. In: 2013 IEEE 27th International Symposium on Parallel & Distributed Processing (IPDPS), pp. 1309–1320, May 2013Google Scholar
  9. 9.
    Cederman, D., Gidenstam, A., Ha, P., Sundell, H., Papatriantafilou, M., Tsigas, P.: Lock-free concurrent data structures. arXiv:1302.2757 [cs], February 2013
  10. 10.
    Cederman, D., Gulisano, V., Nikolakopoulos, Y., Papatriantafilou, M., Tsigas, P.: Brief announcement: concurrent data structures for efficient streaming aggregation. In Proceedings of the 26th ACM Symposium on Parallelism in Algorithms and Architectures, SPAA 2014, pp. 76–78 (2014)Google Scholar
  11. 11.
    Dehne, F., Kong, Q., Rau-Chaplin, A., Zaboli, H., Zhou, R.: A distributed tree data structure for real-time OLAP on cloud architectures. In: 2013 IEEE International Conference on Big Data, pp. 499–505, October 2013Google Scholar
  12. 12.
    Dehne, F., Zaboli, H.: Parallel real-time OLAP on multi-core processors. In: Proceedings of the 2012 12th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing (ccgrid 2012), pp. 588–594 (2012)Google Scholar
  13. 13.
    Dwork, C., Herlihy, M., Plotkin, S., Waarts, O.: Time-lapse snapshots. SIAM J. Comput. 28(5), 1848–1874 (1999)MathSciNetCrossRefzbMATHGoogle Scholar
  14. 14.
    Fatourou, P., Fich, F.E., Ruppert, E.: Time-space tradeoffs for implementations of snapshots. In: Proceedings of the Thirty-eighth Annual ACM Symposium on Theory of Computing, STOC 2006, pp. 169–178, ACM, New York, NY, USA (2006)Google Scholar
  15. 15.
    Fatourou, P., Kallimanis, N.D.: Revisiting the combining synchronization technique. SIGPLAN Not. 47(8), 257–266 (2012)CrossRefGoogle Scholar
  16. 16.
    Fich, F.E.: How hard is it to take a snapshot? In: Vojtáš, P., Bieliková, M., Charron-Bost, B., Sýkora, O. (eds.) SOFSEM 2005. LNCS, vol. 3381, pp. 28–37. Springer, Heidelberg (2005) CrossRefGoogle Scholar
  17. 17.
    Gidenstam, A., Koldehofe, B., Papatriantafilou, M., Tsigas, P.: Scalable group communication supporting configurable levels of consistency. Concurrency Comput: Pract. Experience 25(5), 649–671 (2013)CrossRefGoogle Scholar
  18. 18.
    Gidenstam, A., Papatriantafilou, M., Tsigas, P.: NBmalloc: allocating memory in a lock-free manner. Algorithmica 58(2), 304–338 (2010)MathSciNetCrossRefzbMATHGoogle Scholar
  19. 19.
    Gulisano, V., Nikolakopoulos, Y., Papatriantafilou, M., Tsigas, P.: ScaleJoin: a deterministic, disjoint-parallel and skew-resilient stream join enabled by concurrent data structures. Technical Report, Chalmers University of Technology (2014)Google Scholar
  20. 20.
    Harris, T.L., Fraser, K., Pratt, I.A.: A practical multi-word compare-and-swap operation. In: Malkhi, D. (ed.) DISC 2002. LNCS, vol. 2508, pp. 265–279. Springer, Heidelberg (2002) CrossRefGoogle Scholar
  21. 21.
    Hendler, D., Incze, I., Shavit, N., Tzafrir, M.: Flat combining and the synchronization-parallelism tradeoff. In: Proceedings of the Twenty-second Annual ACM Symposium on Parallelism in Algorithms and Architectures, SPAA 2010, pp. 355–364. ACM, New York, NY, USA (2010)Google Scholar
  22. 22.
    Herlihy, M.: Wait-free synchronization. ACM Trans. Prog. Lang. Syst. 13(1), 124–149 (1991)CrossRefGoogle Scholar
  23. 23.
    Herlihy, M., Luchangco, V., Moir, M.: Obstruction-free synchronization: double-ended queues as an example. In: ICDCS 2003, IEEE Computer Society (2003)Google Scholar
  24. 24.
    Herlihy, M., Shavit, N.: The Art of Multiprocessor Programming. Morgan Kaufmann, Burlington (2008)Google Scholar
  25. 25.
    Herlihy, M.P., Wing, J.M.: Linearizability: a correctness condition for concurrent objects. ACM Trans. Prog. Lang. Syst. 12(3), 463–492 (1990)CrossRefGoogle Scholar
  26. 26.
    Jayanti, P.: An optimal multi-writer snapshot algorithm. In: Proceedings of the Thirty-seventh Annual ACM Symposium on Theory of Computing, STOC 2005, pp. 723–732. ACM, New York, NY, USA (2005)Google Scholar
  27. 27.
    Kirousis, L., Spirakis, P., Tsigas, P.: Reading many variables in one atomic operation: solutions with linear or sublinear complexity. IEEE Trans. Parallel Distrib. Syst. 5(7), 688–696 (1994)CrossRefGoogle Scholar
  28. 28.
    Lamport, L.: How to make a multiprocessor computer that correctly executes multiprocess programs. IEEE Transactions on Computers C–28(9), 690–691 (1979)CrossRefzbMATHGoogle Scholar
  29. 29.
    Lamport, L.: On interprocess communication. Distrib. Comput. 1(2), 86–101 (1986)CrossRefzbMATHGoogle Scholar
  30. 30.
    Lev-Ari, K., Chockler, G., Keidar, I.: On correctness of data structures under reads-write concurrency. In: Kuhn, F. (ed.) DISC 2014. LNCS, vol. 8784, pp. 273–287. Springer, Heidelberg (2014) Google Scholar
  31. 31.
    Michael, M.M.: High performance dynamic lock-free hash tables and list-based sets. In: Proceedings of the Fourteenth Annual ACM Symposium on Parallel Algorithms and Architectures, SPAA 2002, ACM (2002)Google Scholar
  32. 32.
    Michael, M.M.: The balancing act of choosing nonblocking features. Commun. ACM 56(9), 46–53 (2013)CrossRefGoogle Scholar
  33. 33.
    Michael, M.M., Scott, M.L.: Simple, fast, and practical non-blocking and blocking concurrent queue algorithms. In: Proceedings of the Fifteenth Annual ACM Symposium on Principles of Distributed Computing, PODC 1996, pp. 267–275. ACM, New York, NY, USA (1996)Google Scholar
  34. 34.
    Nikolakopoulos, Y., Gidenstam, A., Papatriantafilou, M., Tsigas, P.: Enhancing concurrent data structures with concurrent iteration operations: consistency and algorithms. Technical report, Chalmers University of Technology (2013)Google Scholar
  35. 35.
    Nikolakopoulos, Y., Gidenstam, A., Papatriantafilou, M., Tsigas, P.: A consistency framework for iteration operations in concurrent data structures. In: 2015 IEEE 29th International Symposium on Parallel & Distributed Processing (IPDPS) (2015)Google Scholar
  36. 36.
    Okasaki, C.: Purely Functional Data Structures. Cambridge University Press, New York (1999) zbMATHGoogle Scholar
  37. 37.
    Petrank, E., Timnat, S.: Lock-free data-structure iterators. In: Afek, Y. (ed.) DISC 2013. LNCS, vol. 8205, pp. 224–238. Springer, Heidelberg (2013) CrossRefGoogle Scholar
  38. 38.
    Prokopec, A., Bagwell, P., Rompf, T., Odersky, M.: A generic parallel collection framework. In: Jeannot, E., Namyst, R., Roman, J. (eds.) Euro-Par 2011, Part II. LNCS, vol. 6853, pp. 136–147. Springer, Heidelberg (2011) CrossRefGoogle Scholar
  39. 39.
    Prokopec, A., Bronson, N.G., Bagwell, P., Odersky, M.: Concurrent tries with efficient non-blocking snapshots. In: PPoPP 2012, pp. 151–160. ACM (2012)Google Scholar
  40. 40.
    Sundell, H., Tsigas, P.: NOBLE: a non-blocking inter-process communication library. In: Proceedings of the 6th Workshop on Languages, Compilers and Run-time Systems for Scalable Computers, Lecture Notes in Computer Science. Springer Verlag (2002)Google Scholar
  41. 41.
    Watt, S.M.: A technique for generic iteration and its optimization. In: Proceedings of the 2006 ACM SIGPLAN Workshop on Generic programming, WGP 2006, pp. 76–86. ACM (2006)Google Scholar
  42. 42.
    Willard, D.E.: New data structures for orthogonal range queries. SIAM J. Comput. 14(1), 232–253 (1985)MathSciNetCrossRefzbMATHGoogle Scholar
  43. 43.
    Wirth, N.: Algorithms + Data Structures = Programs. Prentice Hall PTR, Upper Saddle River (1978) zbMATHGoogle Scholar

Copyright information

© Springer International Publishing Switzerland 2015

Authors and Affiliations

  • Yiannis Nikolakopoulos
    • 1
  • Anders Gidenstam
    • 2
  • Marina Papatriantafilou
    • 1
  • Philippas Tsigas
    • 1
  1. 1.Chalmers University of TechnologyGothenburgSweden
  2. 2.University of BoråsBoråsSweden

Personalised recommendations