IP Library Granted Patent US 12,335,038
Granted Patent B2
US 12,335,038 · App. 18/499,289 · Granted Jun 17, 2025

Ingesting and storing data in a massive data ingestion system

Inventors: S. Christopher Gladwin (Chicago, IL); Greg R. Dhuse (Chicago, IL); Timothy W. Markison (Mesa, AZ); Wesley B. Leggette (Chicago, IL); Jason K. Resch (Warwick, RI); Gary W. Grube (Barrington Hills, IL)
Assignee: Pure Storage, Inc.
H04L1/0076G06F3/0619G06F3/064G06F3/067G06F11/1076G06F11/2053H03M13/05H04L1/0041H04L1/0057H04L67/1097H03M13/1515H03M13/3761H03M13/611H04L69/40
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,335,038
App. No.
18/499,289
Granted
Jun 17, 2025
Kind
B2
Abstract

A method for execution by one or more computing devices of a massive data ingestion system includes receiving data for storage in the massive data ingestion system. The method further includes storing a data segment of the data in a cache memory of the massive data ingestion system. The method further includes retrieving, based on one or more retrieval parameters, the data segment from the cache memory. The method further includes error encoding, in accordance with error encoding parameters, the data segment to produce a set of encoded data slices, wherein the error encoding parameters include a pillar width number and a decode threshold number, and wherein the decode threshold number is a minimum number of encoded data slices needed to reconstruct the data segment. The method further includes storing the set of encoded data slices in a set of storage units of the massive data ingestion system.

Claims (39)

1. A method for execution by one or more computing devices of a massive data ingestion system, the method comprising:

receiving data for storage in the massive data ingestion system;

storing a data segment of the data in a cache memory of the massive data ingestion system;

retrieving, based on one or more retrieval parameters, the data segment from the cache memory;

error encoding, in accordance with error encoding parameters, the data segment to produce a set of encoded data slices, wherein the error encoding parameters include a pillar width number and a decode threshold number, and wherein the decode threshold number is a minimum number of encoded data slices needed to reconstruct the data segment; and

storing the set of encoded data slices in a set of storage units of the massive data ingestion system.

2. The method of claim 1 , wherein a retrieval parameter of the one or more retrieval parameters comprises a schedule.

3. The method of claim 1 , wherein a retrieval parameter of the one or more retrieval parameters comprises a fixed time.

4. The method of claim 1 , wherein a retrieval parameter of the one or more retrieval parameters comprises a time that the data was stored in the cache memory.

5. The method of claim 1 , wherein a retrieval parameter of the one or more retrieval parameters comprises a data identifier associated with the data segment.

6. The method of claim 1 , wherein a retrieval parameter of the one or more retrieval parameters comprises an error message.

7. The method of claim 1 , wherein a retrieval parameter of the one or more retrieval parameters comprises a cache memory capacity indicator.

8. The method of claim 1 , wherein a retrieval parameter of the one or more retrieval parameters comprises a cache memory capacity threshold.

9. The method of claim 1 further comprises:

determining the set of encoded data slices is successfully stored in the set of storage units; and

deleting the data segment from the cache memory.

10. The method of claim 9 further comprises:

updating a directory to disassociate a data identifier of the data segment with the cache memory.

11. A computing device of a massive data ingestion system, the computing device comprises:

memory;

an interface; and

a processing module operably coupled to the memory and the interface, wherein the processing module is operable to:

receive, via the interface, data for storage in the massive data ingestion system;

store a data segment of the data in a cache memory of the massive data ingestion system;

retrieve, via the interface and based on one or more retrieval parameters, the data segment from the cache memory;

error encode, in accordance with error encoding parameters, the data segment to produce a set of encoded data slices, wherein the error encoding parameters include a pillar width number and a decode threshold number, and wherein the decode threshold number is a minimum number of encoded data slices needed to reconstruct the data segment; and

store the set of encoded data slices in a set of storage units of the massive data ingestion system.

12. The computing device of claim 11 , wherein the processing module is further operable to determine a retrieval parameter of the one or more retrieval parameters is a schedule.

13. The computing device of claim 11 , wherein the processing module is further operable to determine a retrieval parameter of the one or more retrieval parameters is a fixed time.

14. The computing device of claim 11 , wherein the processing module is further operable to determine a retrieval parameter of the one or more retrieval parameters is a time that the data was stored in the cache memory.

15. The computing device of claim 11 , wherein the processing module is further operable to determine a retrieval parameter of the one or more retrieval parameters comprises a data identifier associated with the data segment.

16. The computing device of claim 11 , wherein the processing module is further operable to determine a retrieval parameter of the one or more retrieval parameters comprises an error message.

17. The computing device of claim 11 , wherein the processing module is further operable to determine a retrieval parameter of the one or more retrieval parameters comprises a cache memory capacity indicator.

18. The computing device of claim 11 , wherein the processing module is further operable to determine a retrieval parameter of the one or more retrieval parameters comprises a cache memory capacity threshold.

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

determine the set of encoded data slices is successfully stored in the set of storage units; and

delete the data segment from the cache memory.

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

update a directory to disassociate a data identifier of the data segment with the cache memory.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 2, 2023
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 065431/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 1, 2023
From: GLADWIN, S. CHRISTOPHER; DHUSE, GREG R.; MARKISON, TIMOTHY W.; LEGGETTE, WESLEY B.; RESCH, JASON K.; GRUBE, GARY W.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 065417/0865 →
Continuity (7)
Continuation 17363281 · Jun 30, 2021
Continuation 16860302 · Apr 28, 2020
Continuation 15805811 · Nov 7, 2017
Continuation In Part 15213329 · Jul 18, 2016
Continuation 13919566 · Jun 17, 2013
Provisional Application 61679000 · Aug 2, 2012
Related Publication 20240063946A1 · Feb 22, 2024
References Cited (111)
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 7581158B2 · Alstrup · 2009 [cited by applicant]
US 7636724B2 · De La Torre · 2009 [cited by applicant]
US 8656253B2 · Leggette · 2014 [cited by examiner]
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 20060212782A1 · Li · 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 20080244353A1 · Dholakia · 2008 [cited by applicant]
US 20090094251A1 · Gladwin · 2009 [cited by applicant]
US 20090094318A1 · Gladwin · 2009 [cited by applicant]
US 20090132851A1 · Pruthi · 2009 [cited by applicant]
US 20100023524A1 · Gladwin · 2010 [cited by applicant]
US 20100199089A1 · Vysogorets · 2010 [cited by applicant]
US 20100218037A1 · Swartz · 2010 [cited by applicant]
US 20100287200A1 · Dhuse · 2010 [cited by applicant]
US 20110078277A1 · Baptist · 2011 [cited by applicant]
US 20120278587A1 · Caufield · 2012 [cited by applicant]
US 20120311068A1 · Gladwin · 2012 [cited by examiner]
US 20130145173A1 · Shablygin · 2013 [cited by applicant]
US 20140122639A1 · Baptist · 2014 [cited by examiner]
US 20150154074A1 · Resch · 2015 [cited by applicant]
Chung; An Automatic Data Segmentation Method for 3D Measured Data Points; National Taiwan University; pp. 1-8; 1998. [cited by applicant]
Cleversafe launches Hadoop without HDFS; online new article published in Jul. 2012. [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]