IP Library Granted Patent US 11,943,296
Granted Patent B2
US 11,943,296 · App. 17/829,334 · Granted Mar 26, 2024

Workload-based cache compression in a distributed storage system

Inventors: Gabriel Zvi BenHanokh (Tel-Aviv, IL); Orit Wasserman (Mitzpe-Aviv, IL); Yehoshua Salomon (Kfar-Saba, IL)
Assignee: Red Hat, Inc.
H04L67/1097G06F12/0802G06F2212/60
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 11,943,296
App. No.
17/829,334
Granted
Mar 26, 2024
Kind
B2
Abstract

An example method may include receiving, in a virtualized execution environment, a data access request from a storage system, identifying, in view of a virtualized execution image associated with the virtualized execution environment, an application running in the virtualized execution environment, generating a cache classification that specifies whether data accessed by the application is suitable for cache compression, including, in the data access request, a tag indicating whether cached data is to be accessed in a compressed-memory cache, wherein the tag is determined in view of the cache classification, and sending, to a server of the storage system, the data access request. The application can be identified in view of metadata included in the virtualized execution image, where the metadata comprises one or more of an application name or an application version.

Claims (51)

1. A method comprising:

receiving, in a virtualized execution environment, a data access request from a storage system;

identifying, in view of a virtualized execution image associated with the virtualized execution environment, an application running in the virtualized execution environment;

generating, based on a past data access pattern of a previous execution of the application, a cache classification that specifies whether data accessed by the application is suitable for cache compression;

including, in the data access request, a tag indicating whether cached data is to be accessed in a compressed-memory cache, wherein the tag is determined in view of the cache classification; and

sending, to a server of the storage system, the data access request.

2. The method of claim 1 , wherein the application is identified in view of metadata included in the virtualized execution image, wherein the metadata comprises one or more of an application name or an application version.

3. The method of claim 1 , wherein generating the cache classification comprises identifying, in a mapping data structure comprising one or more records, a cache classification record that specifies a stored identifier of the application, wherein the record further specifies a stored cache classification.

4. The method of claim 1 , further comprising generating a mapping data structure comprising one or more records, wherein each record comprises a particular application identifier and a particular cache classification, and generating the mapping data structure comprises:

determining whether a past data access pattern of a previous execution of a particular application satisfies one or more threshold access pattern criteria; and

responsive to determining that the past data access pattern of a previous execution of the particular application satisfies one or more threshold access pattern criteria, generating a cache classification record that comprises a particular application identifier identifying the particular application and a particular cache classification specifying that data accessed by the particular application is suitable for cache compression.

5. The method of claim 4 , further comprising:

responsive to determining that the past data access pattern of a previous execution of the particular application does not satisfy one or more threshold access pattern criteria, generating a cache classification record that comprises a particular application identifier identifying the particular application and a particular cache classification specifying that data accessed by the particular application is not suitable for cache compression.

6. The method of claim 4 , wherein the one or more threshold access pattern criteria comprise a threshold storage region size that specifies a size of a storage region, and the past data access pattern satisfies the threshold access pattern criteria if each data access in the past data access pattern references a storage location in the storage region.

7. The method of claim 1 , wherein the cache classification is further generated in view of one or more attributes of the application, the attributes including one or more of:

an access pattern, wherein the access pattern comprises a random access pattern or a sequential access pattern, or

a type of the application, wherein the type comprises one of streaming or transactional.

8. The method of claim 1 , wherein the cache classification comprises one or more cache classification criteria, wherein the cache classification specifies that data accessed by the application is suitable for cache compression if the one or more cache classification criteria are satisfied.

9. The method of claim 8 , wherein the cache classification criteria comprise a data size criterion, and the data size criterion is satisfied if a size of the data to be retrieved is at least a threshold size.

10. The method of claim 1 , further comprising:

receiving, at a server computer system, the data access request;

identifying, in view of the tag included in the data access request, a cache type;

determining whether the cache type corresponds to a compressed cache; and

responsive to determining that the cache type corresponds to a compressed cache, accessing data in compressed cache memory in accordance with the data access request.

11. The method of claim 1 , wherein the tag indicates whether cached data is to be stored in the compressed-memory cache.

12. A non-transitory machine-readable storage medium storing instructions that cause a processing device to perform operations comprising:

receiving, in a virtualized execution environment, a data access request from a storage system;

identifying, in view of a virtualized execution image associated with the virtualized execution environment, an application running in the virtualized execution environment;

generating, based on a past data access pattern of a previous execution of the application, a cache classification that specifies whether data accessed by the application is suitable for cache compression;

including, in the data access request, a tag indicating whether cached data is to be accessed in a compressed-memory cache, wherein the tag is determined in view of the cache classification; and

sending, to a server of the storage system, the data access request.

13. The non-transitory machine-readable storage medium of claim 12 , wherein the application is identified in view of metadata included in the virtualized execution image, wherein the metadata comprises one or more of an application name or an application version.

14. The non-transitory machine-readable storage medium of claim 12 , wherein generating the cache classification comprises identifying, in a mapping data structure comprising one or more records, a cache classification record that specifies a stored identifier of the application, wherein the record further specifies a stored cache classification.

15. The non-transitory machine-readable storage medium of claim 12 , the operations further comprising generating a mapping data structure comprising one or more records, wherein each record comprises a particular application identifier and a particular cache classification, and generating the mapping data structure comprises:

determining whether a past data access pattern of a previous execution of a particular application satisfies one or more threshold access pattern criteria; and

responsive to determining that the past data access pattern of a previous execution of the particular application satisfies one or more threshold access pattern criteria, generating a cache classification record that comprises a particular application identifier identifying the particular application and a particular cache classification specifying that data accessed by the particular application is suitable for cache compression.

16. The non-transitory machine-readable storage medium of claim 15 , the operations further comprising:

responsive to determining that the past data access pattern of a previous execution of the particular application does not satisfy one or more threshold access pattern criteria, generating a cache classification record that comprises a particular application identifier identifying the particular application and a particular cache classification specifying that data accessed by the particular application is not suitable for cache compression.

17. A system comprising:

a memory device; and

a first processing device, operatively coupled to the memory device, to perform operations comprising:

receiving, in a virtualized execution environment, a data access request from a storage system;

identifying, in view of a virtualized execution image associated with the virtualized execution environment, an application running in the virtualized execution environment;

generating, based on a past data access pattern of a previous execution of the application, a cache classification that specifies whether data accessed by the application is suitable for cache compression;

including, in the data access request, a tag indicating whether cached data is to be accessed in a compressed-memory cache, wherein the tag is determined in view of the cache classification; and

sending, to a server of the storage system, the data access request.

18. The system of claim 17 , wherein the application is identified in view of metadata included in the virtualized execution image, wherein the metadata comprises one or more of an application name or an application version.

19. The system of claim 17 , wherein generating the cache classification comprises identifying, in a mapping data structure comprising one or more records, a cache classification record that specifies a stored identifier of the application, wherein the record further specifies a stored cache classification.

20. The system of claim 17 , the operations further comprising generating a mapping data structure comprising one or more records, wherein each record comprises a particular application identifier and a particular cache classification, and generating the mapping data structure comprises:

determining whether a past data access pattern of a previous execution of a particular application satisfies one or more threshold access pattern criteria; and

responsive to determining that the past data access pattern of a previous execution of the particular application satisfies one or more threshold access pattern criteria, generating a cache classification record that comprises a particular application identifier identifying the particular application and a particular cache classification specifying that data accessed by the particular application is suitable for cache compression.

Assignments (2)
CHANGE OF NAME Recorded Mar 3, 2026
From: RED HAT, INC.
To: RED HAT, LLC
Reel/Frame 074913/0759 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 26, 2022
From: BENHANOKH, GABRIEL ZVI; WASSERMAN, ORIT; SALOMON, YEHOSHUA
To: RED HAT, INC.
Reel/Frame 061215/0265 →