Resilient distributed replicated data storage system
First Claim
1. A system comprising:
- a plurality of storage zones, each storage zone comprising a plurality of nodes wherein each node comprises a plurality of storage devices and a controller, the controller including a processor and memorya first node of a plurality of nodes included in a first zone of the plurality of zones, the first node having instructions stored thereon which when executed cause a first processor included in a first controller in the first node to perform actions including;
receiving a storage request from a client of the system to store a data item;
partitioning the data item into a plurality of data objects, each object including a storage policy identifier and a data portion;
creating a plurality of parity objects for the data item;
creating reassembly instructions for the data item;
storing groups of some of the data objects and groups of some of the parity objects and the reassembly instructions among the nodes included in the storage zones according to a predetermined set of criteria, the storing includingevaluating a latency for each storage zone to which the data item is to be stored,performing the storing in lowest latency order,evaluating each storage zone to determine whether the storage zone is accessible,when one of the storage zones is not accessible, creating a virtual zone in the first zone to store the data objects, parity objects and reassembly instructions intended for the inaccessible storage zone;
receiving a read request for the data item;
obtaining data objects and parity objects to reconstruct the data item from lowest latency nodes, includingwhen one of the storage zones having storage nodes where the data objects and parity objects to reconstruct the data item are stored are inaccessible, using the virtual zone in place of the inaccessible zone to obtain the data objects and parity objects;
providing the requested data item to a requester.
2 Assignments
0 Petitions
Accused Products
Abstract
A resilient distributed replicated data storage system is described herein. The storage system includes zones that are independent, and autonomous from each other. The zones include nodes that are independent and autonomous. The nodes include storage devices. When a data item is stored, it is partitioned into a plurality of data objects and a plurality of parity objects are calculated. Reassembly instructions are created for the data item. The data objects, parity objects and reassembly instructions are spread across nodes and zones in the storage system according to a policy for the data item. When a zone is inaccessible, a virtual zone is created and used until the intended zone is available. When a read request is received, the data item is prepared from the lowest latency nodes according to the reassembly instructions, and a virtual zone is accessed in place of a real zone when the real zone is inaccessible.
38 Citations
22 Claims
-
1. A system comprising:
-
a plurality of storage zones, each storage zone comprising a plurality of nodes wherein each node comprises a plurality of storage devices and a controller, the controller including a processor and memory a first node of a plurality of nodes included in a first zone of the plurality of zones, the first node having instructions stored thereon which when executed cause a first processor included in a first controller in the first node to perform actions including; receiving a storage request from a client of the system to store a data item; partitioning the data item into a plurality of data objects, each object including a storage policy identifier and a data portion; creating a plurality of parity objects for the data item; creating reassembly instructions for the data item; storing groups of some of the data objects and groups of some of the parity objects and the reassembly instructions among the nodes included in the storage zones according to a predetermined set of criteria, the storing including evaluating a latency for each storage zone to which the data item is to be stored, performing the storing in lowest latency order, evaluating each storage zone to determine whether the storage zone is accessible, when one of the storage zones is not accessible, creating a virtual zone in the first zone to store the data objects, parity objects and reassembly instructions intended for the inaccessible storage zone; receiving a read request for the data item; obtaining data objects and parity objects to reconstruct the data item from lowest latency nodes, including when one of the storage zones having storage nodes where the data objects and parity objects to reconstruct the data item are stored are inaccessible, using the virtual zone in place of the inaccessible zone to obtain the data objects and parity objects; providing the requested data item to a requester. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A system comprising:
-
a plurality of storage zones, each storage zone comprising a plurality of storage nodes wherein each storage node comprises a plurality of storage devices and a controller, the controller including a processor and memory a first node of a plurality of nodes included in a first zone of the plurality of zones, the first node having instructions stored thereon which when executed cause a first processor included in a first controller in the first node to perform actions including; receiving a storage request from a client of the system to store a data item, the storage request including (a) the data item or a data item reference and (b) a storage criteria; partitioning the data item into a plurality of data objects, each object including a storage policy identifier and a data portion according to the storage criteria; creating a plurality of parity objects for the data item according to the storage criteria; creating reassembly instructions for the data item according to the storage criteria; storing the data objects and the parity objects for the data item among the nodes among the storage zones according to the storage criteria and storing the reassembly instructions among the storage nodes among the storage zones, the storing including evaluating a latency for each storage zone to which the data item is to be stored, performing the storing in lowest latency order, evaluating each storage zone to determine whether the storage zone is accessible, when one of the storage zones is not accessible, creating a virtual zone in the first zone to store the data objects, parity objects and reassembly instructions intended for the inaccessible storage zone; receiving a read request for the data item; obtaining data objects and parity objects to reconstruct the data item from lowest latency nodes, including when one of the storage zones having storage nodes where the data objects and parity objects to reconstruct the data item are stored are inaccessible, using the virtual zone in place of the inaccessible zone to obtain the data objects and parity objects; providing the requested data item to a requester. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22)
-
Specification