IP Library Granted Patent US 12,222,812
Granted Patent B2
US 12,222,812 · App. 18/333,780 · Granted Feb 11, 2025

Dynamic storage of encoded data slices in multiple vaults

Inventor: S. Christopher Gladwin (Chicago, IL)
Assignee: Pure Storage, Inc.
G06F11/1092G06F3/0608G06F3/0619G06F3/0652G06F3/067G06F16/27
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,222,812
App. No.
18/333,780
Granted
Feb 11, 2025
Kind
B2
Abstract

A method for execution by one or more computing devices of a storage network includes error encoding data into a set of encoded data slices. The method further includes storing the set of encoded data slices in first storage units of a first vault in accordance with first error encoding parameters. The method further includes initiating storage of the set of encoded data slices in second storage units of a second vault in accordance with second error encoding parameters. When a decode threshold number of encoded data slices of the set of encoded data slices are stored in the second vault, the method further includes deleting one or more encoded data slices of the set of encoded data slices stored in the first vault.

Claims (46)

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

error encoding data into a set of encoded data slices;

storing the set of encoded data slices in first storage units of a first vault in accordance with first error encoding parameters;

initiating storage of the set of encoded data slices in second storage units of a second vault in accordance with second error encoding parameters; and

when a decode threshold number of encoded data slices of the set of encoded data slices are stored in the second vault, deleting one or more encoded data slices of the set of encoded data slices stored in the first vault.

2. The method of claim 1 further comprises:

receiving, from a requesting computing device, a request for the data;

facilitating retrieval of the data by:

obtaining at least some of encoded data slices of the set of encoded data slices in the first vault; and

when a first number of the at least some of the encoded data slices is less than the decode threshold number, obtaining a threshold number of other encoded data slices of the set of encoded data slices stored in the second vault, wherein the threshold number is greater than or equal to a difference between the decode threshold number and the first number.

3. The method of claim 2 further comprises:

decoding the obtained encoded data slices to recover the data; and

sending the data to the requesting computing device.

4. The method of claim 1 , wherein the first vault includes memory of a first memory type and the second vault includes memory of a second memory type.

5. The method of claim 4 , wherein a memory type of the first and second memory types comprises one of:

a solid state memory; and

a magnetic disk memory.

6. The method of claim 4 , wherein the memory type comprises one of:

a local memory; and

a geographically diverse memory.

7. The method of claim 1 , wherein the first storage units are affiliated with first storage characteristics and the second storage units are affiliated with second storage characteristics.

8. The method of claim 7 , wherein a storage characteristic of the first and second storage characteristics comprises a memory type.

9. The method of claim 7 , wherein a storage characteristic of the first and second storage characteristics comprises a storage performance level.

10. The method of claim 7 , wherein a storage characteristic of the first and second storage characteristics comprises a storage reliability level.

11. The method of claim 7 , wherein a storage characteristic of the first and second storage characteristics comprises a storage availability level.

12. The method of claim 7 , wherein a storage characteristic of the first and second storage characteristics comprises a communication link data rate.

13. The method of claim 1 , wherein an error encoding parameter of the first and second error encoded parameters comprises an information dispersal algorithm width.

14. The method of claim 1 , wherein an error encoding parameter of the first and second error encoded parameters comprises an encoding matrix.

15. The method of claim 1 , wherein an error encoding parameter of the first and second error encoded parameters comprises an error coding function identifier.

16. The method of claim 1 , wherein an error encoding parameter of the first and second error encoded parameters comprises a write threshold number.

17. A non-transitory computer readable storage medium comprises:

at least one memory section for storing operational instructions that, when executed by one or more computing devices of a storage network, cause the one or more computing devices to:

error encode data into a set of encoded data slices;

store the set of encoded data slices in first storage units of a first vault in accordance with first error encoding parameters;

initiate storage of the set of encoded data slices in second storage units of a second vault in accordance with second error encoding parameters; and

when a decode threshold number of encoded data slices of the set of encoded data slices are stored in the second vault, delete one or more encoded data slices of the set of encoded data slices stored in the first vault.

18. The non-transitory computer readable storage medium of claim 17 , wherein the at least one memory section stores further operational instructions that, when executed by the one or more computing devices, cause the one or more computing devices to:

receive, from a requesting computing device, a request for the data; and

facilitate retrieval of the data by:

obtaining at least some of encoded data slices of the set of encoded data slices in the first vault; and

when a first number of the at least some of the encoded data slices is less than the decode threshold number, obtaining a threshold number of other encoded data slices of the set of encoded data slices stored in the second vault, wherein the threshold number is greater than or equal to a difference between the decode threshold number and the first number.

19. The non-transitory computer readable storage medium of claim 18 , wherein the at least one memory section stores further operational instructions that, when executed by the one or more computing devices, cause the one or more computing devices to:

decode the obtained encoded data slices to recover the data; and

send the data to the requesting computing device.

20. The non-transitory computer readable storage medium of claim 17 , wherein the at least one memory section stores further operational instructions that, when executed by the one or more computing devices, cause the one or more computing devices to:

determine the first vault includes memory of a first memory type and the second vault includes memory of a second memory type.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2023
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 064007/0004 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 15, 2023
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 064002/0710 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 14, 2023
From: GLADWIN, S. CHRISTOPHER
To: CLEVERSAFE, INC.
Reel/Frame 063949/0351 →
Continuity (8)
Continuation 17807360 · Jun 16, 2022
Continuation 17067482 · Oct 9, 2020
Continuation 16392126 · Apr 23, 2019
Continuation In Part 15843637 · Dec 15, 2017
Continuation In Part 15671746 · Aug 8, 2017
Continuation In Part 14955200 · Dec 1, 2015
Provisional Application 62109700 · Jan 30, 2015
Related Publication 20230333931A1 · Oct 19, 2023
References Cited (110)
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 · Nikolaevich · 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 8612827B2 · Gladwin et al. · 2013 [cited by applicant]
US 9229772B2 · Kojima · 2016 [cited by examiner]
US 10802915B2 · Gladwin · 2020 [cited by applicant]
US 11385964B1 · Gladwin · 2022 [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 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 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 20100023524A1 · Gladwin · 2010 [cited by applicant]
US 20110311051A1 · Resch · 2011 [cited by applicant]
US 20120198537A1 · Grube · 2012 [cited by applicant]
US 20130117560A1 · Resch · 2013 [cited by applicant]
US 20150127902A1 · Shah · 2015 [cited by applicant]
US 20160255150A1 · Dhuse · 2016 [cited by applicant]
US 20160328296A1 · Abhijeet et al. · 2016 [cited by applicant]
US 20170019466A1 · Dhuse et al. · 2017 [cited by applicant]
US 20170310754A1 · Baptist · 2017 [cited by applicant]
US 20190026304A1 · Jenkins · 2019 [cited by applicant]
US 20200034339A1 · Gershaneck · 2020 [cited by applicant]
Chung; An Automatic Data Segmentation Method for 3D Measured Data Points; National Taiwan University; pp. 1-8; 1998. [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]
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]