Executing replication requests for objects in a distributed storage system
First Claim
1. A computer-implemented method for executing 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 to perform the method, comprising;
receiving a plurality of replication requests for objects in a distributed storage system;
partitioning the plurality of replication requests into one or more replication queues, wherein a respective replication queue includes replication requests that have a respective replication key, wherein the respective replication key includes information related to at least a respective source storage device at which a respective object is located and a respective destination storage device to which the respective object is to be replicated;
for each respective replication queue, sorting the replication requests in the replication queue based on priorities of the replication requests;
issuing commands to execute a highest priority request in each respective replication queue; and
when a respective replication request is completed, deleting the respective replication request from the replication queue;
repeating the issuing and deleting until the replication queue is empty; and
repeating the issuing and deleting until a plurality of new replication requests is received from the location assignment daemon, wherein the plurality of new replication requests is received from a location assignment daemon that is configured to generate replication requests globally across instances of the distributed storage system based at least in part on a current state of the distributed storage system and replication policies for objects in the distributed storage system.
2 Assignments
0 Petitions
Accused Products
Abstract
A system and method for executing replication requests for objects in a distributed database is provided. A plurality of replication requests for objects in a distributed storage system is received. The replication requests are partitioned into one or more replication queues. A respective replication queue includes replication requests that have a respective replication key. The respective replication key includes information related to at least a respective source storage device at which a respective object is located and a respective destination storage device to which the respective object is to be replicated. For each respective replication queue, the replication requests in the replication queue are sorted based on priorities of the replication requests. Commands to execute a highest priority request are issued in each respective replication queue. When a respective replication request is completed, the respective replication request is deleted from the replication queue.
137 Citations
21 Claims
-
1. A computer-implemented method for executing 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 to perform the method, comprising; receiving a plurality of replication requests for objects in a distributed storage system; partitioning the plurality of replication requests into one or more replication queues, wherein a respective replication queue includes replication requests that have a respective replication key, wherein the respective replication key includes information related to at least a respective source storage device at which a respective object is located and a respective destination storage device to which the respective object is to be replicated; for each respective replication queue, sorting the replication requests in the replication queue based on priorities of the replication requests; issuing commands to execute a highest priority request in each respective replication queue; and when a respective replication request is completed, deleting the respective replication request from the replication queue; repeating the issuing and deleting until the replication queue is empty; and repeating the issuing and deleting until a plurality of new replication requests is received from the location assignment daemon, wherein the plurality of new replication requests is received from a location assignment daemon that is configured to generate replication requests globally across instances of the distributed storage system based at least in part on a current state of the distributed storage system and replication policies for objects in the distributed storage system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A system for executing replication requests for objects in a distributed storage system, comprising:
-
one or more processors;
memory; andone or more programs stored in the memory, the one or more programs comprising instructions to; receive a plurality of replication requests for objects in a distributed storage system; partition the plurality of replication requests into one or more replication queues, wherein a respective replication queue includes replication requests that have a respective replication key, wherein the respective replication key includes information related to at least a respective source storage device at which a respective object is located and a respective destination storage device to which the respective object is to be replicated; for each respective replication queue, sort the replication requests in the replication queue based on priorities of the replication requests; issue commands to execute a highest priority request in each respective replication queue; and when a respective replication request is completed, delete the respective replication request from the replication queue; repeating the issuing and deleting until the replication queue is empty; and repeating the issuing and deleting until a plurality of new replication requests is received from the location assignment daemon, wherein the plurality of new replication requests is received from a location assignment daemon that is configured to generate replication requests globally across instances of the distributed storage system based at least in part on a current state of the distributed storage system and replication policies for objects in the distributed storage system. - View Dependent Claims (13, 14, 15, 16)
-
-
17. A non-transitory computer readable storage medium storing one or more programs configured for execution by a computer, the one or more programs comprising instructions to:
-
receive a plurality of replication requests for objects in a distributed storage system; partition the plurality of replication requests into one or more replication queues, wherein a respective replication queue includes replication requests that have a respective replication key, wherein the respective replication key includes information related to at least a respective source storage device at which a respective object is located and a respective destination storage device to which the respective object is to be replicated; for each respective replication queue, sort the replication requests in the replication queue based on priorities of the replication requests; issue commands to execute a highest priority request in each respective replication queue; and when a respective replication request is completed, delete the respective replication request from the replication queue; repeating the issuing and deleting until the replication queue is empty; and repeating the issuing and deleting until a plurality of new replication requests is received from the location assignment daemon, wherein the plurality of new replication requests is received from a location assignment daemon that is configured to generate replication requests globally across instances of the distributed storage system based at least in part on a current state of the distributed storage system and replication policies for objects in the distributed storage system. - View Dependent Claims (18, 19, 20, 21)
-
Specification