A fully Decentralized, Peer-to-Peer Based Version Control System.
Technische Universität, Darmstadt
[Ph.D. Thesis], (2011)
Dissertation Patrick Mukherjee - PlatinVC -
Available under Creative Commons Attribution Non-commercial No Derivatives, 2.5.
Download (6MB) | Preview
|Item Type:||Ph.D. Thesis|
|Title:||A fully Decentralized, Peer-to-Peer Based Version Control System|
Version control is essential in collaborative software development today. Its main functions are to track the evolutionary changes made to a project’s files, manage work being concurrently undertaken on those files and enable a comfortable and complete exchange of a project’s data among its developers. The most commonly used version control systems are client-server based, meaning they rely on a centralized machine to store and manage all of the content. The obvious drawbacks involved by bringing an intermediary server into the system include having a single point of failure, a central ownership and vulnerability, scalability issues, and increased synchronization and communication delays. Many popular global software projects switched to the emerging distributed version control systems, demonstrating the urgent need for a more suitable version control system. This thesis proposes a fully decentralized, peer-to-peer based version control system as a solution to overcome issues of currently available systems. The peer-to-peer communication paradigm proved to be successful in a variety of applications. A peer-to-peer system consists of autonomous participants, thus certain behavior cannot be guaranteed. Its unreliable nature, however, means its usage in version control systems is not obvious. In order to develop a solution based on the peer-to-peer communication paradigm, existing client-server, distributed, and peer-to-peer version control systems are analyzed and evaluated using a set of require- ments, which were derived from two realistic usage scenarios. Furthermore, the design details of those systems are closely examined in order to realize the impact of their design decisions on both functional features and quality aspects of the system, with the strongest focus on consistency. The proposed system is designed and implemented based on these findings. The resulting system, PlatinVC, is a fully decentralized system, which features the complete system view of centralized systems, while overcoming their drawbacks. All workflows of existing version control systems, centralized or distributed, are supported. PlatinVC even supports a hybrid setup, where other version control systems can interoperate, using PlatinVC as a mediator. Moreover, it introduces an automatic isolation of concurrent work, which separates relevant and required updates from possibly unneeded ones. In this way, branches are only created when necessary. The evolutionary changes of links between files, which can be enhanced by any attributes, are also tracked. That extends snapshot-based version control to other purposes, e.g. traceability of software artifacts. PlatinVC is a serious alternative to current version control systems, as industry proven components for the most critical parts of the system were reused. The evaluation shows that PlatinVC meets the identified requirements completely, thereby being the first fully decentralized version control system that provides a high consistency degree, efficiency, and robustness. The impact of this thesis is twofold: First, it offers the novel concept of automatic concurrent work isolation, so that the essential updates are separated from the unnecessary ones and the costs of integrating and merging branches are minimized. Second, this thesis provides the proof that the peer-to-peer paradigm can be pushed beyond its currently reputed limits by adding features, which previously seemed incompatible.
|Place of Publication:||Darmstadt|
|Uncontrolled Keywords:||distributed computing, peer-to-peer, software engineering, version control system, gsd, global software development|
|Classification DDC:||600 Technik, Medizin, angewandte Wissenschaften > 620 Ingenieurwissenschaften
000 Allgemeines, Informatik, Informationswissenschaft > 004 Informatik
|Divisions:||Fachbereich Elektrotechnik und Informationstechnik > Echtzeitsysteme
Fachbereich Elektrotechnik und Informationstechnik
|Date Deposited:||14 Mar 2011 09:23|
|Last Modified:||07 Dec 2012 11:59|
|Referees:||Schürr, Prof. rer. Andy and Freisleben, Prof. Dr.- Bernd|
|Refereed:||3 December 2010|