Augmentation makes search trees tremendously more versatile, allowing them to support efficient aggregation queries, order-statistic queries, and range queries in addition to insertion, deletion, and lookup. In this paper, we present the first lock-free augmented balanced search tree. Our algorithmic ideas build upon a recent augmented unbalanced search tree presented by Fatourou and Ruppert [DISC, 2024]. We implement both data structures, solving some memory reclamation challenges in the process, and provide an experimental performance analysis of them. We also present optimized versions of our balanced tree that use delegation to achieve better scalability and performance (by more than 2x in some workloads). Our experiments show that our augmented balanced tree is 2.2 to 30 times faster than the unbalanced augmented tree, and up to several orders of magnitude faster than unaugmented trees on 120 threads.
翻译:增强使得搜索树的功能极大地扩展,除了插入、删除和查找外,还能支持高效的聚合查询、顺序统计查询和范围查询。本文提出了首个无锁的增强平衡搜索树。我们的算法思想建立在Fatourou和Ruppert近期提出的一种增强非平衡搜索树[DISC, 2024]的基础上。我们实现了这两种数据结构,在此过程中解决了若干内存回收的挑战,并对它们进行了实验性能分析。我们还提出了平衡树的优化版本,通过使用委托机制来获得更好的可扩展性和性能(在某些工作负载下提升超过2倍)。实验表明,在120个线程上,我们的增强平衡树比增强非平衡树快2.2到30倍,比未增强的树快数个数量级。