Shreeram Sahasrabudhe
Date: 02/13/03
CSE 498 - Adv Networks

Review of
Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications
Ion Stoica, Robert Morris, David Karger, M. Frans Kaashoek, Hari Balakrishnan

Chord is presented as a distributed protocol that is designed for peer-to-peer systems for efficiently locating a resource (key) onto a node in the system. The main features of this protocol are robustness in a scenario of constant change, reliability in locating a key in a dynamic system and efficiency in routing by requiring only O (Log N) information per node. The system is scalable, as each node has to maintain only local information O (log N). The protocol is also application independent, so its key locating feature can be used by any existing applications by providing a data mapping to keys. Its current implementation is also distributed as a library.

The authors prove the above claims with lab simulations. However, since pure theoretical simulations results could have been questioned about a reality check, the authors were thoughtful to present us, analysis of real data collected from a running implementation of chord on Internet hosts.

Chord borrows its key distribution mechanism from Consistent Hashing [1, 2] and improves its scalability by reducing the necessary per node information. This enables Chord to provide scalability, a feature much desirable but lacking in many existing systems as pointed out in the relevant works section. The concept of key-data mapping is already prevalent in some systems like Freenet. Such systems would thus benefit more easily from Chord.

There are, however, some strict requirements that follow as a result of the theory behind the system. Like m, the bit length of identifier, has to be large to keep a negligible probability of two nodes or keys hashing to same identifier. A specification about the upper limits of m and its implication on the system performance can also be a topic for later explanations. In the update mechanism for concurrent operations, the authors don^Òt detail us about why they choose not to put adjustment mechanism for finger table. They do brief about this, but it the readers can do with a little more explanation or pointer to any work that proves it.

Overall, the paper presents a simple approach to addressing the scalability and content location issue for the dynamic peer-to-peer systems. It does not enforce and imply any other requirements from the application using it. Chord can thus contribute greatly to future peer-to-peer systems. I would certainly recommend reading this paper.

Reference:
[1] KARGER, D., LEHMAN, E., LEIGHTON, F., LEVINE, M., LEWIN, D., AND PANIGRAHY, R. Consistent hashing and random trees: Distributed caching protocols for relieving hot spots on the World Wide Web. In Proceedings of the 29th Annual ACM Symposium on Theory of Computing (El Paso, TX, May 1997), pp. 654-663.
[2] LEWIN, D. Consistent hashing and random trees: Algorithms for caching in distributed networks. Master's thesis, Department of EECS, MIT, 1998.