[chord] Chord Protocol Semantics

Frank Dabek fdabek at MIT.EDU
Thu Dec 4 16:24:38 EST 2003


On Thu, 2003-12-04 at 14:50, Edward Tsai wrote:
> Hello everyone,
> 
> I am implementing the Chord protocol as precisely as I can for a project -
> 
> I notice that in your Chord Lookup Service paper, that in figure 6, the join
> protocol sets n's predecessor to itself as well as fingers [1 to m-1] to
> itself.
> 
> In the Chord Lookup Protocol paper, in figure 6, the join pseudo code sets
> n's predecessor to NIL and successor to n.
> 
> Which protocol semantic should I be following? Is finger[1] the equivalent
> to successor in general?
> 

In practice, we use a third strategy. Each node keeps a "bag" of other
nodes it knows about called a location table. When the node requests a
finger or successor, the location table responds with the node it stores
that currently matches that description. There are no explicit lists of
fingers or sucessors.

In the location table case, joining is reduced to throwing a couple of
successors in the bag and starting the stabilization routines.

> Also, am I correct to assume that in the case of a chord "leave" that a node
> will have to send commands to update all theirs?
> 

We do not implement a "leave" protocol. Nodes simply exit the system.
The stabilization routines of other nodes will repair fingers and
successors as necessary.

--Frank
> Thanks.
> 
> -Edward
> 
> _______________________________________________
> chord mailing list
> chord at amsterdam.lcs.mit.edu
> https://amsterdam.lcs.mit.edu/mailman/listinfo/chord



More information about the chord mailing list