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 supporting generic augmentation functions. 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 most workloads). Our experiments show that our augmented balanced tree completes updates 2.2 to 30 times faster than the unbalanced augmented tree, and outperforms unaugmented trees by up to several orders of magnitude on 120 threads.
翻译:增强技术极大地扩展了搜索树的功能,使其除了支持插入、删除和查找操作外,还能高效处理聚合查询、顺序统计查询和范围查询。本文提出了首个支持通用增强函数的无锁平衡增强搜索树。我们的算法思想建立在Fatourou和Ruppert近期提出的非平衡增强搜索树[DISC, 2024]基础上。我们实现了这两种数据结构,在此过程中解决了若干内存回收难题,并提供了它们的实验性能分析。我们还提出了平衡树的优化版本,通过委托机制实现更好的可扩展性和性能(在多数工作负载下提升超过2倍)。实验表明,我们的增强平衡树完成更新操作的速度比非平衡增强树快2.2至30倍,在120线程环境下性能超越未增强树达数个数量级。