US2023267042A1PendingUtilityA1

Rebuilding an Encoded Data Slice Based on a Slice Integrity Value

Assignee: PURE STORAGE INCPriority: Jun 25, 2012Filed: Apr 30, 2023Published: Aug 24, 2023
Est. expiryJun 25, 2032(~5.9 yrs left)· nominal 20-yr term from priority
G06F 11/1076G06F 3/0619G06F 3/064G06F 3/0644G06F 3/067G06F 11/1092H03M 13/05H03M 13/3761H03M 13/611H03M 13/1515G06F 3/065G06F 11/2094G06F 11/008G06F 2211/109G06F 11/2058
76
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A method includes retrieving an encoded data slice from memory of a storage network, where the encoded data slice is associated with a slice integrity value stored in the memory, and where a data segment of data is error encoded into a set of encoded data slices that includes the encoded data slice. The method further includes generating a second slice integrity value based on the retrieved encoded data slice. The method further includes determining whether the second slice integrity value compares favorably to the slice integrity value. When the second slice integrity value compares unfavorably to the slice integrity value, the method further includes facilitating rebuilding of the encoded data slice to produce a rebuilt encoded data slice. The method further includes storing the rebuilt encoded data slice in the memory.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . A method comprising:
 retrieving an encoded data slice from memory of a storage network, wherein the encoded data slice is associated with a slice integrity value stored in the memory, and wherein a data segment of data is error encoded into a set of encoded data slices that includes the encoded data slice;   generating a second slice integrity value based on the retrieved encoded data slice;   determining whether the second slice integrity value compares favorably to the slice integrity value;   when the second slice integrity value compares unfavorably to the slice integrity value, facilitating rebuilding of the encoded data slice to produce a rebuilt encoded data slice; and   storing the rebuilt encoded data slice in the memory.   
     
     
         2 . The method of  claim 1 , wherein the retrieving the encoded data slice comprises:
 selecting the encoded data slice based on a request.   
     
     
         3 . The method of  claim 1 , wherein the retrieving the encoded data slice comprises:
 selecting the encoded data slice based on an error message.   
     
     
         4 . The method of  claim 1 , wherein the generating the second slice integrity value comprises: 
 performing a deterministic function on the retrieved encoded data slice.   
     
     
         5 . The method of  claim 4 , wherein the deterministic function comprises a hashing function. 
     
     
         6 . The method of  claim 4 , wherein the deterministic function comprises a cyclic redundancy check. 
     
     
         7 . The method of  claim 1 , wherein the slice integrity value was previously generated and stored in the memory in association with a storing of the encoded data slice. 
     
     
         8 . The method of  claim 1 , wherein error encoding parameters associated with the error encoding comprises:
 a pillar width number that indicates a total number of encoded data slices for the set of encoded data slices; and   a decode threshold number, wherein at least the decode threshold number of encoded data slices of the set of encoded data slices is needed to reconstruct the data segment.   
     
     
         9 . The method of  claim 8 , wherein the error encoding parameters further comprises:
 a Reed-Solomon based encoding algorithm.   
     
     
         10 . The method of  claim 1 , wherein when the second slice integrity value compares favorably to the slice integrity value:
 retrieving a second encoded data slice from the memory, wherein the second encoded data slice is associated with a third slice integrity value stored in the memory;   generating a fourth slice integrity value based on the retrieved second encoded data slice;   determining whether the fourth slice integrity value compares favorably to the third slice integrity value;   when the fourth slice integrity value compares unfavorably to the third slice integrity value, facilitating rebuilding of the second encoded data slice to produce a rebuilt second encoded data slice; and   storing the rebuilt second encoded data slice in the memory.   
     
     
         11 . A computing device comprising:
 a memory device;   an interface; and   a processing module operably coupled to the memory device and the interface, wherein the processing module is operable to:
 retrieve an encoded data slice from memory of a storage network, wherein the encoded data slice is associated with a slice integrity value stored in the memory, and wherein a data segment of data is error encoded into a set of encoded data slices that includes the encoded data slice; 
 generate a second slice integrity value based on the retrieved encoded data slice; 
 determine whether the second slice integrity value compares favorably to the slice integrity value; 
 when the second slice integrity value compares unfavorably to the slice integrity value, facilitate rebuilding of the encoded data slice to produce a rebuilt encoded data slice; and 
 store the rebuilt encoded data slice in the memory. 
   
     
     
         12 . The computing device of  claim 11 , wherein the processing module is further operable to retrieve the encoded data slice by:
 selecting the encoded data slice based on a request.   
     
     
         13 . The computing device of  claim 11 , wherein the processing module is further operable to retrieve the encoded data slice by:
 selecting the encoded data slice based on an error message.   
     
     
         14 . The computing device of  claim 11 , wherein the processing module is further operable to generate the second slice integrity value by:
 performing a deterministic function on the retrieved encoded data slice.   
     
     
         15 . The computing device of  claim 14 , wherein the processing module is further operable to determine the deterministic function is a hashing function. 
     
     
         16 . The computing device of  claim 14 , wherein the processing module is further operable to determine the deterministic function is a cyclic redundancy check. 
     
     
         17 . The computing device of  claim 14 , wherein the processing module is further operable to determine the slice integrity value was previously generated and stored in the memory in association with a storing of the encoded data slice. 
     
     
         18 . The computing device of  claim 11 , wherein the processing module is further operable to determine error encoding parameters associated with the error encoding comprises:
 a pillar width number that indicates a total number of encoded data slices for the set of encoded data slices; and   a decode threshold number, wherein at least the decode threshold number of encoded data slices of the set of encoded data slices is needed to reconstruct the data segment.   
     
     
         19 . The computing device of  claim 18 , wherein the processing module is further operable to determine the error encoding parameters further comprises
 a Reed-Solomon based encoding algorithm.   
     
     
         20 . The computing device of  claim 11 , wherein when the second slice integrity value compares favorably to the slice integrity value, the processing module is further operable to:
 retrieve, via the interface, a second encoded data slice from the memory, wherein the second encoded data slice is associated with a third slice integrity value stored in the memory;   generate a fourth slice integrity value based on the retrieved second encoded data slice;   determine whether the fourth slice integrity value compares favorably to the third slice integrity value;   when the fourth slice integrity value compares unfavorably to the third slice integrity value, facilitate rebuilding of the second encoded data slice to produce a rebuilt second encoded data slice; and   store the rebuilt second encoded data slice in the memory.

Join the waitlist — get patent alerts

Track US2023267042A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.