Parallel Joinable B-Trees in the Fork-Join I/O Model
Michael Goodrich, Yan Gu, Ryuto Kitagawa, Yihan Sun
TL;DR
This work addresses the challenge of high I/O costs in parallel join-based balanced trees by introducing the Fork-Join I/O Model to quantify I/O work and I/O span in asynchronous fork-join environments. It develops a B-tree based framework with new primitives—B-Way-Join, Multi-Split, and Multi-Join—to implement I/O-efficient parallel set operations such as union, and extends to intersection and difference. The key theoretical contributions are provable I/O bounds for unions on two B-trees of sizes $m\le n$, achieving $O\left(m \log_B\left(\frac{n}{m}\right)\right)$ I/O work and $O\left(\log_B m \cdot \log_2 \log_B n + \log_B n\right)$ I/O span, by carefully designing multi-way joins/splits and maintaining spine pointers. These results provide a practical, provable framework for I/O-efficient parallel algorithms on trees, with implications for databases, graph processing, and external-memory parallel computation.
Abstract
Balanced search trees are widely used in computer science to efficiently maintain dynamic ordered data. To support efficient set operations (e.g., union, intersection, difference) using trees, the join-based framework is widely studied. This framework has received particular attention in the parallel setting, and has been shown to be effective in enabling simple and theoretically efficient set operations on trees. Despite the widespread adoption of parallel join-based trees, a major drawback of previous work on such data structures is the inefficiency of their input/output (I/O) access patterns. Some recent work (e.g., C-trees and PaC-trees) focused on more I/O-friendly implementations of these algorithms. Surprisingly, however, there have been no results on bounding the I/O-costs for these algorithms. It remains open whether these algorithms can provide tight, provable guarantees in I/O-costs on trees. This paper studies efficient parallel algorithms for set operations based on search tree algorithms using a join-based framework, with a special focus on achieving I/O efficiency in these algorithms. To better capture the I/O-efficiency in these algorithms in parallel, we introduce a new computational model, Fork-Join I/O Model, to measure the I/O costs in fork-join parallelism. This model measures the total block transfers (I/O work) and their critical path (I/O span). Under this model, we propose our new solution based on B-trees. Our parallel algorithm computes the union, intersection, and difference of two B-trees with $O(m \log_B(n/m))$ I/O work and $O(\log_B m \cdot \log_2 \log_B n + \log_B n)$ I/O span, where $n$ and $m \leq n$ are the sizes of the two trees, and $B$ is the block size.
