IP Library Granted Patent US 8,868,841
Granted Patent B2
US 8,868,841 · App. 13/602,639 · Granted Oct 21, 2014

Statistical cache promotion

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 8,868,841
App. No.
13/602,639
Granted
Oct 21, 2014
Kind
B2
Abstract

Storing data in a cache is disclosed. It is determined that a data record is not stored in a cache. A random value is generated using a threshold value. It is determined whether to store the data record in the cache based at least in part on the generated random value.

Claims (55)

1. A system for storing data in a cache, comprising:

a processor configured to:

determine that a data record is not stored in a cache;

generate a random value using a threshold value; and

determine whether to store the data record in the cache based at least in part on the generated random value;

wherein a probability that the random value is associated with a certain reference value approximates a desired probability that the data record will be stored in the cache; and

a memory coupled to the processor and configured to provide the processor with instructions.

2. The system of claim 1 , wherein there exists a chance of

1

the

threshold

value

the data record will be stored in the cache when the determination is made on whether to store the data record in the cache based at least in part on the generated random value.

3. The system of claim 1 , wherein the threshold value has been preconfigured.

4. The system of claim 1 , wherein the threshold value has been determined dynamically.

5. The system of claim 1 , wherein the threshold value has been determined based at least in part on an observed data access pattern of a data set that includes the data record.

6. The system of claim 1 , wherein the threshold value has been determined based at least in part on a data pattern value that represents a desired average number of times the data record has been accessed and not stored in the cache before the data record is stored in the cache.

7. The system of claim 1 , wherein the threshold value has been determined based at least in part on a size of the cache.

8. The system of claim 1 , wherein the threshold value has been determined based at least in part on a hierarchy level of the cache.

9. The system of claim 1 , wherein in the event it is determined to store the data record in the cache, the processor is further configured to select an existing data record stored in the cache to be replaced with the data record to be stored in the cache.

10. The system of claim 9 , wherein the existing data record is selected based on an indicator that is associated with when the existing data record was last accessed from the cache.

11. The system of claim 1 , wherein generating the random value is associated with a probabilistic determination on whether to store the data record in the cache.

12. The system of claim 1 , wherein generating the random value using the threshold value includes generating a random integer value between 1 and the threshold value.

13. The system of claim 1 , wherein determining whether to store the data record in the cache includes comparing the random value with a reference value.

14. The system of claim 1 , wherein determining whether to store the data record in the cache includes comparing a reference value with a result of the random value modulo the threshold value.

15. The system of claim 14 , wherein it is determined to store the data record in the cache if the result matches the reference value.

16. The system of claim 1 , wherein the processor is further configured to:

generate a second random value using the threshold value; and

determine whether to store the data record in the cache based at least in part on the generated second random value.

17. The system of claim 1 , wherein the processor is further configured to:

determine that the data record is not stored in a second cache;

generate a second random value using a second threshold value; and

determine whether to store the data record in the second cache based at least in part on the generated second random value.

18. A method of storing data in a cache, comprising:

determining that a data record is not stored in a cache;

generating a random value using a threshold value; and

determining whether to store the data record in the cache based at least in part on the generated random value;

wherein a probability that the random value is associated with a certain reference value approximates a desired probability that the data record will be stored in the cache.

19. A computer program product for storing data in a cache, the computer program product being embodied in a tangible non-transitory computer readable storage medium and comprising computer instructions for:

determining that a data record is not stored in a cache;

generating a random value using a threshold value; and

determining whether to store the data record in the cache based at least in part on the generated random value;

wherein a probability that the random value is associated with a certain reference value approximates a desired probability that the data record will be stored in the cache.

20. The method of claim 18 , wherein the threshold value has been determined based at least in part on a data pattern value that represents a desired average number of times the data record has been accessed and not stored in the cache before the data record is stored in the cache.

21. The method of claim 18 , further comprising:

generating a second random value using the threshold value; and

determining whether to store the data record in the cache based at least in part on the generated second random value.

22. The computer program product of claim 19 , wherein the threshold value has been determined based at least in part on a data pattern value that represents a desired average number of times the data record has been accessed and not stored in the cache before the data record is stored in the cache.

23. The computer program product of claim 19 , further comprising computer instructions for:

generating a second random value using the threshold value; and

determining whether to store the data record in the cache based at least in part on the generated second random value.

Assignments (2)
CHANGE OF NAME Recorded Nov 19, 2021
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058214/0351 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2012
From: JIA, HONGZHONG; LIANG, XIAOJUN; TAYLOR, JASON
To: FACEBOOK, INC.
Reel/Frame 029274/0578 →