Snap-stabilizing optimal binary search tree
We present the first snap-stabilizing distributed binary search tree (BST) algorithm. A snap-stabilizing algorithm guarantees that the system always behaves according to its specification provided some processor initiated the protocol. The maximum number of items that can be stored at any time at any processor is constant (independent of the size (n) of the network). Under this space constraint, we show a lower bound of Ω(n) on the time complexity for the BST problem. We then prove that starting from an arbitrary configuration where the nodes have distinct internal values drawn from an arbitrary set, our algorithm arranges them in a BST order in O(n) rounds. Therefore, our solution is asymptotically optimal in time and takes O(n) rounds. A processor i requires O(logsi) bits of space where si is the size of the subtree rooted at i. So, the root uses O(logn) bits. The proposed algorithm uses a heap algorithm as a preprocessing step. This is also the first snap-stabilizing distributed solution to the heap problem. The heap construction spends O(h) (where h is the height of the tree) rounds. Its space requirement is constant (independent of n). We then exploit the heap in the next phase of the protocol. The root collects values in decreasing order and delivers them to each node in the tree in O(n) rounds following a pipelined delivery order of sorted values in decreasing order.
Datta, A. K.,
Snap-stabilizing optimal binary search tree.
Symposium on Self-Stabilizing Systems, 2005