[chord] Chord interest

Frank Dabek fdabek at MIT.EDU
Sat Jun 14 20:54:23 EDT 2003


On Sat, 2003-06-14 at 12:30, Jim Hodapp wrote:
> Frank,
> 
>     Thank you for the reply to my email.  You're first reply has been
> very helpful.  I have a few other questions for you if you would be so
> kind to answer:
> 
> 1) From the paper defining the Chord framework and in studying the
> chord.C and chord.h files, are vnodes representing a node as defined in
> the chord definition or is it something else? 

A "vnode" is a virtual node and is exactly what the paper describes as a
"node." We run multiple virtual nodes in a single process on each host
to achieve load balance (running one node per host produces a log N load
imbalance: like the number of randomly placed balls that end up in each
of a number of randomly sized urns).

>  
> 
> 2) In the paper defining the Chord framework, there are several examples
> of a hypothetical chord network which has in Figure 3 nodes 0,1 and 3
> defined.  I do not understand however what the smaller black dots
> represent.  It seems as if the framework preallocates a chord ring (or
> network) and then fills these unused nodes in as new physical nodes join
> the network?  Is this correct?  Otherwise, if this is not correct, what
> do those nodes represent and how can the interval include these nodes if
> they don't yet exist?
> 

The smaller dots simply denote the location of a given ID on the ring
(like ticks on a graph axis). Larger dots represents nodes which are
present with a given ID. 

> 3) In the Chord framework definition, are those simple numbers (e.g.
> nodes 1, 2, 3...) used for simplicity in demonstrating an "ID" for each
> node?  In implementation, do you replace this simple number in referring
> to a node with an MD5-1 hash of the node's IP address?
> 

In the implementation a node's ID is equal to the SHA-1 hash of [IP,
vnode #]

> Thank you so much for helping me by answering my questions.  I am very
> excited to get a working implementation going and see the theoretical
> performance estimates hopefully line up with my implementation's
> performance.
> 
> Thanks,
> 
> Jim Hodapp
> 
> On Mon, 2003-06-09 at 21:02, Frank Dabek wrote:
> > Jim,
> > 
> > 	The SFS async-IO libraries are required to build Chord. It is not
> > necessary to install the SFS filesystem to run Chord. However, some of
> > the filesystems we have implemented use the NFS loopback service
> > provided by the SFS file system; these applications require that SFS be
> > installed fully.
> > 
> > 	Chord is under active development at MIT; I suggest you take a look at
> > the repository in guiding  your implementation of Chord. It should
> > demonstrate what to do (and not do) when implementing Chord.
> > 
> > --Frank
> > 
> > On Sat, 2003-06-07 at 13:13, Jim Hodapp wrote:
> > > To Whom It May Concern:
> > > 
> > >     I am trying to implement the Chord P2P framework as described about
> > > in "Chord: A Scalable Peer-to-peer Lookup Service for Internet
> > > Applications" and noticed on the SFS page that there is a full
> > > implementation in CVS.  Is it possible to take this code and get a
> > > working Chord command line based network going without having to use
> > > SFS?  Do you have any pointers in implementing Chord?  I will be using
> > > C++ to implement it.  How active is the development on Chord still at
> > > MIT?  Do you have any plans to somehow integrate its functionality (of a
> > > P2P network specifically) right into a project like Gnome?
> > > 
> > > Thanks,
> > > 
> > > Jim Hodapp



More information about the chord mailing list