Elimination (a, b)-trees with fast, durable updates

A Srivastava, T Brown - Proceedings of the 27th ACM SIGPLAN …, 2022 - dl.acm.org
A Srivastava, T Brown
Proceedings of the 27th ACM SIGPLAN Symposium on Principles and Practice of …, 2022dl.acm.org
Many concurrent dictionary implementations are designed and optimized for read-mostly
workloads with uniformly distributed keys, and often perform poorly on update-heavy
workloads. In this work, we first present a concurrent (a, b)-tree, the OCC-ABtree, which
outperforms its fastest competitor by up to 2x on uniform update-heavy workloads, and is
competitive on other workloads. We then turn our attention to skewed update-heavy
workloads (which feature many inserts/deletes on the same key) and introduce the Elim …
Many concurrent dictionary implementations are designed and optimized for read-mostly workloads with uniformly distributed keys, and often perform poorly on update-heavy workloads. In this work, we first present a concurrent (a,b)-tree, the OCC-ABtree, which outperforms its fastest competitor by up to 2x on uniform update-heavy workloads, and is competitive on other workloads. We then turn our attention to skewed update-heavy workloads (which feature many inserts/deletes on the same key) and introduce the Elim-ABtree, which features a new optimization called publishing elimination. In publishing elimination, concurrent inserts and deletes to a key are reordered to eliminate them. This reduces the number of writes in the data structure. The Elim-ABtree achieves up to 2.5x the performance of its fastest competitor (including the OCC-ABtree). The OCC-ABtree and Elim-ABtree are linearizable. We also introduce durable linearizable versions1 for systems with Intel Optane DCPMM non-volatile main memory that are nearly as fast.
ACM Digital Library