Paper presents Chord which is a distributed lookup protocol that addresses the problem of locating the node that stores a particular data item. It provides this functionality by just one operation, mapping a key onto a node. Data location can be implemented on top of Chord by associating a key with each data item and sorting the key/data item pair at the node to which the key maps. It adapts naturally as more nodes join or leave the system. It uses a variant of consistent hashing to assign keys to Chord nodes. Consistent hashing automatically balances the load since each node receives roughly the same number of keys and it involves very little movement of keys when a node joins or leaves the system.
One major difference from previous approach is the fact that it does not assume that nodes are aware of other nodes in the system. This property enables it to scale. It needs routing information only for few other nodes. Due to distributive nature of routing a node resolves the hash function by communicating with a few other nodes. In steady state of an N node system, each node maintains information only about other O(logN) nodes and resolves all all lookup via O(logN) messages to other nodes. It also maintains its routing information as nodes join and leave the system with high probability each such events result in no more than O(log^2N) messages.
Only one piece of information per node needs to be correct for chord to guarantee correct (though slow) routing of queries. Chord can be effectively used for cooperative web caching, with data mapped to caches by consistent hashing functions. It can be used to find the cache that contains the desired web data, with URI as the key for the DHT.
One shortcoming of the Chord is the fact that though it ensures that no node will have to carry more than k/n items (where k is the number of keys and n is the number of nodes), it does not consider the fact that some data items could be substantially larger than others. In web caching scenario this situation might arise due to embedded video data or any large object.
Though Chord has disadvantage n terms of run time while looking for key to node mapping due to distributive nature compared to the centralized solution which is fast. But this disadvantage is outweighed by the advantage provided by the distributive nature resulting in higher reliability and fault tolerance.