Abhinand Jha

Consistent Hashing: Chord

Reference paper:

Summary

One of the fundamental problems in peer-to-peer (P2P) applications is to efficiently locate a particular node in the network. Stoica et al. present the design for a scalable and efficient P2P distributed lookup protocol named Chord. The authors first give an overview of consistent hashing which is widely used in such scenarios. They highlight the scalability issues of consistent hashing that are caused by each node having to maintain the state of all of the other nodes in the network. In order to overcome this limitation, they propose the use of distributed hash-based indexing and routing algorithms that allow Chord to handle a large number of nodes and data lookups efficiently. In the proposed protocol, each node only needs to maintain a reference to its immediate successor and only a subset of all other nodes in the network, leading to better scalability. Chord is also able to handle node join and leave operations without requiring significant changes to the network’s structure, which contributes to its robustness in dynamic networks. The authors provide a thorough analysis of the performance of Chord and show that it performs well in terms of time complexity that scales logarithmically with the number of Chord nodes. Lastly, the authors also prove the fault-tolerance capabilities of Chord through experiments.

Positive Points

Drawbacks

Research Questions

  1. Chord does not use network topology information to setup the connections between peers. Can we incorporate location information for each node to provide better latency? – eg. Tapestry protocol, Pastry protocol etc.
  2. Lookups in chord are asymmetric because of the way connections between nodes is set up. For example, lookup from node n to node p could take a different number of hops than from node p to n. Could making symmetric connections (nodes p and n both point to each other) improve predictability?
  3. The concept of unidirectional routing in Chord can be misused during a routing attack (where a malicious node purposely detours messages to increase path length). Can we modify the algorithm to include bi-directional edges and bi-directional finger table entries to prevent this?

<< Previous Post

|

Next Post >>

#Computer Science #System Design #Distributed Systems #Backend #Consistent Hashing #Software Engineering