IP Library Granted Patent US 12,388,908
Granted Patent B2
US 12,388,908 · App. 18/617,363 · Granted Aug 12, 2025

Cache retrieval based on tiered data

Inventor: Cheryl Thompson (Sunnyvale, CA)
Assignee: NETAPP, INC.
H04L67/568G06F3/0605G06F3/0638G06F3/067G06F12/0866
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,388,908
App. No.
18/617,363
Granted
Aug 12, 2025
Kind
B2
Abstract

A system, method, and machine-readable storage medium for retrieving data are provided. In some embodiments, a cache may receive a request for data from a client. The cache may determine that a first subset of the data is stored on a storage device and that a second subset of the data is stored at a cloud address located at a cloud storage endpoint. The cache may also receive from the storage device the first subset of data. The cache further receives from the cloud storage endpoint the second subset of data in response to transmitting a request for the second subset of data stored at the cloud address to the cloud storage endpoint. The cache then transmits to the client the first and second subsets of data from the various sources in response to the data request.

Claims (49)

1. A method comprising:

receiving, by a cache from a client, a request for data, the cache being remote from the client and located in a data storage device of a first storage system;

transmitting, by the cache to an origin volume that is remote from the client and the cache and located in a data storage device of a second storage system remote from the first storage system, a local data request indicating to the second storage system to return a first subset of data to the cache and to return a cloud address at which a second subset of data is stored at a cloud storage endpoint that is remote from the client, the cache, and the origin volume;

receiving, by the cache from the origin volume, the first subset of data in response to transmitting the local data request for the data stored on the origin volume;

receiving, by the cache from the cloud storage endpoint, the second subset of data in response to transmitting a request for the second subset of data stored at the cloud address to the cloud storage endpoint; and

transmitting, by the cache to the client, the first and second subsets of data in response to the request for data.

2. The method of claim 1 , further comprising:

storing, by the cache, the cloud address and an association between the cloud address and the second subset of data; and

in response to a further request for data that includes the second subset of data, retrieving, by the cache, the second subset of data from the cloud storage endpoint using the cloud address and without requesting the cloud address from the origin volume.

3. The method of claim 1 , wherein the cloud address includes a cloud physical volume block number (PVBN).

4. The method of claim 1 , further comprising:

storing, by the cache, the first subset of the data, the first subset being stored at a solid-state drive (SSD) address of an SSD of the second storage system or a hard disk drive (HDD) address of an HDD of the second storage system.

5. The method of claim 1 , further comprising:

transmitting, by the cache to the cloud storage endpoint, the request for the second subset of data stored at the cloud address.

6. The method of claim 1 , wherein the second data subset is stored on a cloud storage device located in the cloud storage endpoint.

7. The method of claim 1 , wherein the second storage system includes a plurality of SSDs, and at least one SSD of the plurality stores the first subset of data.

8. The method of claim 1 , further comprising:

transmitting, based on a storage policy specifying storage of data retrieved from sequential reads from the cloud storage endpoint, the second subset of data to the origin volume based on whether the second data subset is based on a sequential read.

9. The method of claim 1 , further comprising:

determining, by the cache, that the first subset of data is stored on the origin volume and that the second subset of the data is stored at the cloud address located at the cloud storage endpoint.

10. The method of claim 1 , further comprising:

storing, based on a storage policy, the second data subset into the cache, wherein the second data subset is thereby stored in both the cloud storage endpoint and in the cache.

11. A non-transitory machine-readable medium having stored thereon instructions for performing a method of retrieving data, comprising machine executable code which when executed by at least one machine, causes the machine to:

receive, by a cache from a host device, a request for data, wherein the cache is external to the host device and located in a data storage device of a first storage system;

transmit, by the cache to an origin volume that is external to the cache and the host device and located in a data storage device of a second storage system external to the first storage system, a local data request specifying the second storage system to return a first portion of the data stored at the origin volume and to return a cloud address at which a second portion of the data is stored on a cloud storage endpoint;

transmit, by the cache to the cloud storage endpoint that is remote from the cache, the origin volume, and the host device, a request for the second portion stored at the cloud address;

receive, by the cache, the first and second portions of the data; and

transmit, by the cache to the host device, the first and second portions of the data in response to the request for data.

12. The non-transitory machine-readable medium of claim 11 , further comprising code, which causes the machine to:

transmit, based on a storage policy specifying storage of data retrieved from sequential reads from the cloud storage endpoint, the second portion of data to the origin volume based on whether the second data portion is based on a sequential read.

13. The non-transitory machine-readable medium of claim 11 , wherein the cloud address includes a cloud physical volume block number (PVBN).

14. The non-transitory machine-readable medium of claim 11 , further comprising code, which causes the machine to:

store, by the cache, the first portion of the data, the first portion being stored at a solid-state drive (SSD) address of an SSD of the second storage system.

15. The non-transitory machine-readable medium of claim 11 , wherein the second data portion is stored on a cloud storage device located in the cloud storage endpoint.

16. A computing device comprising:

a memory containing a machine-readable medium comprising machine executable code having stored thereon instructions for performing a method of retrieving data; and

a processor coupled to the memory, the processor configured to execute the machine executable code to:

receive, by a cache from a client, a request for data, the cache being remote from the client and located in a data storage device of a first storage system;

transmit, by the cache to an origin volume that is remote from the cache and the client and located in a data storage device of a second storage system remote from the first storage system, a local data request indicating to the second storage system to return a first subset of data and to return a cloud address at which a second subset of data is stored at a cloud storage endpoint that is remote from the cache, the origin volume, and the client;

receive, by the cache, the first subset from the origin volume and the second subset from the cloud storage endpoint; and

transmit, by the cache to the client, the first and second subsets of data in response to the request for data.

17. The computing device of claim 16 , wherein the processor is configured to execute the machine executable code to:

receive, by the cache, the cloud address from the origin volume.

18. The computing device of claim 16 , wherein the processor is configured to execute the machine executable code to:

transmit, by the cache to the cloud storage endpoint, a request for the second subset of the data stored at the cloud address after receiving the cloud address from the origin volume.

19. The computing device of claim 16 , wherein the processor is further configured to:

determine that the first subset of data is stored on the origin volume and that the second subset of data is stored at the cloud address located at the cloud storage endpoint.

20. The computing device of claim 16 , wherein:

the local data request further indicates to the origin volume to return an object name of an object storing the second subset of data at the cloud storage endpoint.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 25, 2024
From: THOMPSON, CHERYL
To: NETAPP, INC.
Reel/Frame 067828/0045 →
Continuity (2)
Continuation 16825946 · Mar 20, 2020
Related Publication 20240305696A1 · Sep 12, 2024
References Cited (12)
US 8832330B1 · Lancaster · 2014 [cited by applicant]
US 10042768B1 · Karnowski et al. · 2018 [cited by applicant]
US 10462012B1 · Rao · 2019 [cited by examiner]
US 11943314B2 · Thompson · 2024 [cited by applicant]
US 20050210203A1 · Stenstrom · 2005 [cited by applicant]
US 20050262103A1 · Stakutis et al. · 2005 [cited by applicant]
US 20140032850A1 · Phelan · 2014 [cited by examiner]
US 20150254196A1 · Sukonik et al. · 2015 [cited by applicant]
US 20170235485A1 · Davis et al. · 2017 [cited by applicant]
US 20190129855A1 · Kelly · 2019 [cited by applicant]
US 20210096997A1 · Krasner · 2021 [cited by examiner]
Notice of Allowance mailed on Nov. 17, 2023 for U.S. Appl. No. 16/825,946, filed Mar. 20, 2020, 10 pages. [cited by applicant]