The Chord system is an efficient distributed lookup service based on the Chord protocol.
The Chord protocol supports just one operation: given a key, it will determine the node responsible for storing the key’s value. The Chord protocol uses a variant of consistent hashing to assign keys to Chord server nodes.
Conceptually the Chord system functions analogously to the DNS system. Both systems map names to values. Chord’s algorithms have no special servers, however, in contrast to DNS which relies on a set of special root servers. In addition, Chord doesn’t put restrictions on the format and meaning of names; Chord names are just the keys of key/value pairs. Chord doesn’t attempt to solve the administrative problems of DNS.
The Chord protocol is a distributed data location protocol very close to the one used in OceanStore.
The Chord protocol has essentially one operation: given a key, it will determine the node responsible for the key. Chord does not itself store keys and values, but provides primitives that allow higher-layer software to build a wide variety of storage system.
Each machine acting as a Chord server has a unique 160-bit Chord node identifier, produced by a SHA hash of the node’s IP address.
Chord views the IDs as occupying a circular identifier space.
Chord defines the node responsible for a key to be that key’s "
successor".
The successor of a key or node identifier j is the node with the smallest ID that is greater than or equal to j.
Chord’s primary task is to find these successors.