IP Library › Granted Patent US 9,652,387
Granted Patent B2
US 9,652,387 · App. 14/146,896 · Granted May 16, 2017

Cache system with multiple cache unit states

Inventors: Filip Eliá{hacek over (s)} (Vy{hacek over (s)}ní Lhoty, CZ); Filip Nguyen (Kaminky, CZ)
Assignee: Red Hat, Inc.
G06F12/0806G06F12/0891G06F12/0828G06F2212/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 9,652,387
App. No.
14/146,896
Granted
May 16, 2017
Kind
B2
Abstract

A cache system stores a number of different datasets. The cache system includes a number of cache units, each in a state associated with one of the datasets. In response to determining that a hit ratio of a cache unit drops below a threshold, the state of the cache unit is changed and the dataset is replaced with that associated with the new state.

Claims (88)

1. A method comprising:

storing a plurality of datasets;

loading a first dataset of the plurality of datasets into a first cache unit and a second cache unit of a plurality of cache units;

determining, by a processing device, that a hit ratio is below a first hit ratio threshold associated with the first cache unit and above a second hit ratio threshold associated with the second cache unit, wherein the first hit ratio threshold is different from the second hit ratio threshold; and

responsive to determining that the hit ratio is below the first hit ratio threshold associated with the first cache unit and above the second hit ratio threshold associated with the second cache unit, loading a second dataset of the plurality of datasets into the first cache unit, wherein the first dataset of the plurality of datasets is different than the second dataset of the plurality of datasets.

2. The method of claim 1 , further comprising:

loading the first dataset of the plurality of datasets into a third cache unit of the plurality of cache units;

determining that the hit ratio is below the second hit ratio threshold associated with the second cache unit; and

responsive to determining that the the hit ratio is below the second hit ratio threshold associated with the second cache unit, loading a third dataset of the plurality of datasets into the second cache unit, wherein the third dataset is different from the first dataset and the second dataset of the plurality of datasets.

3. The method of claim 1 , further comprising:

determining that the hit ratio is below the first hit ratio threshold associated with the first cache unit and equal to the second hit ratio threshold associated with the second cache unit; and

responsive to determining that the hit ratio is below the first hit ratio threshold associated with the first cache unit and equal to the second hit ratio threshold associated with the second cache unit, loading the second dataset of the plurality of datasets into the first cache unit.

4. The method of claim 1 , further comprising:

receiving an alteration to the first dataset of the plurality of datasets; and

in response to receiving the alteration, loading an altered first dataset of the plurality of datasets into other cache units of the plurality of cache units.

5. The method of claim 1 , further comprising:

receiving a request to access a data store; and

selecting the first cache unit from the plurality of cache units to service the request.

6. The method of claim 1 , wherein determining that the hit ratio is below the first hit ratio threshold associated with the first cache unit and above the second hit ratio threshold associated with the second cache unit comprises:

identifying a first number indicative of a number of data requests received by the first cache unit and second cache unit within a window, each data request requesting a data unit;

identifying a second number indicative of a number of the data requests requesting a data unit in the first dataset of the plurality of datasets within the window;

identifying the hit ratio of the first cache unit and second cache unit by dividing the second number by the first number; and

comparing the hit ratio to the first hit ratio threshold and the second hit ratio threshold.

7. The method of claim 1 , further comprising generating the plurality of datasets, wherein generating the plurality of datasets comprises:

receiving a first plurality of data requests requesting a respective first plurality of data units;

loading the first plurality of data units into the first cache unit;

receiving a second plurality of data requests requesting a respective second plurality of data units;

determining a hit ratio of the first cache unit in responding to the second plurality of data requests;

determining that the hit ratio of the first cache unit in responding to the second plurality of data requests is below a dataset generation hit ratio threshold; and

responsive to the determination that the hit ratio of the first cache unit in responding to the second plurality of data requests is below a dataset generation hit ratio threshold, storing the first plurality of data units as the first dataset of the plurality of datasets.

8. A non-transitory computer-readable medium comprising instructions encoded thereon which, when executed by a processing device, cause the processing device to:

store a plurality of datasets;

load a first dataset of the plurality of datasets into a first cache unit and a second cache unit of a plurality of cache units;

determine, by the processing device, that a hit ratio is below a hit first ratio threshold associated with the first cache unit and above a second hit ratio threshold associated with the second cache unit, wherein the first hit ratio threshold is different from the second hit ratio threshold; and

responsive to determining that the hit ratio is below the first hit ratio threshold associated with the first cache unit and above the second hit ratio threshold associated with the second cache unit, load a second dataset of the plurality of datasets into the first cache unit, wherein the first dataset of the plurality of datasets is different than the second dataset of the plurality of datasets.

9. The non-transitory computer-readable medium of claim 8 , the processing device further to:

load the first dataset of the plurality of datasets into a third cache unit of the plurality of cache units;

determine that the hit ratio is below the second hit ratio threshold associated with the second cache unit; and

responsive to determining that the hit ratio is below the second hit ratio threshold associated with the second cache unit, load a third dataset of the plurality of datasets into the second cache unit, wherein the third dataset is different from the first dataset and the second dataset of the plurality of datasets.

10. The non-transitory computer-readable medium of claim 8 , the processing device further to:

determine that the hit ratio is below the first hit ratio threshold associated with the first cache unit and equal to the second hit ratio threshold associated with the second cache unit; and

responsive the determination that the hit ratio is below the first hit ratio threshold associated with the first cache unit and equal to the second hit ratio threshold associated with the second cache unit, load the second dataset of the plurality of datasets into the first cache unit.

11. The non-transitory computer-readable medium of claim 8 , the processing device further to:

receive an alteration to the first dataset of the plurality of datasets; and

in response to receiving the alteration, load an altered first dataset of the plurality of datasets into other cache units of the plurality of cache units.

12. The non-transitory computer-readable medium of claim 8 , the processing device further to:

receive a request to access a data store; and

select the first cache unit from the plurality of cache units to service the request.

13. The non-transitory computer-readable medium of claim 8 , wherein to determine that the hit ratio is below the first hit ratio threshold associated with the first cache unit and above the second hit ratio threshold associated with the second cache unit the processing device further to:

identify a first number indicative of a number of data requests received by the first cache unit and the second cache unit within a window, each data request requesting a data unit;

identify a second number indicative of a number of the data requests within the window requesting a data unit in the first dataset of the plurality of datasets;

identify the hit ratio of the first cache unit and the second cache unit by dividing the second number by the first number; and

compare the hit ratio to the first hit ratio threshold and the second hit ratio threshold.

14. The non-transitory computer-readable medium of claim 8 , the processing device further to generate the plurality of datasets, wherein to generate the plurality of datasets, the processing device further to:

receive a first plurality of data requests requesting a respective first plurality of data units;

load the first plurality of data units into the first cache unit;

receive a second plurality of data requests requesting a respective second plurality of data units;

determine a hit ratio of the first cache unit in responding to the second plurality of data requests;

determine that the hit ratio of the first cache unit in responding to the second plurality of data requests is below a dataset generation hit ratio threshold; and

responsive to the determination that the hit ratio of the first cache unit in responding to the second plurality of data requests is below a dataset generation hit ratio threshold, store the first plurality of data units as the first dataset of the plurality of datasets.

15. A system comprising:

a memory to store a plurality of datasets;

a processing device, operatively coupled to the memory, to:

load a first dataset of the plurality of datasets into a first cache unit and a second cache unit of a plurality of cache units;

determine that a hit ratio is below a first hit ratio threshold associated with the first cache unit and above a second hit ratio threshold associated with the second cache unit, wherein the first hit ratio threshold is different from the second hit ratio threshold; and

responsive to determining that the hit ratio is below the first hit ratio threshold associated with the first cache unit and above the second hit ratio threshold associated with the second cache unit, load a second dataset of the plurality of datasets into the first cache unit, wherein the first dataset of the plurality of datasets is different than the second dataset of the plurality of datasets.

16. The system of claim 15 , wherein the processing device is further to:

load the first dataset of the plurality of datasets into a third cache unit of the plurality of cache units;

determine that the hit ratio is below the second hit ratio threshold associated with the second cache unit; and

responsive to the determination that the hit ratio of is below the second hit ratio threshold associated with the second cache unit, load a third dataset of the plurality of datasets into the second cache unit, wherein the third dataset is different from the first dataset and the second dataset of the plurality of datasets.

17. The system of claim 15 , wherein the processing device is further to:

determine that the hit ratio is below the first hit ratio threshold associated with the first cache unit and equal to the second hit ratio threshold associated with the second cache unit; and

responsive the determination that the hit ratio is below the first hit ratio threshold associated with the first cache unit and equal to the second hit ratio threshold associated with the second cache unit, load the second dataset of the plurality of datasets into the first cache unit.

18. The system of claim 15 , wherein the processing device is further to:

receive an alteration to the first dataset of the plurality of datasets; and

in response to receiving the alteration, load an altered first dataset of the plurality of datasets into other cache units of the plurality of cache units.

19. The system of claim 15 , wherein to determine that the hit ratio is below the first hit ratio threshold associated with the first cache unit and above the second hit ratio threshold associated with the second cache unit, the processing device is to:

identify a first number indicative of a number of data requests received by the first cache unit and the second cache unit within a window, each data request requesting a data unit;

identify a second number indicative of a number of the data requests requesting a data unit in the first dataset of the plurality of datasets within the window;

identify the hit ratio of the first cache unit and the second cache unit by dividing the second number by the first number; and

compare the hit ratio to the first hit ratio threshold and the second hit ratio threshold.

20. The system of claim 15 , the processing device further to generate the plurality of datasets, wherein to generate the plurality of datasets, the processing device further to:

receive a first plurality of data requests requesting a respective first plurality of data units;

load the first plurality of data units into the first cache unit;

receive a second plurality of data requests requesting a respective second plurality of data units;

determine a hit ratio of the first cache unit in responding to the second plurality of data requests;

determine that the hit ratio of the first cache unit in responding to the second plurality of data requests is below a dataset generation hit ratio threshold; and

responsive to the determination that the hit ratio of the cache unit in responding to the second plurality of data requests is below a dataset generation hit generation threshold, store the first plurality of data units as the first dataset of the plurality of datasets.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 3, 2014
From: ELIAS, FILIP; NGUYEN, FILIP
To: RED HAT, INC.
Reel/Frame 031887/0440 →
Continuity (1)
Related Publication 20150193343A1 · Jul 9, 2015