Computer Science Department
School of Computer Science, Carnegie Mellon University


Self-Adjusting Distributed Trees

Michael K. Reiter*, Asad Samar**, Chenxi Wang**

September 2005


Keywords: Tree balancing, distributed algorithms, amortized cost

An object retrieval protocol that enforces mutually exclusive access to a shared object is an important primitive employed by many distributed applications including distributed directories, distributed resource sharing systems and ordered multicast protocols, to name a few. Most existing implementations of this object retrieval primitive use a tree as the underlying communication structure due to the simple acyclic nature of trees. The worst case performance of this primitive and of the large body of applications built upon it, is O(n) for n nodes sharing the object. In this paper, we present a novel distributed self-adjusting tree for object retrieval protocols that guarantees the message complexity per retrieval, averaged over the worst case sequence of retrievals, to be O(log n). In addition, our algorithm adjusts only portions of the tree in which retrievals occur; this is advantageous when the tree structure reflects network proximity. We implement best known techniques from the centralized setting and compare their performance with our algorithm. Results are presented from experiments carried out on PlanetLab to evaluate the performance of different schemes under different workloads. We also present extensions to our basic protocol allowing a wide range of distributed applications including atomic broadcast and content discovery to achieve better performance using our techniques. To our knowledge, this is the first attempt to reduce access costs in a distributed tree where the tree dynamically adjusts itself during use to achieve O(log n) performance for worst case workloads.

23 pages

**Computer Science Department and Department of Electrical and Computer Engineering, Carnegie Mellon
**Department of Electrical and Computer Engineering, Carnegie Mellon

Return to: SCS Technical Report Collection
School of Computer Science

This page maintained by