IP Library Granted Patent US 12,386,706
Granted Patent B2
US 12,386,706 · App. 18/423,592 · Granted Aug 12, 2025

Smart error scanning in a storage network

Inventors: Ahmad Alnafoosi (Streamwood, IL); Jason K. Resch (Warwick, RI)
Assignee: Pure Storage, Inc.
G06F11/1092G06F2211/1028
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,386,706
App. No.
18/423,592
Granted
Aug 12, 2025
Kind
B2
Abstract

A method for execution by one or more computing devices of a storage network includes determining probable error locations associated within a set of storage units of the storage network based on provenance information associated with a set of encoded data slices, where the provenance information is generated as one or more tasks for error encoding a data segment of data into the set of encoded data slices and storing the set of encoded data slices are being executed. The method further includes scanning, by the computing device, the probable error locations to determine whether an error exists for the set of encoded data slices.

Claims (38)

1. A method for execution by one or more computing devices of a storage network, the method comprises:

determining probable error locations associated with a set of storage units of the storage network based on provenance information associated with a set of encoded data slices, wherein the provenance information is generated as one or more tasks, for error encoding a data segment of data into the set of encoded data slices and for storing the set of encoded data slices in the storage network, are being executed;

scanning the probable error locations to determine an error is associated with an encoded data slice of the set of encoded data slices; and

rebuilding the encoded data slice to resolve the error, wherein the rebuilt encoded data slice is stored in the storage network.

2. The method of claim 1 , wherein the scanning is performed in accordance with a rebuild scanning schedule.

3. The method of claim 2 further comprises:

updating the rebuild scanning schedule with the probable error locations to produce an updated rebuild scanning schedule, wherein the probable error locations are prioritized within the updated rebuild scanning schedule.

4. The method of claim 1 further comprises:

determining that the encoded data slice of the set of encoded data slices includes the error needs rebuilding;

rebuilding the encoded data slice in accordance with the error encoding parameters;

storing the rebuilt encoded data slice in a storage unit of the set of storage units; and

generating additional provenance information regarding at least one of the rebuilding and the storing.

5. The method of claim 4 further comprises:

encoding the additional provenance information into a set of provenance slices; and

storing the set of provenance slices in the storage network.

6. The method of claim 1 , wherein the provenance information includes a data identifier associated with the data.

7. The method of claim 6 , wherein the data identifier is an object name of a data object of the data.

8. The method of claim 6 , wherein the data identifier is an object number of a data object of the data.

9. The method of claim 1 further comprises:

scheduling the scanning to be performed during an off-peak timeframe.

10. The method of claim 1 , wherein the determining the probable error locations comprises:

determining write activity for a vault of the storage network based on the provenance information, wherein the vault includes the set of storage units;

determining write activity for a storage unit of the set of storage units based on the provenance information;

determining the write activity for the storage unit compares unfavorably to the write activity for the vault; and

adding a namespace range associated with the storage unit to the probable error locations.

11. The method of claim 1 , wherein the provenance information includes a timestamp indicating a time the data segment is written.

12. The method of claim 1 , wherein the provenance information includes a timestamp indicating a time the encoded data slice is written.

13. The method of claim 1 , wherein the provenance information includes an elapsed time for writing the set of encoded data slices.

14. The method of claim 1 , wherein the provenance information includes an identifier associated with a storage unit of the set of storage units.

15. The method of claim 1 , wherein the provenance information includes integrity information.

16. The method of claim 1 further comprises:

determining an error type of interest for the set of storage units;

identifying a search attribute based on the error type of interest; and

obtaining the provenance information based on the search attribute.

17. The method of claim 1 , wherein the determining the probable error locations comprises:

comparing first provenance information of the provenance information to second provenance information of the provenance information, wherein the first provenance information is associated with a first storage unit of the set of storage units and the second provenance information is associated with a second storage unit of the set of storage units;

when the first provenance information compares unfavorably to the second provenance information, identifying a potential error; and

determining a first probable error location of the probable error locations based on the potential error.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 26, 2024
From: ALNAFOOSI, AHMAD; RESCH, JASON K.
To: PURE STORAGE, INC.
Reel/Frame 066262/0048 →
Continuity (8)
Continuation 17514841 · Oct 29, 2021
Continuation 17247447 · Dec 11, 2020
Continuation 16692190 · Nov 22, 2019
Continuation 16151108 · Oct 3, 2018
Continuation 15352292 · Nov 15, 2016
Continuation 14306312 · Jun 17, 2014
Provisional Application 61841603 · Jul 1, 2013
Related Publication 20240160529A1 · May 16, 2024
References Cited (115)
US 4092732A · Ouchi · 1978 [cited by applicant]
US 5454101A · MacKay · 1995 [cited by applicant]
US 5485474A · Rabin · 1996 [cited by applicant]
US 5774643A · Lubbers · 1998 [cited by applicant]
US 5802364A · Senator · 1998 [cited by applicant]
US 5809285A · Hilland · 1998 [cited by applicant]
US 5890156A · Rekieta · 1999 [cited by applicant]
US 5987622A · Lo Verso · 1999 [cited by applicant]
US 5991414A · Garay · 1999 [cited by applicant]
US 6012159A · Fischer · 2000 [cited by applicant]
US 6058454A · Gerlach · 2000 [cited by applicant]
US 6128277A · Bruck · 2000 [cited by applicant]
US 6175571B1 · Haddock · 2001 [cited by applicant]
US 6192472B1 · Garay · 2001 [cited by applicant]
US 6256688B1 · Suetaka · 2001 [cited by applicant]
US 6272658B1 · Steele · 2001 [cited by applicant]
US 6301604B1 · Nojima · 2001 [cited by applicant]
US 6356949B1 · Katsandres · 2002 [cited by applicant]
US 6366995B1 · Vilkov · 2002 [cited by applicant]
US 6374336B1 · Peters · 2002 [cited by applicant]
US 6415373B1 · Peters · 2002 [cited by applicant]
US 6418539B1 · Walker · 2002 [cited by applicant]
US 6449688B1 · Peters · 2002 [cited by applicant]
US 6567948B2 · Steele · 2003 [cited by applicant]
US 6571282B1 · Bowman-Amuah · 2003 [cited by applicant]
US 6609223B1 · Wolfgang · 2003 [cited by applicant]
US 6718361B1 · Basani · 2004 [cited by applicant]
US 6760808B2 · Peters · 2004 [cited by applicant]
US 6785768B2 · Peters · 2004 [cited by applicant]
US 6785783B2 · Buckland · 2004 [cited by applicant]
US 6826711B2 · Moulton · 2004 [cited by applicant]
US 6879596B1 · Dooply · 2005 [cited by applicant]
US 7003688B1 · Pittelkow · 2006 [cited by applicant]
US 7024451B2 · Jorgenson · 2006 [cited by applicant]
US 7024609B2 · Wolfgang · 2006 [cited by applicant]
US 7080101B1 · Watson · 2006 [cited by applicant]
US 7103824B2 · Halford · 2006 [cited by applicant]
US 7103915B2 · Redlich · 2006 [cited by applicant]
US 7111115B2 · Peters · 2006 [cited by applicant]
US 7140044B2 · Redlich · 2006 [cited by applicant]
US 7146644B2 · Redlich · 2006 [cited by applicant]
US 7171493B2 · Shu · 2007 [cited by applicant]
US 7222133B1 · Raipurkar · 2007 [cited by applicant]
US 7240236B2 · Cutts · 2007 [cited by applicant]
US 7272613B2 · Sim · 2007 [cited by applicant]
US 7636724B2 · De La Torre · 2009 [cited by applicant]
US 7809979B2 · Mochizuki · 2010 [cited by applicant]
US 7992037B2 · Dubnicki · 2011 [cited by applicant]
US 8082390B1 · Fan · 2011 [cited by applicant]
US 9424132B2 · Volvovski · 2016 [cited by applicant]
US 20020062422A1 · Butterworth · 2002 [cited by applicant]
US 20020166079A1 · Ulrich · 2002 [cited by applicant]
US 20030018927A1 · Gadir · 2003 [cited by applicant]
US 20030037261A1 · Meffert · 2003 [cited by applicant]
US 20030065617A1 · Watkins · 2003 [cited by applicant]
US 20030084020A1 · Shu · 2003 [cited by applicant]
US 20040024963A1 · Talagala · 2004 [cited by applicant]
US 20040122917A1 · Menon · 2004 [cited by applicant]
US 20040215998A1 · Buxton · 2004 [cited by applicant]
US 20040228493A1 · Ma · 2004 [cited by applicant]
US 20050100022A1 · Ramprashad · 2005 [cited by applicant]
US 20050114594A1 · Corbett · 2005 [cited by applicant]
US 20050125593A1 · Karpoff · 2005 [cited by applicant]
US 20050131993A1 · Fatula, Jr. · 2005 [cited by applicant]
US 20050132070A1 · Redlich · 2005 [cited by applicant]
US 20050144382A1 · Schmisseur · 2005 [cited by applicant]
US 20050229069A1 · Hassner · 2005 [cited by applicant]
US 20060041534A1 · Atwell · 2006 [cited by applicant]
US 20060047907A1 · Shiga · 2006 [cited by applicant]
US 20060136448A1 · Cialini · 2006 [cited by applicant]
US 20060156059A1 · Kitamura · 2006 [cited by applicant]
US 20060224603A1 · Correll, Jr. · 2006 [cited by applicant]
US 20070002946A1 · Bouton · 2007 [cited by applicant]
US 20070074266A1 · Raveendran · 2007 [cited by applicant]
US 20070079081A1 · Gladwin · 2007 [cited by applicant]
US 20070079082A1 · Gladwin · 2007 [cited by applicant]
US 20070079083A1 · Gladwin · 2007 [cited by applicant]
US 20070088970A1 · Buxton · 2007 [cited by applicant]
US 20070174192A1 · Gladwin · 2007 [cited by applicant]
US 20070214285A1 · Au · 2007 [cited by applicant]
US 20070234110A1 · Soran · 2007 [cited by applicant]
US 20070283167A1 · Venters, III · 2007 [cited by applicant]
US 20090094251A1 · Gladwin · 2009 [cited by applicant]
US 20090094318A1 · Gladwin · 2009 [cited by applicant]
US 20090113237A1 · Ito · 2009 [cited by applicant]
US 20100023524A1 · Gladwin · 2010 [cited by applicant]
US 20110002983A1 · Dhuse · 2011 [cited by applicant]
US 20110029711A1 · Dhuse · 2011 [cited by applicant]
US 20110029743A1 · Grube · 2011 [cited by applicant]
US 20110029809A1 · Dhuse · 2011 [cited by applicant]
US 20110029836A1 · Dhuse · 2011 [cited by applicant]
US 20120054500A1 · Dhuse et al. · 2012 [cited by applicant]
US 20130151927A1 · Leggette · 2013 [cited by applicant]
US 20140351659A1 · Dhuse · 2014 [cited by applicant]
Chung; An Automatic Data Segmentation Method for 3D Measured Data Points; National Taiwan University; pp. 1-8; 1998. [cited by applicant]
European Patent Office; Extended European Search Report; EP Application No. 14819242.0; Feb. 10, 2017; 8 pgs. [cited by applicant]
Harrison; Lightweight Directory Access Protocol (LDAP): Authentication Methods and Security Mechanisms; IETF Network Working Group; RFC 4513; Jun. 2006; pp. 1-32. [cited by applicant]
International Searching Authority; International Search Report and Written Opinion; International Application No. PCT/US2014/044869; Nov. 19, 2014; 9 pgs. [cited by applicant]
Jay J. Wylie, Survivable Information Storage System, IEEE, pp. 61-68, Aug. 2000. [cited by applicant]
Kubiatowicz, et al.; OceanStore: An Architecture for Global-Scale Persistent Storage; Proceedings of the Ninth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS 20… [cited by applicant]
Legg; Lightweight Directory Access Protocol (LDAP): Syntaxes and Matching Rules; IETF Network Working Group; RFC 4517; Jun. 2006; pp. 1-50. [cited by applicant]
Plank, T1: Erasure Codes for Storage Applications; FAST2005, 4th Usenix Conference on File Storage Technologies; Dec. 13-16, 2005; pp. 1-74. [cited by applicant]
Rabin; Efficient Dispersal of Information for Security, Load Balancing, and Fault Tolerance; Journal of the Association for Computer Machinery; vol. 36, No. 2; Apr. 1989; pp. 335-348. [cited by applicant]
Satran, et al.; Internet Small Computer Systems Interface (iSCSI); IETF Network Working Group; RFC 3720; Apr. 2004; pp. 1-257. [cited by applicant]
Sciberras; Lightweight Directory Access Protocol (LDAP): Schema for User Applications; IETF Network Working Group; RFC 4519; Jun. 2006; pp. 1-33. [cited by applicant]
Sermersheim; Lightweight Directory Access Protocol (LDAP): The Protocol; IETF Network Working Group; RFC 4511; Jun. 2006; pp. 1-68. [cited by applicant]
Shamir; How to Share a Secret; Communications of the ACM; vol. 22, No. 11; Nov. 1979; pp. 612-613. [cited by applicant]
Smith; Lightweight Directory Access Protocol (LDAP): Uniform Resource Locator; IETF Network Working Group; RFC 4516; Jun. 2006; pp. 1-15. [cited by applicant]
Smith; Lightweight Directory Access Protocol (LDAP): String Representation of Search Filters; IETF Network Working Group; RFC 4515; Jun. 2006; pp. 1-12. [cited by applicant]
Wildi; Java iSCSi Initiator; Master Thesis; Department of Computer and Information Science, University of Konstanz; Feb. 2007; 60 pgs. [cited by applicant]
Xin, et al.; Evaluation of Distributed Recovery in Large-Scale Storage Systems; 13th IEEE International Symposium on High Performance Distributed Computing; Jun. 2004; pp. 172-181. [cited by applicant]
Zeilenga; Lightweight Directory Access Protocol (LDAP): Directory Information Models; IETF Network Working Group; RFC 4512; Jun. 2006; pp. 1-49. [cited by applicant]
Zeilenga; Lightweight Directory Access Protocol (LDAP): Internationalized String Preparation; IETF Network Working Group; RFC 4518; Jun. 2006; pp. 1-14. [cited by applicant]
Zeilenga; Lightweight Directory Access Protocol (LDAP): String Representation of Distinguished Names; IETF Network Working Group; RFC 4514; Jun. 2006; pp. 1-15. [cited by applicant]
Zeilenga; Lightweight Directory Access Protocol (LDAP): Technical Specification Road Map; IETF Network Working Group; RFC 4510; Jun. 2006; pp. 1-8. [cited by applicant]