Skip to main content
Log in

Concurrent Treaps and Impact of Locking Objects

  • Published:
New Generation Computing Aims and scope Submit manuscript

Abstract

We propose algorithms to perform operations concurrently on treaps in a shared memory multi-core environment. Concurrent treaps hold the advantage of using nodes’ priority for maintaining the height of the treaps. To achieve synchronization, concurrent treaps make use of fine-grained locking mechanism along with logical ordering and physical ordering of nodes’ keys. We initially study the throughput and performance-per-Watt (PPW) of our concurrent treap implementation and observe that it scales well, and performs better than the state-of-the-art implementations. We further continue studies to understand the impact of different locking objects on both throughput and PPW. Our experiments show that a concurrent treap implementation that uses AtomicInteger as the locking object provides better throughput and PPW, at the same time uses a low memory footprint. As part of the application study, we consider concurrent interval trees by choosing different underlying concurrent search tree implementations as the base. We observe that the concurrent interval tree implementation that uses concurrent treap as an underlying data structure provides better throughput.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13

Similar content being viewed by others

References

  1. Afek, Y., Kaplan, H., Korenfeld, B., Morrison, A., Tarjan, R.E.: Cbtree: a practical concurrent self-adjusting search tree. DISC 27(6), 393–417 (2014)

    MATH  Google Scholar 

  2. Alapati, P., Saranam, S., Mutyam, M.: Concurrent treaps. In: Alapati, P. (ed.) Algorithms and Architectures for Parallel Processing, pp. 776–790. Springer, Cham (2017)

    Chapter  Google Scholar 

  3. Aragon, C.R., Seidel, R.G.: Randomized search trees. In: FOCS, pp. 450–454 (1989)

  4. Bronson, N.G., Casper, J., Chafi, H., Olukotun, K.: A practical concurrent binary search tree. In: PPoPP, pp. 257–268 (2010)

  5. Christopher, H., Costin, C., William, S., Antonio, W., Alexandr, Z.: The effect of numa tunings on cpu performance. In: CHEP, pp. 1–7 (2015)

  6. Crain, T., Gramoli, V., Raynal, M.: A contention-friendly binary search tree. In: ICPP, pp. 229–240 (2013)

  7. David, H., Gorbatov, E., Hanebutte, U.R., Khanna, R., Le, C.: Rapl: Memory power estimation and capping. In: Proceedings of the 16th ACM/IEEE International Symposium on Low Power Electronics and Design, pp. 189–194 (2010)

  8. Drachsler, D., Vechev, M., Yahav, E.: Practical concurrent binary search trees via logical ordering. In: PPoPP, pp. 343–356 (2014)

  9. Ellen, F., Fatourou, P., Ruppert, E., van Breugel, F.: Non-blocking binary search trees. In: PODC, pp. 131–140 (2010)

  10. Fraser: Practical Lock Freedom. PhD thesis, University of Cambridge (2003)

  11. Gramoli, V.: Synchrobench (2015). https://github.com/gramoli/synchrobench

  12. Herlihy, M.P., Shavit, N.: The Art of Multiprocessor Programming. Morgan Kaufmann Publishers, Burlington (2008)

    Google Scholar 

  13. Herlihy, M.P., Wing, J.M.: Linearizability: a correctness condition for concurrent objects. TOPLAS 12(3), 463–492 (1990)

    Article  Google Scholar 

  14. Intel-xeon-e5-4610 v2. https://ark.intel.com

  15. Lea, D.: Concurrent skip list. java.util.concurrent

  16. Liu, K., Pinto, G., Liu, Y.D.: Data-Oriented Characterization of Application-Level Energy Optimization, pp. 316–331. Springer, Berlin (2015)

    Google Scholar 

  17. Martínez, C., Roura, S.: Randomized binary search trees. JACM 45(2), 288–323 (1998)

    Article  MathSciNet  Google Scholar 

  18. Natarajan, A., Mittal, N.: Fast concurrent lock-free binary search trees. In: PPoPP, pp. 317–328 (2014)

  19. Perf: A profiling tool (2015). https://perf.wiki.kernel.org/index.php

  20. Pugh, W.: Skip lists: a probabilistic alternative to balanced trees. CACM 33(6), 668–676 (1990)

    Article  Google Scholar 

  21. Reentrant locks. http://docs.oracle.com/java7/api/

  22. Reitbauer, A.: Java Enterprise Performance. Entwickler Press, Frankfurt (2011)

    Google Scholar 

  23. Seidel, R., Aragon, C.R.: Randomized search trees. Algorithmica 16(4), 464–497 (1996)

    Article  MathSciNet  Google Scholar 

  24. Shavit, N.: Data structures in the multicore age. CACM 54(3), 76–84 (2011)

    Article  Google Scholar 

  25. Weiss, M.A.: Data Structures and Algorithm Analysis in C++, 3rd edn. Pearson Press, London (2009)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Praveen Alapati.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Alapati, P., Mutyam, M. & Saranam, S. Concurrent Treaps and Impact of Locking Objects. New Gener. Comput. 38, 187–212 (2020). https://doi.org/10.1007/s00354-019-00073-z

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00354-019-00073-z

Keywords

Navigation