Looking at the server side of P2P systems

Motivation and Approach

Peer-to-peer systems have grown significantly in popularity over the last few years. An increasing number of research projects have been closely following this trend, looking at many of the paradigm's technical aspects. In the context of data-sharing services, efforts have focused on a variety of issues from object location and routing to fair sharing and peer lifespans. In such systems, participating peers help each other search for data objects, download them and ensure/promote fair usage. A peer in search of a particular object issues a query that is forwarded among participating peers which reply to the requester if they have the object. After determining alternative sources, the requesting peer initiates the object download from a subset of the possible providers, each party effectively adopting client and server roles.

Overall, the majority of these projects have concentrated on either the whole P2P infrastructure or the client-side of peers. Little attention has been given to the peer's server-side, even when that side determines much of the everyday-user's experience. Earlier work has demonstrated that the response time experienced by a user is dominated by the downloading process. Over 80% of all download requests in Kazaa are rejected due to capacity saturation at server peers, while over 50% of all requests for large objects (>100MB) take more than one day and nearly 20% taking over one week to complete!

In this project, we make the case for looking at the server-side of peers, focusing on the problem of scheduling download requests at the server-side of P2P systems with the intent of minimizing the average response time experienced by users. Our research efforts are guided by collection and analysis of extensive traces from real, deployed data sharing P2P systems. We evaluate our ideas through trace-driven simulations and innovative real-world deployments.