IP Library Granted Patent US 12,072,763
Granted Patent B2
US 12,072,763 · App. 17/661,437 · Granted Aug 27, 2024

Utilizing memories of different operational speeds in a vast storage network

Inventors: Bruno H. Cabral (Chicago, IL); Joseph M. Kaczmarek (Chicago, IL); Ravi V. Khadiwala (Bartlett, IL); Ilya Volvovski (Chicago, IL); Manish Motwani (Chicago, IL); Ethan S. Wozniak (Park Ridge, IL)
Assignee: Pure Storage, Inc.
G06F11/1076G06F3/061G06F3/0619G06F3/0629G06F3/0635G06F3/064G06F3/0644G06F3/0665G06F3/067G06F3/0689G06F9/4881G06F9/5083G06F11/108G06F11/1092G06F11/1402G06F11/1464G06F12/0866G06F12/0891G06F15/17331H03M13/1105H03M13/1515H03M13/3761H04L67/1097G06F2201/84G06F2211/1007G06F2212/1024G06F2212/154G06F2212/263G06F2212/403H03M13/616H03M13/6502H04L61/457H04L63/101H04L2101/604
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,072,763
App. No.
17/661,437
Granted
Aug 27, 2024
Kind
B2
Abstract

A computing device includes an interface configured to interface and communicate with a storage network, a memory that stores operational instructions, and a processing module operably coupled to the interface and memory such that the processing module, when operable within the computing device based on the operational instructions, is configured to perform various operations. A computing device receives a data access request for an encoded data slice associated with a data object, determines whether the encoded data slice is stored in the first memory and in response to a determination that the encoded data slice is not stored in the first memory, issues another data access request for the encoded data slice to a second memory, where the first memory includes access characteristics that are faster than the second memory. When a data access response including the encoded data slice is received from the second memory, a response including the encoded data slice is transmitted.

Claims (49)

1. A storage unit comprising:

an interface configured to interface and communicate with a storage network;

a first memory;

a second memory;

a third memory that stores operational instructions; and

a processing module operably coupled to the interface and to the third memory, wherein the processing module, when operable within the storage unit based on the operational instructions, is configured to:

receive, via the storage network, a data access request for an encoded data slice associated with a data object;

determine whether the encoded data slice is stored in the first memory; and

in response to a determination that the encoded data slice is not stored in the first memory:

issue another data access request for the encoded data slice to the second memory, wherein the first memory includes access characteristics that are faster than the second memory;

receive a data access response from the second memory, wherein the data access response includes the encoded data slice; and

transmit a response, via the storage network, wherein the response includes the encoded data slice.

2. The storage unit of claim 1 , wherein the processing module is further configured to:

in response to a determination that the encoded data slice is stored in the first memory:

retrieve the encoded data slice from the first memory; and

transmit a response, via the storage network, wherein the response includes the encoded data slice.

3. The storage unit of claim 1 , wherein the processing module is further configured to:

store the encoded data slice in the first memory.

4. The storage unit of claim 1 , wherein the data access request includes an encoded data slice identifier for the encoded data slice.

5. The storage unit of claim 4 , wherein the determination whether the encoded data slice is stored in the second memory is based on the encoded data slice identifier.

6. The storage unit of claim 4 , wherein the processing module is further configured to:

compare the encoded data slice identifier with a plurality of encoded data slice identifiers stored within the second memory, wherein the plurality of encoded data slice identifiers are associated with a corresponding plurality of encoded data slices stored within the first memory.

7. The storage unit of claim 6 , wherein an encoded data slice identifier of the plurality of corresponding encoded data slice identifiers stored in the first memory includes information sufficient to identify a revision for an encoded data slice stored in the second memory.

8. A method for execution by a computing device, the method comprising:

receiving, via an interface of the computing device configured to interface and communicate with a storage network, a data access request for an encoded data slice associated with a data object;

determining whether the encoded data slice is stored in a first memory; and

in response to a determination that the encoded data slice is not stored in the first memory:

issuing another data access request for the encoded data slice to a second memory, wherein the first memory includes access characteristics that are faster than the second memory, wherein the first memory and the second memory are associated with a same storage unit;

receiving a data access response from the second memory, wherein the data access response includes the encoded data slice; and

transmitting a response, via the storage network, wherein the response includes the encoded data slice.

9. The method of claim 8 , further comprising:

in response to a determination that the encoded data slice is stored in the first memory:

retrieving the encoded data slice from the first memory; and

transmitting a response, via the storage network, wherein the response includes the encoded data slice.

10. The method of claim 8 , further comprising:

storing the encoded data slice in the first memory.

11. The method of claim 8 , wherein the data access request includes an encoded data slice identifier for the encoded data slice.

12. The method of claim 11 , wherein the determination whether the encoded data slice is stored in the second memory is based on the encoded data slice identifier.

13. The method of claim 12 , further comprising:

comparing the encoded data slice identifier with a plurality of encoded data slice identifiers stored within the second memory, wherein the plurality of encoded data slice identifiers are associated with a corresponding plurality of encoded data slices stored within the first memory.

14. The method of claim 13 , wherein an encoded data slice identifier of the plurality of corresponding encoded data slice identifiers stored in the first memory includes information sufficient to identify a revision for an encoded data slice stored in the second memory.

15. The method of claim 8 , wherein the computing device is located at a first premises that is remotely located from at least one storage unit of a plurality of storage units that includes the storage unit within the storage network; wherein the storage distributedly stores a set of encoded data slices that includes the encoded data slice.

16. A non-transient computer readable medium containing program instructions for causing a computer to perform the method of:

receiving, via an interface of the computing device configured to interface and communicate with a storage network, a data access request for an encoded data slice associated with a data object;

determining whether the encoded data slice is stored in the first memory; and

in response to a determination that the encoded data slice is not stored in the first memory:

issuing another data access request for the encoded data slice to a second memory, wherein the first memory and the second memory are associated with a same storage unit, wherein the first memory includes access characteristics that are faster than the second memory;

receiving a data access response from the second memory, wherein the data access response includes the encoded data slice; and

transmitting a response, via the storage network, wherein the response includes the encoded data slice.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 23, 2022
From: CABRAL, BRUNO H.; KACZMAREK, JOSEPH M.; KHADIWALA, RAVI V.; VOLVOVSKI, ILYA; MOTWANI, MANISH; WOZNIAK, ETHAN S.
To: PURE STORAGE, INC.
Reel/Frame 059978/0620 →
Continuity (5)
Continuation In Part 17099916 · Nov 17, 2020
Continuation 16169628 · Oct 24, 2018
Continuation 15362615 · Nov 28, 2016
Provisional Application 62260735 · Nov 30, 2015
Related Publication 20220261155A1 · Aug 18, 2022