IP Library Granted Patent US 10,977,180
Granted Patent B2
US 10,977,180 · App. 16/458,215 · Granted Apr 13, 2021

Hit-based allocation of quotas of a cache space of a cache memory

Inventor: Yechiel Yochai (Lehavot Haviva, IL)
G06F12/0871G06F3/0611G06F3/0644G06F3/0679G06F30/20G06F2212/1021
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,977,180
App. No.
16/458,215
Granted
Apr 13, 2021
Kind
B2
Abstract

A method, storage system and non-transitory computer readable medium. The method may include receiving or generating, and for each storage entity out of multiple storage entities of the storage system, a storage entity distribution of cache hits over a caching period related to cached data associated with the storage entity and determining an allocation of quotas of the cache space to the multiple storage entities. The determining may include: (a) for each storage entity, determining a hit score indicative of a number of cache hits per a caching sub-period of the caching period related to the storage entity; (b) simulating, in an iterative manner, an allocation of quotas of the cache space to the storage entities that substantially maximizes the number of cache hits; and (c) allocating quotas of the cache space to the storage entities of the multiple storage entities, based on an outcome of the simulation.

Claims (37)

1. A method for hit-based allocation of quotas of a cache space of a cache memory of a storage system, the method comprises:

receiving or generating, by a controller of the storage system and for each storage entity out of multiple storage entities of the storage system, a storage entity distribution of cache hits over a caching period related to cached data associated with the storage entity, wherein the caching period is a time period during which the cached data, associated with the storage entity, was stored in the cache;

determining an allocation of quotas of the cache space to the multiple storage entities, wherein the determining comprises:

for each storage entity of the multiple storage entities, determining a hit score indicative of a number of cache hits per a caching sub-period of the caching period related to the storage entity distribution of cache hits over the caching period associated with the storage entity;

simulating, in an iterative manner, an allocation of quotas of the cache space to the storage entities of the multiple storage entities, that maximizes the number of cache hits; wherein the simulation is based on the hit score per caching sub-period of the caching period of each storage entity;

wherein the simulating of the allocation of quotas of the cache space comprises multiple iterations for allocating multiple quotas of the cache space, wherein each of the multiple iterations for allocating, comprises:

selecting out of non-selected caching sub-periods related to the multiple storage entities, a selected caching sub-period that has a highest hit score, wherein the non-selected caching sub-periods are caching sub-periods that were not selected in previous iterations; and

allocating a new quota of the multiple quotas of the cache space to a storage entity associated with the selected caching sub-period; and

allocating quotas of the cache space to the storage entities of the multiple storage entities, based on an outcome of the simulation.

2. The method according to claim 1 , comprising receiving or generating, by the controller of the storage system and for each storage entity out of multiple storage entities of the storage system, write rate information regarding a write rate to the cache of each storage entity out of the multiple storage entities; wherein the determining of the allocation of quotas is further based on the write rate information related to the multiple storage entities.

3. The method according to claim 2 comprising generating the write rate information regarding the write rate to the cache of each storage entity out of the multiple storage; wherein the generating of the write rate information comprises monitoring a shadow cache that stores metadata regarding writes to the cache.

4. The method according to claim 1 , comprising repeating the determining of the allocation of quotas of the cache space to the multiple storage entities multiple times.

5. The method according to claim 1 , comprising repeating the determining of the allocation of quotas of the cache space to the multiple storage entities.

6. A non-transitory computer readable medium that stores instructions that once executed by a mass storage system causes the mass storage system to execute the steps of:

receiving or generating, by a controller of the storage system and for each storage entity out of multiple storage entities of the storage system, a storage entity distribution of cache hits over a caching period related to cached data associated with the storage entity, wherein the caching period is a time period during which the cached data, associated with the storage entity, was stored in the cache;

determining an allocation of quotas of a cache space to the multiple storage entities, wherein the determining comprises:

for each storage entity of the multiple storage entities, determining a hit score indicative of a number of cache hits per a caching sub-period of the caching period related to the storage entity distribution of cache hits over the caching period associated with the storage entity;

simulating, in an iterative manner, an allocation of quotas of the cache space to the storage entities of the multiple storage entities, that maximizes the number of cache hits; wherein the simulation is based on the hit score per caching sub-period of the caching period of each storage entity;

wherein the simulating of the allocation of quotas of the cache space comprises multiple iterations for allocating multiple quotas of the cache space, wherein each of the multiple iterations for allocating, comprises:

selecting out of non-selected caching sub-periods related to the multiple storage entities, a selected caching sub-period that has a highest hit score, wherein the non-selected caching sub-periods are caching sub-periods that were not selected in previous iterations; and

allocating a new quota of the multiple quotas of the cache space to a storage entity associated with the selected caching sub-period;

and

allocating quotas of the cache space to the storage entities of the multiple storage entities, based on an outcome of the simulation.

7. The non-transitory computer readable medium according to claim 6 , that stores instructions for receiving or generating, by the controller of the storage system and for each storage entity out of multiple storage entities of the storage system, write rate information regarding a write rate to the cache of each storage entity out of the multiple storage entities; wherein the determining of the allocation of quotas is further based on the write rate information related to the multiple storage entities.

8. The non-transitory computer readable medium according to claim 7 that stores instructions for generating the write rate information regarding the write rate to the cache of each storage entity out of the multiple storage; wherein the generating of the write rate information comprises monitoring a shadow cache that stores metadata regarding writes to the cache.

9. The non-transitory computer readable medium according to claim 6 , that stores instructions for repeating the determining of the allocation of quotas of the cache space to the multiple storage entities during the periods of time.

10. The non-transitory computer readable medium according to claim 6 , that stores instructions for repeating the determining of the allocation of quotas of the cache space to the multiple storage entities.

11. A storage system that comprises a cache memory and a controller, wherein the controller is configured to:

receive or generate, for each storage entity out of multiple storage entities of the storage system, a storage entity distribution of cache hits over a caching period related to cached data associated with the storage entity, wherein the caching period is a time period during which the cached data, associated with the storage entity, was stored in the cache;

determine an allocation of quotas of a cache space to the multiple storage entities, wherein the determining comprises:

for each storage entity of the multiple storage entities, determining a hit score indicative of a number of cache hits per a caching sub-period of the caching period related to the storage entity distribution of cache hits over the caching period associated with the storage entity;

simulating, in an iterative manner, an allocation of quotas of the cache space to the storage entities of the multiple storage entities, that maximizes the number of cache hits; wherein the simulation is based on the hit score per caching sub-period of the caching period of each storage entity;

wherein the simulating of the allocation of quotas of the cache space comprises multiple iterations for allocating multiple quotas of the cache space, wherein each of the multiple iterations for allocating, comprises:

selecting out of non-selected caching sub-periods related to the multiple storage entities, a selected caching sub-period that has a highest hit score, wherein the non-selected caching sub-periods are caching sub-periods that were not selected in previous iterations; and

allocating a new quota of the multiple quotas of the cache space to a storage entity associated with the selected caching sub-period;

and

allocating quotas of the cache space to the storage entities of the multiple storage entities, based on an outcome of the simulation.

Assignments (4)
SECURITY INTEREST Recorded Jan 30, 2025
From: INFINIDAT LTD
To: KREOS CAPITAL VII AGGREGATOR SCSP,
Reel/Frame 070056/0458 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 2, 2024
From: YOCHAI, YECHIEL
To: INFINDAT LTD.
Reel/Frame 068776/0125 →
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 →
Continuity (1)
Related Publication 20210004329A1 · Jan 7, 2021
Cited By (1)
US 12,323,489