Concurrent Treaps and Impact of Locking Objects - Alapati, Praveen; Mutyam, Madhu; Saranam, Swamy (New generation computing, 2020)
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.