Patent ID: 8886602

Claim:
A computer-implemented method for generating replication requests for objects in a distributed storage system, comprising: at a computer system including one or more processors and memory storing one or more programs for execution by the one or more processors: for a respective object in a distributed storage system, determining replication policies for the object that have not been satisfied; ranking replication requests for the object whose replication policies have not been satisfied based on a number of replicas of the object that need to be created in order to satisfy the replication policies for the object; and generating replication requests for the object based at least in part on the replication policies for the object that have not been satisfied and on a current state of the distributed storage system, wherein a respective replication request for a respective object instructs a respective instance of the distributed storage system to replicate the respective object so as to at least partially satisfy a replication policy for the respective object; calculating priorities of the replication requests based on the current state of the distributed storage system, wherein calculating a priority of a respective replication request includes calculating a difference between a metric corresponding to a benefit of performing the respective replication request and a metric corresponding to a cost of performing the respective replication request; and distributing at least a subset of the replication requests for the objects in the distributed storage system to respective instances of the distributed storage system corresponding to the replication requests for execution.