IP Library › Granted Patent US 10,642,738
Granted Patent B1
US 10,642,738 · App. 13/720,675 · Granted May 5, 2020

Distributed caching system

Inventors: Vishal Parakh (Seattle, WA); Antoun Joubran Kanawati (Seattle, WA)
Assignee: Amazon Technologies, Inc.
G06F12/0813
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,642,738
App. No.
13/720,675
Granted
May 5, 2020
Kind
B1
Abstract

Embodiments of a distributed caching system are disclosed that cache data across multiple computing devices on a network. In one embodiment, a first caching system serves as a caching front-end to a distributed cluster of additional caching systems. The caching systems may be spread over multiple partition groups. In one embodiment, cache writes at a cache system in one partition group are distributed to other partition groups. By propagating the cache writes across multiple partition groups, the caches at the different partition groups include more recently accessed data, thereby increasing the likelihood of cache hits.

Claims (46)

1. A system for distributed data caching, the system comprising:

a first caching system in a first partition group, the first caching system configured to:

receive a first request to retrieve a data item;

in response to the first request to retrieve the data item and determining that the first caching system does not store the data item:

retrieve the data item from a primary storage, the primary storage separate from the first caching system;

update a first cache in the first partition group by adding the data item; and

transmit the data item that was determined to not be stored in the first caching system to a second caching system in a second partition group; and

the second caching system in the second partition group, the second caching system configured to:

in response to receiving the data item transmitted by the first caching system, update a second cache in the second partition group by adding the data item;

in response to receiving a second request to retrieve the data item from a requestor, obtain the data item from the second cache; and

provide the data item to the requestor.

2. The system of claim 1 , wherein the first partition group and the second partition group are located in different time zones.

3. The system of claim 1 , wherein the first partition group and the second partition group are located in different geographic areas.

4. The system of claim 1 , wherein the first cache system and the second cache system are part of a distributed caching system that spans multiple partition groups.

5. A method of caching data in a distributed system, the method comprising:

receiving a first request to retrieve a data item at a first caching system at a first partition group;

in response to the first request to retrieve the data item and determining that the first caching system does not store the data item:

retrieving the data item from a primary storage, the primary storage separate from the first caching system;

updating a first cache associated with the first caching system by adding the data item, the first cache in the first partition group; and

transmitting the data item that was determined to not be stored in the first caching system to a second caching system in a second partition group, thereby causing the second caching system to update a second cache on the second partition group by adding the data item and to provide the data item in response to a second request to retrieve the data item.

6. The method of claim 5 , further comprising retrieving the data item from the first cache in the first partition group.

7. The method of claim 5 , further comprising causing the second caching system to, in response to receiving the second request to retrieve the data item, retrieving the data item from the second cache in the second partition group.

8. The method of claim 5 , wherein the first partition group and the second partition group are located in different time zones.

9. The method of claim 5 , wherein the first partition group and the second partition group are located in different geographic areas.

10. The method of claim 5 , wherein the first cache system and the second cache system are part of a distributed caching system that spans multiple partition groups.

11. The method of claim 5 , wherein updating the first cache associated with the first caching system comprises loading the data item into the first cache.

12. The method of claim 5 , wherein updating the first cache associated with the first caching system comprises:

finding an entry in the first cache associated with the data item; and

updating the entry in the first cache.

13. The method of claim 5 , wherein the first partition group is a data center and the second partition group is a data center.

14. The method of claim 5 , wherein the first partition group comprises multiple virtual machine instances on a same computer.

15. Non-transitory computer storage having stored thereon instructions that, when executed by a computer system, cause the computer system to perform operations comprising:

receiving a first request to retrieve a data item at a first caching system at a first partition group;

in response to the first request to retrieve the data item and determining that the first caching system does not store the data item:

retrieving the data item from a primary storage, the primary storage separate from the first caching system;

updating a first cache associated with the first caching system by adding the data item, the first cache in the first partition group; and

causing one or more additional caching systems located in one or more additional partition groups to update caches located at the one or more additional partition groups by adding the data item that was determined to not be stored in the first caching system and to provide the data item in response to one or more second requests to retrieve the data item.

16. The non-transitory computer storage of claim 15 , wherein the first partition group and the one or more additional partition groups are located in different time zones.

17. The non-transitory computer storage of claim 15 , wherein the first partition group and the one or more additional partition groups are located in different geographic areas.

18. The non-transitory computer storage of claim 15 , wherein the first cache system and the one or more additional cache systems are part of a distributed caching system that spans multiple partition groups.

19. The non-transitory computer storage of claim 15 , wherein updating the first cache associated with the first caching system comprises loading the data item into the first cache.

20. The non-transitory computer storage of claim 15 , wherein updating the first cache associated with the first caching system comprises:

finding an entry in the first cache associated with the data item; and

updating the entry in the first cache.

21. The non-transitory computer storage of claim 15 , wherein the first partition group comprises a data center and the second partition group comprises a data center.

22. The non-transitory computer storage of claim 15 , wherein the first partition group comprises multiple virtual machine instances on a same computer.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 27, 2013
From: PARAKH, VISHAL; KANAWATI, ANTOUN JOUBRAN
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 030099/0799 →
Cited By (60)
US 12,192,026 US 12,200,038 US 12,200,083 US 12,200,084 US 12,218,776 US 12,218,777 US 12,229,210 US 12,231,253 US 12,231,519 US 12,250,089 US 12,250,090 US 12,261,712 US 12,277,187 US 12,277,188 US 12,277,189 US 12,278,878 US 12,278,880 US 12,284,069 US 12,289,383 US 12,294,481 US 12,301,401 US 12,309,123 US 12,309,241 US 12,323,287 US 12,323,500 US 12,323,501 US 12,332,960 US 12,341,860 US 12,355,855 US 12,368,789 US 12,375,582 US 12,411,902 US 12,413,648 US 12,425,492 US 12,438,956 US 12,445,511 US 12,457,273 US 12,483,635 US 12,517,972 US 12,524,490 US 12,524,491 US 12,536,243 US 12,542,764 US 12,549,645 US 12,563,130 US 12,587,429 US 12,587,430 US 12,587,579 US 12,603,809 US 12,652,330 US 12,659,218 US 12,671,750 US 12,706,984 US 12,719,734 US 12,719,735 US 12,719,945 US 12,724,840 US 12,726,551 US 12,739,296 US 12,744,828