[chord] Re: Chord VS p2psim

Frank Dabek fdabek at MIT.EDU
Wed Jun 16 13:05:04 EDT 2004


Samuel,

	I would be very surprised if these two experiments produced the same 
results. p2psim was built to help us understand the optimal performance 
of algorithms. It is very careful to conserve bandwidth in its 
implementation of Chord and its accounting of bytes is very optimistic. 
lsd, on the other hand, was not designed with bandwidth conservation in 
mind. For instance: it is far more aggressive than is necessary in 
probing for failed nodes; it also includes much more information in each 
packet (virtual coordinates, timestamps, virtual node identifiers, RPC 
headers) than p2psim does. It's bandwidth usage is about 3K/sec/node 
(much higher than the lower bound that p2psim represents).

Hope this helps.

--Frank

Samuel ELBAZE wrote:
> Hi Frank,
> 
> As you know I am conducting a small experience upon chord by comparing the
> results to p2psim. 
> I just sent a mail to Jinyang who is working on p2psim to share a problem I
> am currently facing. If you are interested in and you have some spare time,
> would you please give me your opinion too?
> 
> Thanks a lot for all your help,
> 
> Best regards,
> 
> Sam
> 
> 
> **************************** Jinyang mail *********************************
> 
> Hi Jinyang,
> 
> First I want to thank you for the parameter files.
> 
> Then I would require your opinion upon a situation I don't explain.
> Actually, I have a concern about p2psim, but let me explain:
> I was wondering about the accuracy level of p2psim, so I decided to make a
> quick experience comparing chord performance VS p2psim results. 
> 
> Here are the steps: (note: this experience has been conducted on one single
> computer)
> 
> 1) a) Run a 128-nodes network in chord distribution
>     b) Store and fetch some blocks
>     c) Retrieve the average bandwidth (byte/node/s) and latency (ms)
> 
> 2) a) Launch a 128-peers network simulation with p2psim
>     b) Retrieve the average bandwidth (byte/node/s) and latency (ms)
> 
> 3) Compare the results
> 
> The results of this experiment are rather weird and I don't know why. Is
> there something I didn't understand? Is there a mistake into the parameters?
> I tried different ways to find a solution but unsuccessfully!!! 
> 
> If you've some spare time, could you please cast an eye over my
> experience...?
> 
> Thanks a lot,
> 
> Sam
> 
> The following is a list of all the commands I used to process my steps:
> 
> 1) 
>     a) Create a 128 nodes chord ring (2 times 64 virtual nodes)
> $ ./lsd -j 127.0.0.1:10000 -l 127.0.0.1 -p 10000 -v 64
> $ ./lsd -j 127.0.0.1:10000 -l 127.0.0.1 -v 64 -d db5
> 
>    b) Use the dbm 'client' to store and fetch some blocks
> $ ./dbm 1 /tmp/chord-sock 5000 8192 - s 0 2 (store 5,000 blocks)
> $ ./dbm 1 /tmp/chord-sock 3000 8192 - f 1 2 (fetches 3,000 blocks in serial)
> 
> Note: As far as I know, p2psim computes on average about 9,000 lookups and
> that is why I stored some many blocks (storing 5,000 blocks takes more than
> 3 hours!) and retrieved 3,000 (storing 20,000 blocks requires 11 hours!!!)
> 
>    c) 
> Apply a script on the output of the fetch step to compute the average lookup
> latency
> $ ./dbm 1 /tmp/chord-sock 3000 8192 - f 1 2 > result_fetch
> $ ./compute_average_latency.pl ./result_fetch
> 
> Use 'tcpdump' in parallel during the fetch to compute the consumed
> bandwidth:
> $ tcpdump -i lo dst port 10000 | perl -ne '$sum+=$1 if /length: (\d+)/;print
> $sum,"\n"
> (Not so accurate but just provide an idea of the value)
> 
> 
> 2) a) Run a 128-peers network simulation with p2psim
> $ ./run-simulation.pl --lifemean 3600000 --deathmean 3600000 --exitime
> 21600000 --topology ../example/silly-top.txt --protocol chord --argsfile
> ./chord_args --logdir ./
> 
> (Original Chord parameters are: base:2 ; succ:16 ; pnstimer:1000 ;
> succlisttimer:1000)
> 
> $ cat argsfile
> base 2
> successor 16
> pnstimer >=basictimer 1000
> basictimer 1000
> succlisttimer =pnstimer 1
> recurs_direct 1
> recurs 1
> ipkey 1
> samples 32
> fingerlets 1
> (As you can certainly guess, this simulation took many time to be
> performed!)
> 
>    b) retrieve the bandwidth and latency
> $ tail ChordFingerPNS-2-16-1000-1000-1000-1-1-1-32-1.log
> And check the values of the following fields: 
> 	BW_TOTALS:: live_bw(bytes/node/s):
> 	CORRECT_LOOKUPS:: lookup_mean:
> 
> 
> 
> 3) And my results are:
> Chord distribution: BW = about 40 kb    Latency = 18.178 ms
> p2psim: BW = 192.284   Latency = 211.588
> 
> 
> 
> 
> 
>>-----Original Message-----
>>From: Jinyang Li [mailto:jinyang at amsterdam.lcs.mit.edu]
>>Sent: Tuesday, June 15, 2004 3:23 AM
>>To: Samuel ELBAZE
>>Subject: Re: p2psim results!?!
>>
>>hi,
>>  here are the arg file for the 3 other protocols.
>>
>>  jinyang
>>
>>Samuel ELBAZE [elbaze at hml.cl.nec.co.jp] wrote:
>>
>>>Hi Jinyang,
>>>
>>>Thank you for the updated values. Could you please also send me the
>>>parameters values for the 3 other protocols?
>>>
>>>Best regards,
>>>
>>>Sam
> 
> 



More information about the chord mailing list