Koorde: A simple degree optimal DHT M. Frans Kaashoek and David Karger MIT Laboratory of Computer Science
Introduction • Koorde is a DHT based on Chord and de Bruijn graph. • O(log n) hops per lookup request with only 2 neighbors per node. • Can be generalized to O(log n/ log n) hops per lookup request with O(log n) neighbors per node
Bounds Lemma An n-node network with maximum node degree d requires at least logd(n-1) routing hops in the worst case. Why?
De Bruijn graph A node m has two outgoing edges to nodes 2 m mod 2 b and 2 m+1 mod 2 b. Call them the 0 -link and the 1 -link
Koorde embeds a de Bruijn graph on the Chord identifier ring shown below.
Koorde A message from node i to node j can be routed as follows: 1. Shift the bits of j so that its leading r bits tally with the last r bits of i 2. Forward the query along the paths corresponding to the last (log n − r) bits of j: Each 0 bit = a hop along the 0 -link Each 1 bit = a hop along the 1 -link. Route via 0 -link, 0 -link Routing takes at most log n hops (optimal)
Generalized version of Koorde For k > 2, the earlier construction can easily be generalized. From each node i, there will be k routing fingers pointing to the nodes k⋅i, k⋅i + 1, k⋅i + 2, . . . , k⋅i + k − 1 (additions mod n) The path length will be at most logkn i. e. log n/log k between any pair of nodes When k=log n, the path length is log n/log n