IP Library Granted Patent US 9,021,087
Granted Patent B1
US 9,021,087 · App. 13/359,516 · Granted Apr 28, 2015

Method to improve caching accuracy by using snapshot technology

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,021,087
App. No.
13/359,516
Granted
Apr 28, 2015
Kind
B1
Abstract

Methods and systems for improving caching accuracy utilizing snapshot technology are provided. One or more requests for data are received. When the requests for data return valid data, the valid data is stored within a cache. The response performance of a server device is monitored. When the response performance of the server device is above a predetermined threshold, one or more snapshot versions of a memory block are taken. The memory block may include the current state of the valid data at the time the snapshot version was taken. Upon receiving a warm-up cache signal for the cache, a snapshot version is used to populate the cache and sent to a client device.

Claims (62)

1. A computer implemented method for improving initial caching accuracy, comprising:

receiving, at a server, one or more requests for data;

populating, at a server, a cache with valid data, wherein the valid data is based on the one or more requests for data;

monitoring, at a server, a response performance of the server; and

when the response performance of the server is above a predetermined threshold, generating, at a server, one or more snapshot versions of a memory block, each snapshot version including a send priority, wherein the memory block contains the valid data in the cache.

2. The method of claim 1 further comprising:

loading, at the server, the cache with one of the snapshot versions based on the send priority; and

sending, from the server, the loaded snapshot version to a client device.

3. The method of claim 1 , wherein generating one or more snapshots of a memory block further comprises:

identifying a timestamp for each of the one or more snapshots;

storing the one or more snapshots based on the timestamp; and

setting the send priority for each of the one or more snapshots.

4. The method of claim 1 , wherein the send priority is based on a performance rate of a client device at the time the snapshot is generated.

5. The method of claim 1 , wherein the send priority is based on the timestamp.

6. The method of claim 1 , wherein the send priority is based on the response performance.

7. The method of claim 1 , wherein the one or more snapshot versions are copies of a current state of the valid data in the cache.

8. The method of claim 1 , wherein one or more requests for data are requests to load one or more webpages.

9. The method of claim 1 , wherein a response performance of the server is a ratio of cache hits to cache accesses in the cache.

10. The method of claim 1 , wherein a response performance is measured at a predetermined periodicity.

11. The method of claim 2 , wherein loading the cache with one of the snapshot versions takes place upon a startup of the server.

12. The method of claim 2 , wherein loading the cache with one of the snapshot versions takes place upon a restart of the server.

13. The method of claim 2 , wherein loading a snapshot version further comprises:

verifying the valid data of the snapshot version has not changed.

14. A system for improving initial caching accuracy, comprising:

a data manager configured to receive one or more requests for data and populate a cache with valid data, wherein the valid data is based on the one or more requests for data; and

a snapshot manager configured to monitor a response performance, when the response performance is above a predetermined threshold, and generate one or more snapshot versions of a memory block, each snapshot version including a send priority, wherein the memory block contains the valid data in the cache.

15. The system of claim 14 , wherein the snapshot manager is further configured to load the cache with one of the snapshot versions based on the send priority.

16. The system of claim 15 , wherein the data manager is further configured to send the loaded snapshot version.

17. The system of claim 15 , wherein the cache is loaded with one of the snapshot versions upon a startup of the server.

18. The system of claim 15 , wherein the cache is loaded with one of the snapshot versions place upon a restart of the server.

19. The system of claim 15 , wherein the snapshot generator is further configured to:

verify the valid data of the snapshot version has not changed.

20. The system of claim 14 , wherein the snapshot generator is further configured to:

identify a timestamp for each of the one or more snapshots;

store the one or more snapshots based on the timestamp; and

set the send priority for each of the one or more snapshots.

21. The system of claim 14 , wherein the send priority is based on a performance rate of a client device at the time the snapshot is generated.

22. The system of claim 14 , wherein the send priority is based on the timestamp.

23. The system of claim 14 , wherein the send priority is based on the response performance.

24. The system of claim 14 , wherein the one or more snapshot versions are copies of a current state of the valid data in the cache.

25. The system of claim 14 , wherein the one or more requests for data are requests to load one or more webpages.

26. The system of claim 14 , wherein the response performance of the server is a ratio of cache hits to cache accesses in the cache.

27. The system of claim 14 , wherein the response performance is measured at a predetermined periodicity.

28. A non-transitory computer-readable storage medium storing software comprising instructions that, upon execution by one or more computers, cause the one or more computers to perform operations comprising:

receiving one or more requests for data;

populating a cache with valid data, wherein the valid data is based on the one or more requests for data;

monitoring a response performance; and when the response performance is above a predetermined threshold, generating one or more snapshot versions of a memory block, each snapshot version including a send priority, wherein the memory block contains the valid data in the cache.

29. The non-transitory computer-readable storage medium of claim 28 , further comprising:

loading a cache with one of the snapshot versions based on the send priority; and

sending the loaded snapshot version to a client device.

30. The non-transitory computer-readable storage medium of claim 29 , wherein loading the cache with one of the snapshot versions takes place upon a startup of the server.

31. The non-transitory computer-readable storage medium of claim 29 , wherein loading the cache with one of the snapshot versions takes place upon a restart of the server.

32. The non-transitory computer-readable storage medium of claim 29 , wherein loading a snapshot version further comprises: verifying the valid data of the snapshot version has not changed.

33. The non-transitory computer-readable storage medium of claim 28 , wherein generating one or more snapshots of a memory block further comprises:

identifying a timestamp for each of the one or more snapshots; storing the one or more snapshots based on the timestamp; and setting the send priority for each of the one or more snapshots.

34. The non-transitory computer-readable storage medium of claim 30 , wherein the send priority is based on a performance rate of a client device at the time the snapshot is generated.

35. The non-transitory computer-readable storage medium of claim 30 , wherein the send priority is based on the timestamp.

36. The non-transitory computer-readable storage medium of claim 28 , wherein the send priority is based on the response performance.

37. The non-transitory computer-readable storage medium of claim 28 , wherein the one or more snapshot versions are copies of a current state of the valid data in the cache.

38. The non-transitory computer-readable storage medium of claim 28 , wherein one or more requests for data are requests to load one or more webpages.

39. The non-transitory computer-readable storage medium of claim 28 , wherein a response performance of the server is a ratio of cache hits to cache accesses in the cache.

40. The non-transitory computer-readable storage medium of claim 28 , wherein a response performance is measured at a predetermined periodicity.

Assignments (2)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044334/0466 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 27, 2012
From: WENG, ZHI; ZHENG, LANTIAN
To: GOOGLE INC.
Reel/Frame 027609/0126 →