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
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
CHEWBACCA Baker, Fink, Trimm, Whisman<br />
Abstract<br />
We implemented a distributed, peer-<strong>to</strong>-peer file system in Java using the Chord pro<strong>to</strong>col<br />
for efficient location of files s<strong>to</strong>red across a network. Chord is a distributed key lookup<br />
technique that scales logarithmically with an increase in the number of s<strong>to</strong>rage nodes.<br />
Initially, we discovered problems with the Chord algorithms, and pro<strong>to</strong>typed corrections<br />
<strong>to</strong> verify the changes. To implement the file sharing system, a Sockets-based messaging<br />
framework was implemented in Java, using command line interfaces and an FTP-like file<br />
push/pull semantics. The file system enables distributed peers <strong>to</strong> present a virtual single<br />
direc<strong>to</strong>ry <strong>to</strong> users while sharing file load across different platforms. Using the<br />
application, we verified the claimed messaging performance of the basic Chord algorithm<br />
<strong>to</strong> be close <strong>to</strong> Mlog(N) behavior in an average case. The algorithms were modified <strong>to</strong> do<br />
locally-optimal balanced node joins, and experiments showed a 20% improvement in<br />
load balancing fairness over the standard, unbalanced algorithms. We designed<br />
algorithm modifications <strong>to</strong> support concurrent joins and leaves of the Chord cloud using a<br />
variant on Raymond’s tree-based distributed mutual exclusion algorithm, and informally<br />
proved some safety and liveness properties of the implemented balance and proposed<br />
<strong>to</strong>ken-based mutual exclusion algorithms. During the investigation, several<br />
improvements were suggested for the Chord-based file system, including distributed<br />
mutual exclusion with quorum voting, security, replication, and other enhancements.<br />
2