A Skiplist-Based Concurrent Priority Queue with Minimal Memory Contention

  • Jonatan Lindén
  • Bengt Jonsson
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8304)


Priority queues are fundamental to many multiprocessor applications. Several priority queue algorithms based on skiplists have been proposed, as skiplists allow concurrent accesses to different parts of the data structure in a simple way. However, for priority queues on multiprocessors, an inherent bottleneck is the operation that deletes the minimal element. We present a linearizable, lock-free, concurrent priority queue algorithm, based on skiplists, which minimizes the contention for shared memory that is caused by the DeleteMin operation. The main idea is to minimize the number of global updates to shared memory that are performed in one DeleteMin. In comparison with other skiplist-based priority queue algorithms, our algorithm achieves a 30 - 80% improvement.


Concurrent Data Structures Priority Queue Lock-free Non-blocking Skiplist 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Crain, T., Gramoli, V., Raynal, M.: Brief announcement: a contention-friendly, non-blocking skip list. In: Aguilera, M.K. (ed.) DISC 2012. LNCS, vol. 7611, pp. 423–424. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  2. 2.
    Drawert, B., Engblom, S., Hellander, A.: URDME: a modular framework for stochastic simulation of reaction-transport processes in complex geometries. BMC Systems Biology 6(76), 1–17 (2012)Google Scholar
  3. 3.
    Fomitchev, M., Ruppert, E.: Lock-free linked lists and skip lists. In: PODC 2004, pp. 50–59. ACM (2004)Google Scholar
  4. 4.
    Fraser, K.: Practical lock freedom. Ph.D. thesis, University of Cambridge (2003)Google Scholar
  5. 5.
    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
  6. 6.
    Hendler, D., Incze, I., Shavit, N., Tzafrir, M.: Flat combining and the synchronization-parallelism tradeoff. In: SPAA, pp. 355–364. ACM (2010)Google Scholar
  7. 7.
    Herlihy, M., Wing, J.M.: Linearizability: A correctness condition for concurrent objects. ACM Trans. Program. Lang. Syst. 12(3), 463–492 (1990)CrossRefGoogle Scholar
  8. 8.
    Herlihy, M., Shavit, N.: The Art of Multiprocessor Programming. Morgan Kaufmann Publishers Inc. (2008)Google Scholar
  9. 9.
    Holzmann, G.: The model checker SPIN. IEEE Trans. on Software Engineering SE-23(5), 279–295 (1997)Google Scholar
  10. 10.
    Hunt, G.C., Michael, M.M., Parthasarathy, S., Scott, M.L.: An efficient algorithm for concurrent priority queue heaps. Inf. Process. Lett. 60(3), 151–157 (1996)MathSciNetCrossRefzbMATHGoogle Scholar
  11. 11.
    Lotan, I., Shavit., N.: Skiplist-based concurrent priority queues. In: IPDPS, pp. 263–268. IEEE (2000)Google Scholar
  12. 12.
    Michael, M.M.: Hazard pointers: Safe memory reclamation for lock-free objects. IEEE Trans. Parallel Distrib. Syst. 15(6), 491–504 (2004)CrossRefGoogle Scholar
  13. 13.
    Molka, D., Hackenberg, D., Schone, R., Muller, M.: Memory performance and cache coherency effects on an intel nehalem multiprocessor system. In: PACT 2009, pp. 261–270. ACM (2009)Google Scholar
  14. 14.
    Pugh, W.: Concurrent maintenance of skip lists. Tech. Rep. CS-TR-2222, Dept. of Computer Science, University of Maryland, College Park (1990)Google Scholar
  15. 15.
    Pugh, W.: Skip lists: a probabilistic alternative to balanced trees. Commun. ACM 33(6), 668–676 (1990)MathSciNetCrossRefGoogle Scholar
  16. 16.
    Sundell, H., Tsigas, P.: Scalable and lock-free concurrent dictionaries. In: SAC 2004, pp. 1438–1445. ACM (2004)Google Scholar
  17. 17.
    Sundell, H., Tsigas, P.: Fast and lock-free concurrent priority queues for multi-thread systems. J. Parallel Distrib. Comput. 65(5), 609–627 (2005)CrossRefzbMATHGoogle Scholar
  18. 18.
    Valois, J.D.: Lock-free linked lists using compare-and-swap. In: PODC 1995, pp. 214–222. ACM (1995)Google Scholar
  19. 19.
    Vechev, M., Yahav, E., Yorsh, G.: Experience with model checking linearizability. In: Păsăreanu, C.S. (ed.) Model Checking Software. LNCS, vol. 5578, pp. 261–278. Springer, Heidelberg (2009)CrossRefGoogle Scholar

Copyright information

© Springer International Publishing Switzerland 2013

Authors and Affiliations

  • Jonatan Lindén
    • 1
  • Bengt Jonsson
    • 1
  1. 1.Department of Information TechnologyUppsala UniversityUppsalaSweden

Personalised recommendations