Thursday, August 13, 2009

REVIEW: “Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications” by Ion Stoica et. al.

The paper presents a distributed protocol to address content lookup problem on peer-to-peer applications. This involves finding any given data within a P2P system at the same time, adapting to scalability and independence from centralized servers or hierarchies.

Chord maps key-value pairs into a node. A data item can be traced via O(log N) messages to other nodes (ordered in an identifier circle modulo 2m) in a N-node system using unique identifier keys. One of the features of Chord is load-balancing between nodes (nodes receiving same number of keys) by implementing a variant of consistent hashing in assigning keys to nodes. Each node in the system also maintains a finger table which lists information about the keys assigned to it.

The paper also presents how Chord can cope well in a dynamic network where nodes join and depart any time by producing only short overheads. Stabilization processes are also implemented to correct inaccurate information on each node. Simulation results prove the mentioned capabilities of Chord and show how it provides robust correctness despite outdated information in some nodes.

The features of Chord make it a scalable, cost-effective, and fault-tolerant solution for P2P systems. This approach can be effectively applied to web caching where data are mapped to caches by consistent hashing functions and eventually finding the cache that contains the desired web data, using its URL as a key for the DHT.

However, a problem may exist in a file-sharing application. Note that Chord enables only exact key lookup which requires a file-sharing application to create a mapping from keywords to DHT keys. Furthermore, nodes need to have a copy of the file mapped to them rather than just submitting a list of files that they want to share directly from their hard drive.

Finally, an issue that Chord must check involves varying sizes of data items. This might disrupt the stability of the load-balanced nodes. In web caching for an instance, data can be a web text data or large videos, etc.

Reference:
[1] I. Stoica, R. Morris, D. Karger, M.F. Kaashoek, and H. Balakrishnan, "Chord: A scalable peer-to-peer lookup service for internet applications," Proc. ACM SIGCOMM 2001, pp.149–160, Aug. 2001.

No comments:

Post a Comment