IP Library Granted Patent US 10,534,712
Granted Patent B1
US 10,534,712 · App. 15/249,504 · Granted Jan 14, 2020

Service level agreement based management of a pre-cache module

Inventors: Qun Fan (Irvine, CA); Venu Nayar (San Jose, CA); Haim Helman (Los Gatos, CA)
Assignee: INFINIDAT LTD.
G06F12/0831G06F12/0873G06F12/0893G06F12/0871G06F2212/1024G06F2212/604G06F2212/621
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 10,534,712
App. No.
15/249,504
Granted
Jan 14, 2020
Kind
B1
Abstract

A method for service level agreement (SLA) allocation of resources of a cache memory of a storage system, the method may include monitoring, by a control layer of the storage system, actual performances of the storage system that are related to multiple logical volumes; calculating actual-to-required relationships between the actual performances and SLA defined performances of the multiple logical volumes; assigning caching priorities, to different logical volumes of the multiple logical volumes; wherein the assigning is based on, at least, the actual-to-required relationships; and managing, based on at least the caching priorities, a pre-cache memory module that is upstream to the cache module and is configured to store write requests that (i) are associated with one or more logical volumes of the different logical volumes and (ii) are received by the pre-cache memory module at points in time when the cache memory is full; wherein the managing comprises transferring one or more write requests from the pre-cache memory module to the cache memory when the cache memory is not full.

Claims (23)

1. A method for service level agreement (SLA) allocation of resources of a cache memory of a storage system, the method comprises:

monitoring, by a control layer of the storage system, actual performances of the storage system that are related to multiple logical volumes;

calculating actual-to-required relationships between the actual performances and SLA defined performances of the multiple logical volumes;

assigning caching priorities, to different logical volumes of the multiple logical volumes; wherein the assigning is based on, at least, the actual-to-required relationships; and

managing, based on at least the caching priorities, a pre-cache memory module that is upstream to the cache module and is configured to store write requests that (i) are associated with one or more logical volumes of the different logical volumes and (ii) are received for caching at points in time when the cache memory is full; wherein the managing comprises transferring one or more write requests from the pre-cache memory module to the cache memory when the cache memory is not full, wherein different caching priorities determine different transfer rates from the pre-cache memory module into the cache memory, of write requests stored in the pre-cache memory module.

2. The method according to claim 1 comprising applying one or more cache coherency processes on the cache memory and not applying any cache coherency process on the pre-cache memory module.

3. The method according to claim 1 comprising sending a caching acknowledgement to a host computer that sent a write request, wherein the sending is only after the write request is cached in the memory cache.

4. The method according to claim 1 comprising destaging data units of a write request from the cache memory to a permanent storage layer of the storage system.

5. The method according to claim 1 wherein the assigning comprises increasing a transfer rate of write requests associated with an underperforming logical volume of the multiple logical volumes, from the pre-cache memory module to the cache memory.

6. The method according to claim 1 wherein the assigning of the caching priorities is also based on previous actual performances of the storage system related to the multiple logical volumes.

7. The method according to claim 1 comprising calculating an effectiveness of an increment in a transfer rate of write requests associated with an underperforming logical volume of the multiple logical volumes.

8. The method according to claim 1 wherein the pre-cache memory module comprises multiple queues and wherein the managing comprises defining one or more dequeuing parameters based on, at least, the caching priorities.

9. The method according to claim 1 comprising calculating an effectiveness of an increment in a transfer rate of write requests associated with an underperforming logical volume of the multiple logical volumes; wherein the assigning comprises decreasing a transfer rate of write requests associated with an over-performing logical volume of the multiple logical volumes, from the pre-cache memory module to the cache memory.

10. The method according to claim 1 comprising calculating an effectiveness of an increment in a transfer rate of write requests associated with an underperforming logical volume of the multiple logical volumes; wherein the assigning comprises decreasing a transfer rate of write requests associated with an over-performing logical volume of the multiple logical volumes instead of increasing a transfer rate of write requests associated with an underperforming logical volume of the multiple logical volumes.

11. The method according to claim 8 wherein the one or more dequeuing parameters comprise a dequeuing rate.

12. The method according to claim 8 wherein the defining of the one or more dequeuing parameters is further based on relationships between the multiple queues and the multiple logical volumes; wherein a given queue is related with a given logical volume when the given queue stores a write request that is associated with the given logical volume.

13. The method according to claim 8 comprising moving, between a plurality of queues of the multiple queues, write requests associated with a given logical volume in response to a change in the caching priority of the given logical volume.

14. A non-transitory computer readable medium that stores instructions that once executed by a control layer of a storage system cause the control layer of the storage system to execute the steps of:

monitoring actual performances of the storage system that are related to multiple logical volumes;

calculating actual-to-required relationships between the actual performances and service level agreement defined performances of the multiple logical volumes;

assigning caching priorities, to different logical volumes of the multiple logical volumes; wherein the assigning is based on, at least, the actual-to-required relationships; and

managing, based on at least the caching priorities, a pre-cache memory module that is upstream to the cache module and is configured to store write requests that (i) are associated with one or more logical volumes of the different logical volumes and (ii) are received for caching at points in time when the cache memory is full; wherein the managing comprises transferring one or more write requests from the pre-cache memory module to the cache memory when the cache memory is not full, wherein different caching priorities determine different transfer rates from the pre-cache memory module into the cache memory, of write requests stored in the pre-cache memory module.

15. A storage system that comprises a control layer and a permanent storage layer; wherein the control layer is configured to monitor actual performances of the storage system that are related to multiple logical volumes; calculate actual-to-required relationships between the actual performances and SLA defined performances of the multiple logical volumes; assign caching priorities, to different logical volumes of the multiple logical volumes; wherein the assigning is based on, at least, the actual-to-required relationships; and manage, based on at least the caching priorities, a pre-cache memory module that is upstream to the cache module and is configured to store write requests that (i) are associated with one or more logical volumes of the different logical volumes and (ii) are received for caching at points in time when the cache memory is full; wherein the managing comprises transferring one or more write requests from the pre-cache memory module to the cache memory when the cache memory is not full, wherein different caching priorities determine different transfer rates from the pre-cache memory module into the cache memory, of write requests stored in the pre-cache memory module.

Assignments (6)
SECURITY INTEREST Recorded Jan 30, 2025
From: INFINIDAT LTD
To: KREOS CAPITAL VII AGGREGATOR SCSP,
Reel/Frame 070056/0458 →
RELEASE OF SECURITY INTEREST IN IP RECORDED AT R/F 55653/0854 Recorded Jan 18, 2024
From: SILICON VALLEY BANK
To: INFINIDAT LTD.
Reel/Frame 066344/0064 →
SECURITY INTEREST Recorded Jan 11, 2024
From: INFINIDAT LTD
To: KREOS CAPITAL VI (EXPERT FUND) L.P.; KREOS CAPITAL 2020 OPPORTUNITY L.P.
Reel/Frame 066270/0359 →
SECURITY INTEREST Recorded Jan 10, 2024
From: INFINIDAT LTD
To: HSBC BANK PLC
Reel/Frame 066268/0584 →
SECURITY INTEREST Recorded Mar 18, 2021
From: INFINIDAT LTD.
To: SILICON VALLEY BANK
Reel/Frame 055653/0854 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 1, 2020
From: FAN, QUN; NAYAR, VENU; HELMAN, HAIM
To: INFINIDAT LTD.
Reel/Frame 054510/0403 →