Pallelra, Ranga Reddy2015-10-132015-10-132015-07https://hdl.handle.net/11299/174827University of Minnesota M.S. thesis. July 2015. Major: Computer Science. Advisor: Haiyang Wang. 1 computer file (PDF); ix, 69 pages.Recent years have witnessed the rising popularity of file synchronization systems. Powered by rich datacenter resources, such commercial products as Dropbox and Google Drive not only provide conventional file hosting but also enable file synchronization with multi-party user collaborations. It is however known that their datacenter-based design will limit the system scalability. Peer-to-peer (P2P) based file synchronization, most notably BitTorrent Sync, is therefore widely suggested as a more scalable and efficient alternative. Unfortunately, the framework design and the protocol operation of P2P file synchronization remain vague to the general public. Identifying the exact performance bottlenecks or enabling theoretical and practical optimization is challenging and largely blinding to date. In this thesis, we for the first time investigate the performance of P2P file synchronization in real-world measurement. We deploy BitTorrent Sync on highly-distributed PlanetLab testbed and closely investigate its framework design. Based on our measurements, we find that the P2P file synchronization system can provide very efficient file synchronization, especially for large contents. Different from traditional BitTorrent-like systems, our packet-level analysis also indicates that BitTorrent Sync does not have built-in tit-for-tat protocols. Peers' downloading speed is therefore, independent of their uploading. This modification naturally improves the synchronization efficiency yet also introduces certain fairness issues. For example, our measurement shows that 80% of our peers can obtain a 500MB file within 10 minutes. The remaining 20% users, on the other hand, will suffer from very long synchronization latency; the slowest peers will spend over 30 minutes to download the same file. To mitigate such a problem, we explore the potential to merge the existing P2P-based and cloud-based synchronization systems. The main idea of this hybrid framework is using cloud-based synchronization to accelerate the slower peers in P2P synchronization. Using Dropbox and BitTorrent Sync as a case study, we implement this cloud-assisted P2P synchronization on PlanetLab testbed. The evaluation shows that the cloud-based enhancement can well-address the fairness issues while improving the overall synchronization efficiency by 38%.enBitTorrent SyncDropboxFile synchronizationHybrid Cloud-P2PPeer-to-peerPlanetLabMeasurement and Enhancement of Peer-to-Peer based File Synchronization with Cloud AssistanceThesis or Dissertation