Load balancing is a critical issue for the efficient operation of peer-to-peer (P2P) networks. We give two new load-balancing
protocols whose provable performance guarantees are within a constant factor of optimal. Our protocols refine the consistent
hashing data structure that underlies the Chord (and Koorde) P2P network. Both preserve Chord's logarithmic query time and
near-optimal data migration cost.
Consistent hashing is an instance of the distributed hash table (DHT) paradigm for assigning items to nodes in a P2P system:
items and nodes are mapped to a common address space, and nodes have to store all items residing closeby in the address space.
Our first protocol balances the distribution of the key address space to nodes, which yields a load-balanced system when the
DHT maps items "randomly" into the address space. To our knowledge, this yields the first P2P scheme simultaneously achieving
O(log n) degree, O(log n) look-up cost, and constant-factor load balance (previous schemes settled for any two of the three).
Our second protocol aims to balance directly the distribution of items among the nodes. This is useful when the distribution
of items in the address space cannot be randomized. We give a simple protocol that balances load by moving nodes to arbitrary
locations "where they are needed." As an application, we use the last protocol to give an optimal implementation of a distributed
data structure for range searches on ordered data.