Consistent hashing tells you which node owns a key. But on a ring of a million nodes, how does the node you happen to be standing on actually find that owner — without asking all million of them, one by one?
Click through the three lookups. Some resolve in 0 hops — node A already knows the answer from its own successor pointer. Others take 1 or 2 jumps. Nobody ever walks the ring node by node; each hop leaps as far around the ring as it can without overshooting.
Every node keeps a finger table: pointers, where finger points to the successor of a position exponentially further around the ring than finger .
A lookup for key starting at node jumps to the furthest finger that still lies strictly between and — never past it — repeating until falls inside the current node's own successor arc, at which point that successor is the owner.
- — bits in the address space; here, so ring positions and fingers per node.
- — node 's -th finger: the successor of .
- — the same clockwise-successor rule as consistent hashing: the first node at or after position .
- Fingers double in reach
- Finger reaches step ahead
- Finger reaches steps ahead
- Finger reaches steps ahead
And so on — each finger roughly doubles how far around the ring it can see.
- At most m hops
Because each hop at least halves the remaining clockwise distance to the target, no lookup on an -bit ring ever takes more than hops — instead of walking every node.
Start from any of the 4 nodes and drag the target key all the way around the ring. Watch the path column: it never lists more than a couple of intermediate nodes, no matter how far the key sits from the start — each hop is a big leap, not a small step.
Ring size (); nodes A@2, B@6, C@9, D@13 — the same ring the consistent-hashing chapter used:
- Node A's finger table
So A's fingers are .
- Lookup key@5 from A — 0 hops
Key position falls in — exactly the arc A's own finger already covers. A answers immediately: owner is B (pos 6), no other node contacted.
- Lookup key@12 from A — 2 hops
- is past B's arc, so A jumps to its furthest finger that doesn't overshoot: (node B)
- B's fingers are ; is still past B's own successor (), so B jumps to its furthest qualifying finger, (node C)
- C's fingers are ; now falls in , C's own successor arc — so C answers directly: owner is D (pos 13)
Path: A → B → C, 2 hops.
Slide the target key so that a lookup starting at node A takes exactly 2 hops to resolve.
Chord layers a routing structure on top of the exact same ring consistent hashing already gave every node: instead of blindly asking neighbor after neighbor, each hop uses a finger table to leap as far as possible without passing the target, resolving any lookup in at most hops. The next chapter looks at Kademlia, which routes with the same "jump toward the target" spirit but replaces the ring and its clockwise successor with a different distance metric entirely: XOR.