Dynamic object replication within a distributed storage system
First Claim
1. A system, comprising:
- a plurality of computing nodes, each computing node comprising at least one processor and memory, wherein the plurality of computing nodes is configured to implement;
a web services interface configured to present a data storage web service to clients, wherein said data storage web service includes one or more web services endpoints, wherein each web services endpoint of the one or more web services endpoints is addressable by ones of said clients to receive, according to a web services protocol, client requests to store data objects supplied by said clients within said data storage web service, wherein said client requests include a given client request to store a given one of said data objects;
a plurality of storage nodes configured to store replicas of said data objects;
storage node selection logic configured to dynamically determine a write plan for storing one or more replicas of said given data object to one or more corresponding ones of said plurality of storage nodes, wherein a plurality of distinct storage policies defined within said data storage web service are applicable to said given data object;
wherein said write plan is dynamically determined according to current state information of said plurality of storage nodes, wherein to dynamically determine said write plan, said storage node selection logic is further configured to select said one or more corresponding ones of said plurality of storage nodes such that a number of said plurality of storage policies satisfied by storing said one or more replicas of said given data object according to said write plan is maximized, and such that on at least some occasions of dynamically determining said write plan, at least two of said storage policies are satisfied by said write plan;
wherein a number of storage policies that are satisfiable by said write plan differs on different occasions of dynamically determining said write plan, dependent upon said current state information of said plurality of storage nodes; and
a coordinator configured to receive said client requests to store data objects from said web services interface, wherein in response to said given client request, said coordinator is configured to store said one or more replicas of said given data object to said one or more corresponding storage nodes according to said write plan.
2 Assignments
0 Petitions
Accused Products
Abstract
Dynamic object replication in distributed storage systems. A system may implement a web services interface, storage nodes, storage node selection logic and a coordinator. The web services interface may be configured to receive, according to a web services protocol, client requests to store data objects including a given client request to store a given one of the data objects. The storage nodes may be configured to store replicas of the data objects. The storage node selection logic may be configured to dynamically determine a write plan for storing replicas of the given data object to corresponding storage nodes, where the write plan is dynamically determined according to current state information of the storage nodes. The coordinator may be configured to receive the client requests from the web services interface, and for the given client request, to store the replicas of the given data object to the corresponding storage nodes according to the write plan.
221 Citations
70 Claims
-
1. A system, comprising:
a plurality of computing nodes, each computing node comprising at least one processor and memory, wherein the plurality of computing nodes is configured to implement; a web services interface configured to present a data storage web service to clients, wherein said data storage web service includes one or more web services endpoints, wherein each web services endpoint of the one or more web services endpoints is addressable by ones of said clients to receive, according to a web services protocol, client requests to store data objects supplied by said clients within said data storage web service, wherein said client requests include a given client request to store a given one of said data objects; a plurality of storage nodes configured to store replicas of said data objects; storage node selection logic configured to dynamically determine a write plan for storing one or more replicas of said given data object to one or more corresponding ones of said plurality of storage nodes, wherein a plurality of distinct storage policies defined within said data storage web service are applicable to said given data object; wherein said write plan is dynamically determined according to current state information of said plurality of storage nodes, wherein to dynamically determine said write plan, said storage node selection logic is further configured to select said one or more corresponding ones of said plurality of storage nodes such that a number of said plurality of storage policies satisfied by storing said one or more replicas of said given data object according to said write plan is maximized, and such that on at least some occasions of dynamically determining said write plan, at least two of said storage policies are satisfied by said write plan; wherein a number of storage policies that are satisfiable by said write plan differs on different occasions of dynamically determining said write plan, dependent upon said current state information of said plurality of storage nodes; and a coordinator configured to receive said client requests to store data objects from said web services interface, wherein in response to said given client request, said coordinator is configured to store said one or more replicas of said given data object to said one or more corresponding storage nodes according to said write plan. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
-
25. A method, comprising:
-
presenting a data storage web service to clients, wherein said data storage web service includes one or more web services endpoints, wherein each web services endpoint of the one or more web services endpoints is addressable by ones of said clients according to a web services protocol to store data objects supplied by said clients within said data storage web service; receiving, via said one or more web services endpoints, client requests to store ones of said data objects including a given client request to store a given one of said data objects; dynamically determining a write plan for storing one or more replicas of said given data object to one or more corresponding ones of a plurality of storage nodes, wherein a plurality of distinct storage policies defined within said data storage web service are applicable to said given data object; wherein said write plan is dynamically determined according to current state information of said plurality of storage nodes, and wherein dynamically determining said write plan comprises selecting said one or more corresponding ones of said plurality of storage nodes such that a number of said plurality of storage policies satisfied by storing said one or more replicas of said given data object according to said write plan is maximized, and such that on at least some occasions of dynamically determining said write plan, at least two of said storage policies are satisfied by said write plan; wherein a number of storage policies that are satisfiable by said write plan differs on different occasions of dynamically determining said write plan, dependent upon said current state information of said plurality of storage nodes; and in response to said given client request, storing said one or more replicas of said given data object to said one or more corresponding storage nodes according to said write plan. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47)
-
-
48. A computer-accessible storage medium storing instructions, wherein the instructions are computer-executable to:
-
present a data storage web service to clients, wherein said data storage web service includes one or more web services endpoints, wherein each web services endpoint of the one or more web services endpoints is addressable by ones of said clients according to a web services protocol to store data objects supplied by said clients within said data storage web service; receive, via said one or more web services endpoints, client requests to store ones of said data objects including a given client request to store a given one of said data objects; dynamically determine a write plan for storing one or more replicas of a given data object to one or more corresponding ones of a plurality of storage nodes, wherein a plurality of distinct storage policies defined within said data storage web service are applicable to said given data object; wherein said write plan is dynamically determined according to current state information of said plurality of storage nodes, and wherein to dynamically determine said write plan, the instructions are further computer-executable to select said one or more corresponding ones of said plurality of storage nodes such that a number of said plurality of storage policies satisfied by storing said one or more replicas of said given data object according to said write plan is maximized, and such that on at least some occasions of dynamically determining said write plan, at least two of said storage policies are satisfied by said write plan; wherein a number of storage policies that are satisfiable by said write plan differs on different occasions of dynamically determining said write plan, dependent upon said current state information of said plurality of storage nodes; and subsequent to a given client request to store said given data object being received according to a web services protocol, instruct that said one or more replicas of said given data object be stored to said one or more corresponding storage nodes according to said write plan. - View Dependent Claims (49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70)
-
Specification