IP Library Granted Patent US 12,443,738
Granted Patent B2
US 12,443,738 · App. 18/592,681 · Granted Oct 14, 2025

Dynamic data storage based on estimated update frequency

Inventors: Ilya Volvovski (Chicago, IL); Wesley B. Leggette (Chicago, IL); Michael C. Storm (Palo Alto, CA); Jason K. Resch (Warwick, RI)
Assignee: Pure Storage, Inc.
G06F21/6218G06F11/00G06F21/6254G06F21/6272G06F21/6281H04L63/0823H04L63/104H04L63/12H04L63/20H04L67/1097G06F3/067G06F2221/2141H04L63/101
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,443,738
App. No.
18/592,681
Granted
Oct 14, 2025
Kind
B2
Abstract

A method for execution by a computing device to adjust efficiency of storing data in a storage network includes processing a data segment based on a storage approach to produce a processed data segment, where the storage approach is based on an estimated update frequency for the data segment. The method continues by storing the data segment in the memory of the storage network in accordance with the storage approach.

Claims (57)

1. A method for execution by a computing device to adjust efficiency of storing data in a storage network, the method comprises:

obtaining a data segment of the data for storage in memory of the storage network;

obtaining access level information regarding the data segment, wherein the access level information includes an estimated update frequency for the data segment;

processing the data segment based on a storage approach to produce a processed data segment, wherein the storage approach is based on the estimated update frequency of the data segment; and

storing the data segment in memory of the storage network in accordance with the storage approach.

2. The method of claim 1 , wherein the storing the data segment further comprises:

error encoding the processed data segment to produce a set of encoded data slices, wherein a decode threshold number of encoded data slices is needed to recover the processed data segment; and

storing the set of encoded data slices in the memory of the storage network in accordance with the storage approach.

3. The method of claim 1 further comprises:

when the estimated update frequency is less than an update frequency threshold:

determining a cost of decompression factor for the data segment, wherein the cost of decompression factor includes one or more of an estimated incremental processing resource level, and an estimated incremental network utilization reduction level as a result of decompressing the data segment; and

determining the storage approach based on the cost of decompression factor.

4. The method of claim 3 , wherein when the cost of decompression factor is less than or equal to a decompression factor threshold, the storage approach comprises a compression storage approach.

5. The method of claim 3 , wherein when the cost of decompression factor is greater than a decompression factor threshold, the storage approach comprises a non-compression storage approach.

6. The method of claim 1 further comprises:

obtaining access level information regarding the data segment, wherein the access level information includes an estimated retrieval frequency level for the data segment.

7. The method of claim 6 further comprises:

when the estimated retrieval frequency level for the data segment is less than or equal to a retrieval frequency threshold:

determining a cost of compression factor based on resource information, wherein the cost of compression factor includes one or more of an estimated incremental processing resource level, and an estimated incremental network utilization increase level as a result of compressing the data segment; and

determining the storage approach based on the cost of compression factor.

8. The method of claim 6 further comprises:

when the estimated retrieval frequency level for the data segment is greater than a retrieval frequency threshold:

determining a cost of compression factor based on resource information, wherein the cost of compression factor includes one or more of an estimated incremental processing resource level, and an estimated incremental network utilization reduction level as a result of compressing the data segment; and

determining the storage approach based on the cost of compression factor and the access level information.

9. The method of claim 8 , wherein the determining the cost of compression factor comprises one of:

determining the cost of compression factor is less than an average cost of compression factor when the resource information indicates a utilization level of the computing device is less than average; and

determining the cost of compression factor is greater than the average cost of compression factor when the resource information indicates the utilization level of the computing device is greater than average.

10. A computing device of a storage network configured to adjust efficiency of storing data in the storage network, the computing device comprises:

one or more non-transitory memories;

an interface; and

a processing module operably coupled to the one or more non-transitory memories and the interface, wherein the processing module is operable to:

obtain a data segment of the data for storage in memory of the storage network;

obtain access level information regarding the data segment, wherein the access level information includes an estimated update frequency for the data segment;

process the data segment based on a storage approach to produce a processed data segment, wherein the storage approach is based on the estimated update frequency of the data segment; and

store the data segment in the memory of the storage network in accordance with the storage approach.

11. The computing device of claim 10 , wherein the processing module is further operable to store the data segment by:

error encoding the processed data segment to produce a set of encoded data slices, wherein a decode threshold number of encoded data slices is needed to recover the processed data segment; and

sending, via the interface, the set of encoded data slices to the memory of the storage network for storage therein in accordance with the storage approach.

12. The computing device of claim 10 , wherein the processing module is further operable to:

when the estimated update frequency is less than an update frequency threshold:

determine a cost of decompression factor for the data segment, wherein the cost of decompression factor includes one or more of an estimated incremental processing resource level, and an estimated incremental network utilization reduction level as a result of decompressing the data segment; and

determine the storage approach based on the cost of decompression factor.

13. The computing device of claim 12 , wherein when the cost of decompression factor is less than or equal to a decompression factor threshold, the processing module is further operable to determine the storage approach comprises a compression storage approach.

14. The computing device of claim 12 , wherein when the cost of decompression factor is greater than a decompression factor threshold, the processing module is further operable to determine the storage approach comprises a non-compression storage approach.

15. The computing device of claim 10 , wherein the processing module is further operable to:

obtain access level information regarding the data segment, wherein the access level information includes an estimated retrieval frequency level for the data segment.

16. The computing device of claim 15 , wherein the processing module is further operable to:

when the estimated retrieval frequency level for the data segment is less than or equal to a retrieval frequency threshold:

determine a cost of compression factor based on resource information, wherein the cost of compression factor includes one or more of an estimated incremental processing resource level, and an estimated incremental network utilization increase level as a result of compressing the data segment; and

determine the storage approach based on the cost of compression factor.

17. The computing device of claim 15 , wherein the processing module is further operable to:

when the estimated retrieval frequency level for the data segment is greater than a retrieval frequency threshold:

determine a cost of compression factor based on resource information, wherein the cost of compression factor includes one or more of an estimated incremental processing resource level, and an estimated incremental network utilization reduction level as a result of compressing the data segment; and

determine the storage approach based on the cost of compression factor and the access level information.

18. The computing device of claim 17 , wherein the processing module is further operable to determine the cost of compression factor by one of:

determining the cost of compression factor is less than an average cost of compression factor when the resource information indicates a utilization level of the computing device is less than average; and

determining the cost of compression factor is greater than the average cost of compression factor when the resource information indicates the utilization level of the computing device is greater than average.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 11, 2024
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 066781/0102 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 8, 2024
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 066763/0939 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 7, 2024
From: VOLVOVSKI, ILYA; LEGGETTE, WESLEY B.; RESCH, JASON K.
To: PURE STORAGE, INC.
Reel/Frame 066675/0741 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 7, 2024
From: STORM, MICHAEL C.
To: CLEVERSAFE, INC.
Reel/Frame 066675/0765 →
Continuity (8)
Continuation 18105616 · Feb 3, 2023
Continuation 17247417 · Dec 10, 2020
Continuation 16883902 · May 26, 2020
Continuation 16197235 · Nov 20, 2018
Continuation In Part 15721093 · Sep 29, 2017
Continuation 14610220 · Jan 30, 2015
Provisional Application 61974142 · Apr 2, 2014
Related Publication 20240202354A1 · Jun 20, 2024
References Cited (166)
US 4092732A · Ouchi · 1978 [cited by applicant]
US 5454101A · Mackay · 1995 [cited by applicant]
US 5485474A · Rabin · 1996 [cited by applicant]
US 5682273A · Hetzler · 1997 [cited by examiner]
US 5732062A · Yokoi · 1998 [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 5825880A · Sudia · 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 7225211B1 · Colgrove · 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 8300506B1 · Kivits · 2012 [cited by applicant]
US 9235590B1 · Wang · 2016 [cited by applicant]
US 9336139B2 · Grube · 2016 [cited by applicant]
US 9658911B2 · Resch · 2017 [cited by applicant]
US 9825652B1 · Lazier · 2017 [cited by applicant]
US 10095872B2 · Volvovski · 2018 [cited by applicant]
US 10359935B2 · Resch · 2019 [cited by applicant]
US 10360180B2 · Vas · 2019 [cited by applicant]
US 20010055388A1 · Kaliski · 2001 [cited by applicant]
US 20020013898A1 · Sudia · 2002 [cited by applicant]
US 20020062422A1 · Butterworth · 2002 [cited by applicant]
US 20020118307A1 · Lee · 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 20040103276A1 · Jing · 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 20050132202A1 · Dillaway · 2005 [cited by applicant]
US 20050144382A1 · Schmisseur · 2005 [cited by applicant]
US 20050229069A1 · Hassner · 2005 [cited by applicant]
US 20060023887A1 · Agrawal · 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 20060184565A1 · Nishikawa · 2006 [cited by examiner]
US 20060193475A1 · Borke · 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 20070223706A1 · Gantman · 2007 [cited by applicant]
US 20070234110A1 · Soran · 2007 [cited by applicant]
US 20070271427A1 · Miyoshi · 2007 [cited by applicant]
US 20070283167A1 · Venters · 2007 [cited by applicant]
US 20080052506A1 · Lima · 2008 [cited by applicant]
US 20080126784A1 · Lima · 2008 [cited by applicant]
US 20080172525A1 · Nakamura · 2008 [cited by applicant]
US 20080205206A1 · Sun · 2008 [cited by applicant]
US 20090037512A1 · Barsness · 2009 [cited by applicant]
US 20090094251A1 · Gladwin · 2009 [cited by applicant]
US 20090094318A1 · Gladwin · 2009 [cited by applicant]
US 20090112823A1 · Aharonov · 2009 [cited by applicant]
US 20090299973A1 · Kataoka · 2009 [cited by applicant]
US 20100023524A1 · Gladwin · 2010 [cited by applicant]
US 20100037056A1 · Follis · 2010 [cited by applicant]
US 20100095012A1 · Zuckerman · 2010 [cited by applicant]
US 20100095014A1 · Zuckerman · 2010 [cited by applicant]
US 20100185864A1 · Gerdes · 2010 [cited by applicant]
US 20100235588A1 · Maeda · 2010 [cited by applicant]
US 20100275027A1 · Belrose · 2010 [cited by applicant]
US 20100306498A1 · Shiga · 2010 [cited by applicant]
US 20110093670A1 · Cherian · 2011 [cited by applicant]
US 20110138270A1 · Li · 2011 [cited by applicant]
US 20110145486A1 · Owa · 2011 [cited by applicant]
US 20110214011A1 · Grube · 2011 [cited by applicant]
US 20110225362A1 · Leggette · 2011 [cited by applicant]
US 20110261813A1 · Baptist · 2011 [cited by applicant]
US 20110264717A1 · Grube et al. · 2011 [cited by applicant]
US 20110264989A1 · Resch et al. · 2011 [cited by applicant]
US 20110289577A1 · Resch · 2011 [cited by applicant]
US 20120030413A1 · Miyagawa · 2012 [cited by applicant]
US 20120054456A1 · Grube · 2012 [cited by applicant]
US 20120137091A1 · Grube et al. · 2012 [cited by applicant]
US 20120137095A1 · Grube · 2012 [cited by applicant]
US 20120216035A1 · Leggette · 2012 [cited by applicant]
US 20120290830A1 · Resch · 2012 [cited by applicant]
US 20130086642A1 · Resch · 2013 [cited by applicant]
US 20130232378A1 · Resch · 2013 [cited by applicant]
US 20130232503A1 · Volvovski · 2013 [cited by applicant]
US 20130326215A1 · Leggette · 2013 [cited by applicant]
US 20140006364A1 · Eguchi · 2014 [cited by applicant]
US 20140074834A1 · Pike · 2014 [cited by applicant]
US 20140281260A1 · Peterson · 2014 [cited by examiner]
US 20140289486A1 · Katori · 2014 [cited by examiner]
US 20140297776A1 · Volvovski · 2014 [cited by applicant]
US 20140351457A1 · Baptist · 2014 [cited by applicant]
US 20140351659A1 · Dhuse · 2014 [cited by applicant]
US 20150006952A1 · Trichardt · 2015 [cited by applicant]
US 20150127406A1 · Hoen · 2015 [cited by applicant]
US 20150128249A1 · Alexandrian · 2015 [cited by applicant]
US 20150286833A1 · Resch · 2015 [cited by applicant]
US 20150355979A1 · Volvovski · 2015 [cited by applicant]
US 20160021020A1 · Deguchi · 2016 [cited by applicant]
US 20170063399A1 · Richardson · 2017 [cited by applicant]
US 20170371542A1 · Dhuse · 2017 [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]