Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications
90-minute presentation for the Advanced topics in Data Management course at KAUST, on "A Scalable Peer-to-peer Lookup Service for Internet Applications" by Stoica et al, published in SIGCOMM '01.
Availability Asynchronous Correctness Map a key to a node in the network containing the corresponding value Keys are distributed across decentralized nodes Nodes may arrive or leave at any time
= hash(key) = 110001 node_identifier = hash(node IP) = 100101 m bits, m = 6 Node for k successor(key_identifer) Identifier ring identifier % 2m = 0 to 63
Consistent Hashing N nodes, K keys, with high probability: - Each node has at most (1 + e)K/N keys - On arrival or departure of a node, O(K/N) keys exchange hands
k value = v N N N N N N Internet Lookup Scalability Asynchronous Assignment Load Balancing Asynchronous Client key = k value = ? Joins/Failure Availability Correctness Scalability
with Node Joins 3 cases - Finger table entries are current, O(log(N)) lookup cost successors are correct Correct lookup result - Finger table entries are stale, successors are correct
Finger table entries are current, O(log(N)) lookup cost successors are correct Correct lookup result - Finger table entries are stale, O(N) lookup cost successors are correct Correctness of Lookups with Node Joins
Finger table entries are current, O(log(N)) lookup cost successors are correct Correct lookup result - Finger table entries are stale, O(N) lookup cost successors are correct Correct lookup result Correctness of Lookups with Node Joins
with Node Joins 3 cases - Finger table entries are current, O(log(N)) lookup cost successors are correct Correct lookup result - Finger table entries are stale, O(N) lookup cost successors are correct Correct lookup result - Successors are incorrect
with Node Failure Mean path length with successor lists = 0.5 x log(N) - 0.5 x log(r) + 1 Access the predecessor of the key k from the node n' retrieved from the successor list
Availability Asynchronous Correctness Map a key to a node in the network containing the corresponding value Keys are distributed across decentralized nodes Nodes may arrive or leave at any time Chord