A non-blocking internal binary search tree

  • Authors:
  • Shane V. Howley;Jeremy Jones

  • Affiliations:
  • Trinity College Dublin, Dublin, Ireland;Trinity College Dublin, Dublin, Ireland

  • Venue:
  • Proceedings of the twenty-fourth annual ACM symposium on Parallelism in algorithms and architectures
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

Recent work on concurrent search trees has yielded solutions which either rely on locking parts of the data structure or exhibit suboptimal memory use. Trees are typically non-trivial to parallelise due to having multiple mutable fields per node but their average search time relative to simpler structures like linked-lists makes them desirable. We present a parallel binary search tree algorithm built using single-word reads, writes, and compare-and-swap. In this algorithm, operations will only contend if concurrent updates affect the same node(s). Updates are non-blocking as threads can complete each other's operations if necessary and each operation is linearisable. Experimental evidence shows it to be fast when compared with alternative solutions and scalable to large numbers of concurrently executing threads. It outperforms concurrent skip lists in the majority of scenarios tested; showing 65% more throughput when the performance difference of every experiment is averaged, and its memory footprint is significantly smaller than that of the other structures tested.