Implementing a Distributed Peer to Peer File Sharing System ... - Umbc
Implementing a Distributed Peer to Peer File Sharing System ... - Umbc
Implementing a Distributed Peer to Peer File Sharing System ... - Umbc
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
CHEWBACCA Baker, Fink, Trimm, Whisman<br />
filled in, the joining node must update every node that should have it in their finger<br />
tables. Initially, M “update your finger table with me” messages are sent out <strong>to</strong> the<br />
existing nodes. Since the recipients of this message must first be found, the number of<br />
messages is M*Log(N). Additionally, each node that receives one of these messages<br />
may pass it <strong>to</strong> their predecessor if they, themselves, updated their table. If the nodes are<br />
perfectly distributed around the virtual ring, then one node, at most, is updated with each<br />
of these messages. Therefore, the number of messages for join is M*Log(N) +<br />
M*Log(N) or O(M*Log(N)). The correct estimate with varying M’s is shown in Fig. 3.<br />
The leave operation performs in a similar manner <strong>to</strong> the join operation except that it<br />
doesn’t fill in its own finger table. However the “update others” method is very similar<br />
<strong>to</strong> the joins with the modification that you are telling other nodes <strong>to</strong> replace entries of the<br />
leaving node with its successor. Therefore, the number of messages for leave is<br />
M*Log(N). This estimate with varying M’s is shown in Fig. 4.<br />
The find operation performs as specified by the Chord Paper. This is intuitively obvious<br />
because the Chord finger table implements a distributed binary search. For every hop<br />
that a find message takes, it roughly halves its distance <strong>to</strong> the searched for slot. The<br />
metrics for the find operation are shown in Fig. 5.<br />
5.2.3 Results of Improvements<br />
Standard Deviation of Inter-node<br />
Distances<br />
60000<br />
50000<br />
40000<br />
30000<br />
20000<br />
10000<br />
Unbalanced vs. Balanced Joins, M=20<br />
0<br />
0 10 20 30 40 50 60 70<br />
Nodes<br />
Unbalanced Join<br />
Balanced Join<br />
Figure 6. The number of messages required using balanced-join compared with those<br />
required using join<br />
17