IP Library Granted Patent US 12,298,854
Granted Patent B2
US 12,298,854 · App. 18/520,755 · Granted May 13, 2025

Storing data objects in a storage network with multiple memory types

Inventors: Andrew D. Baptist (Mt. Pleasant, WI); Wesley B. Leggette (Chicago, IL); Jason K. Resch (Warwick, RI)
Assignee: Pure Storage, Inc.
G06F11/1092G06F3/0604G06F3/0619G06F3/064G06F3/0644G06F3/067G06F11/1076G06F11/1088G06F2201/81G06F2211/1028G06F2211/1054H03M13/1515H03M13/616
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,298,854
App. No.
18/520,755
Granted
May 13, 2025
Kind
B2
Abstract

A processing system of a storage network operates by: selecting a queue memory type of a plurality of memory types to store a data object, based on a size parameter associated with the data object; storing the data object in a queue memory device having the queue memory type, when the queue memory type is selected; selecting a main memory type of a plurality of memory types to store the data object, when the queue memory type is not selected; and storing the data object in a main memory device having the main memory type, when the queue memory type is not selected; wherein the data object is dispersed error encoded and stored as a plurality of encoded data slices.

Claims (32)

1. A method for execution by a processing system that includes a processing circuit, the method comprises:

selecting a queue memory type of a plurality of memory types to store a data object, based on a size parameter associated with the data object;

storing the data object in a queue memory device having the queue memory type, when the queue memory type is selected;

selecting a main memory type of a plurality of memory types to store the data object, when the queue memory type is not selected; and

storing the data object in a main memory device having the main memory type, when the queue memory type is not selected;

wherein the data object is dispersed error encoded and stored as a plurality of encoded data slices.

2. The method of claim 1 , wherein the size parameter indicates a size associated with the data object.

3. The method of claim 1 , wherein the size parameter indicates temporary storage of the data object.

4. The method of claim 1 , wherein the plurality of memory types include a first memory type and a second memory type and wherein the first memory type has a lower latency compared with the second memory type.

5. The method of claim 1 , wherein the plurality of memory types include a first memory type and a second memory type and wherein the first memory type has a lower cost compared with the second memory type.

6. The method of claim 1 , wherein the queue memory device is implemented via a solid state memory device, and wherein the queue memory device has a lower latency compared to other memory devices associated with at least one other memory type.

7. The method of claim 1 , wherein the queue memory device is implemented via a solid state memory device, and wherein the queue memory device has a higher cost compared to other memory devices associated with at least one other memory type.

8. The method of claim 1 , wherein at least one other memory type of the plurality of memory types includes a main memory type.

9. The method of claim 8 , wherein other memory devices associated with the main memory type are implemented via random access memory devices.

10. The method of claim 9 , wherein the random access devices have a lower cost compared with the queue memory device.

11. A processing system of a storage network comprises:

at least one processor;

a memory that stores operational instructions, that when executed by the at least one processor cause the processing system to operations including:

selecting a queue memory type of a plurality of memory types to store a data object, based on a size parameter associated with the data object;

storing the data object in a queue memory device having the queue memory type, when the queue memory type is selected;

selecting a main memory type of a plurality of memory types to store the data object, when the queue memory type is not selected; and

storing the data object in a main memory device having the main memory type, when the queue memory type is not selected;

wherein the data object is dispersed error encoded and stored as a plurality of encoded data slices.

12. The processing system of claim 11 , the size parameter indicates a size associated with the data object.

13. The processing system of claim 11 , wherein the size parameter indicates temporary storage of the data object.

14. The processing system of claim 11 , wherein the plurality of memory types include a first memory type and a second memory type and wherein the first memory type has a lower latency compared with the second memory type.

15. The processing system of claim 11 , wherein the plurality of memory types include a first memory type and a second memory type and wherein the first memory type has a lower cost compared with the second memory type.

16. The processing system of claim 11 , wherein the queue memory device is implemented via a solid state memory device, and wherein the queue memory device has a lower latency compared to other memory devices associated with at least one other memory type.

17. The processing system of claim 11 , wherein the queue memory device is implemented via a solid state memory device, and wherein the queue memory device has a higher cost compared to other memory devices associated with at least one other memory type.

18. The processing system of claim 11 , wherein at least one other memory type of the plurality of memory types includes a main memory type.

19. The processing system of claim 18 , wherein other memory devices associated with the main memory type are implemented via random access memory devices.

20. The processing system of claim 19 , wherein the random access devices have a lower cost compared with the queue memory device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 28, 2023
From: BAPTIST, ANDREW D.; LEGGETTE, WESLEY B.; RESCH, JASON K.
To: PURE STORAGE, INC.
Reel/Frame 065687/0011 →
Continuity (8)
Continuation 17811168 · Jul 7, 2022
Continuation 17079891 · Oct 26, 2020
Continuation In Part 16244615 · Jan 10, 2019
Continuation 15439383 · Feb 22, 2017
Continuation In Part 15095558 · Apr 11, 2016
Continuation In Part 14088794 · Nov 25, 2013
Provisional Application 61748891 · Jan 4, 2013
Related Publication 20240095124A1 · Mar 21, 2024
References Cited (112)
US 4092732A · Ouchi · 1978 [cited by applicant]
US 4236207A · Rado · 1980 [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 7836364B1 · Sutardja · 2010 [cited by applicant]
US 8006128B2 · Olster · 2011 [cited by applicant]
US 8234545B2 · Shalvi · 2012 [cited by applicant]
US 8281220B2 · Kitahara · 2012 [cited by applicant]
US 9081712B2 · Kotzur · 2015 [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 · 2005 [cited by applicant]
US 20050132070A1 · Redlich · 2005 [cited by applicant]
US 20050144382A1 · Schmisseur · 2005 [cited by applicant]
US 20050210361A1 · Nagai · 2005 [cited by examiner]
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 · 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 20080034270A1 · Onishi · 2008 [cited by examiner]
US 20080072120A1 · Radke · 2008 [cited by examiner]
US 20080288814A1 · Kitahara · 2008 [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 20100031082A1 · Olster · 2010 [cited by applicant]
US 20100251075A1 · Takahashi · 2010 [cited by applicant]
US 20110044103A1 · Shiga · 2011 [cited by examiner]
US 20140089761A1 · Kwok · 2014 [cited by applicant]
US 20140136915A1 · Hyde · 2014 [cited by applicant]
US 20140181620A1 · Kotzur · 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]
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]