Leveraging the Client-Server Model in P2P: Managing Concurrent File Updates in a P2P System

The client-server and peer-to-peer paradigms of distributed computing lay at opposite ends of the spectrum when it comes to simplicity, resiliency to failures, and distribution of load. Unlike client-server systems, peer-topeer systems are built to have no central components and to withstand failure. They are used to provide file sharing services, however, there is currently no peer-to-peer system that safely maintains consistency of data in the face of concurrent file updates. This paper solve this problem by layering a robust, well-tested, client-server application for managing concurrent file access (CVS [2]) on top of a peer-to-peer distributed hash table (the Bamboo DHT [3]). This coupling provides a distributed, scalable, faulttolerant, service for managing concurrent updates to replicated data. This work gives proof of concept that combining the client-server and peer-to-peer paradigms can provide functionality beyond the current capabilities of either paradigm alone.