[chord] Chord In PeerSim Problems

Emil Sit sit at MIT.EDU
Wed Feb 11 09:57:32 EST 2009


On Tue, 10 February 2009 at 11:25 (-0500), Karrels Daniel R CPT AFIT/ENG wrote:
> been able to find any definitive information about how to initialize the
> finger tables. Are they supposed to be nil? If so, how does one handle nil

Finger tables should be maintained using a periodic stabilization
process that does lookups for the first successor of key n+2^i (where
n is the node's id).  Initially they are mostly nil.  However,
a condition of successful join into the ring is knowledge of your
successor; thus, if you are not the only node in the system, you
will at least be able to forward the query to your immediate
successor.

As an optimization, you can bootstrap your finger table from that
of your successor, before stabilizing.  

The MIT implementation maintains a cache of all known nodes
and the i-th finger dynamically based on what is currently known.
Current active fingers are pinned in the cache so they will
always be available. See finger_table::finger(int) in
chord/finger_table.C and utils/locationtable.C.

-- 
Emil Sit / MIT CSAIL PDOS / http://pdos.csail.mit.edu/chord/  



More information about the chord mailing list