Writing data slices to ready and non-ready distributed storage units in a distributed storage network
First Claim
1. A method of operating a distributed storage processing unit, the method comprising:
- creating a plurality of data slices from a data segment in accordance with an error coding function, wherein n number of data slices are created when error coding the data segment and wherein at least a threshold number k of the n data slices are needed to reconstruct the data segment, where k is less than n, in which n data slices are to be stored in n storage units of a distributed storage network;
identifying the n storage units for respective ones of the n storage units to store a different data slice of the n data slices;
determining which of the n storage units are in a ready status, wherein a ready status indicates a readiness to receive respective data slices for storage;
when all n storage units are in the ready status, sending n data slices to the n storage units for storage in the n storage units;
when less than k storage units are in the ready status, not sending the data slices to the storage units; and
when less than n, but more than or equal to k storage units are in the ready status, sending respective data slices to respective storage units that are in the ready status for storage and temporarily storing in a temporary memory, data slice or slices destined to storage unit or units in a non-ready status.
5 Assignments
0 Petitions
Accused Products
Abstract
A distributed storage network includes a distributed storage processing unit, which generates multiple data slices from a single data segment, and multiple different storage units to store the data slices. Each data slice is assigned to a particular storage unit for storage. The distributed storage processing unit determines which of the storage units are in a ready state, and sends data slices to the ready storage units. Data slices assigned to storage units that are not in a ready state are temporarily stored in a temporary memory, e.g. cache memory, until the storage unit becomes ready. If the intended storage unit remains in a non-ready status for too long, the slices stored in cache memory can be sent to a substitute storage unit, or discarded and reconstructed at a later time.
157 Citations
18 Claims
-
1. A method of operating a distributed storage processing unit, the method comprising:
-
creating a plurality of data slices from a data segment in accordance with an error coding function, wherein n number of data slices are created when error coding the data segment and wherein at least a threshold number k of the n data slices are needed to reconstruct the data segment, where k is less than n, in which n data slices are to be stored in n storage units of a distributed storage network; identifying the n storage units for respective ones of the n storage units to store a different data slice of the n data slices; determining which of the n storage units are in a ready status, wherein a ready status indicates a readiness to receive respective data slices for storage; when all n storage units are in the ready status, sending n data slices to the n storage units for storage in the n storage units; when less than k storage units are in the ready status, not sending the data slices to the storage units; and when less than n, but more than or equal to k storage units are in the ready status, sending respective data slices to respective storage units that are in the ready status for storage and temporarily storing in a temporary memory, data slice or slices destined to storage unit or units in a non-ready status. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A distributed storage processing unit comprising:
-
a memory; and a processor coupled to the memory, wherein the memory stores operational instructions that, when executed by the processor, causes the processor to; create a plurality of data slices from a data segment in accordance with an error coding function, wherein n number of data slices are created when error coding the data segment and wherein at least a threshold number k of the n data slices are needed to reconstruct the data segment, where k is less than n, in which n data slices are to be stored in n storage units of a distributed storage network; identify the n storage units for respective ones of the n storage units to store a different data slice of the n data slices; determine which of the n storage units are in a ready status, wherein a ready status indicates a readiness to receive respective data slices for storage; when all n storage units are in the ready status, send n data slices to the n storage units for storage in the n storage units; when less than k storage units are in the ready status, not send the data slices to the storage units; and when less than n, but more than or equal to k storage units are in the ready status, send respective data slices to respective storage units that are in the ready status for storage and temporarily store in a temporary memory, data slice or slices destined to storage unit or units in a non-ready status. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A distributed storage network comprising:
-
a plurality of distributed storage units, including memory devices, to receive data slices for storage; a distributed storage processing unit, implementing a hardware processor, to; create a plurality of data slices from a data segment in accordance with an error coding function, wherein n number of data slices are created when error coding the data segment and wherein at least a threshold number k of the n data slices are needed to reconstruct the data segment, where k is less than n, in which n data slices are to be stored in n storage units of the plurality of distributed storage units; identify the n storage units for respective ones of the n storage units to store a different data slice of the n data slices; determine which of the n storage units are in a ready status, wherein a ready status indicates a readiness to receive respective data slices for storage; when all n storage units are in the ready status, send n data slices to the n storage units for storage in the n storage units; when less than k storage units are in the ready status, not send the data slices to the storage units; and when less than n, but more than or equal to k storage units are in the ready status, send respective data slices to respective storage units that are in the ready status for storage and temporarily store in a temporary memory, data slice or slices destined to storage unit or units in a non-ready status. - View Dependent Claims (14, 15, 16, 17, 18)
-
Specification