Skip to Main Content
The scalability of a distributed service can be improved if the number of replicated instances of the service can vary with the load experienced by the system. To ensure that the number and placement of the replicas can be dynamically changed based on network and load conditions, a peer node must know when it should create a new replica and when such a replica can be removed. A scheme that makes such decisions centrally suffers from a number of problems. In this paper, we propose a self-managing replication algorithm for a peer-to-peer system where a peer node makes its decisions based on its locally maintained information. This algorithm offers several benefits. They include being responsive to heterogeneous load and ensuring that each peer node fairly contributes its available resources to meet the needs of the overall system. It is evaluated with simulations of a system that consists of one thousand nodes. Our results show that this self-managing algorithm can maintain a replication degree that adapts to load in the system and achieve a low response time.