Distributed caching system
AssigneeAmazon Technologies, Inc.
InventorsVishal Parakh, Antoun Joubran Kanawati
Life of this patent
Estimating the term…
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.
Claims22
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.
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.
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.
Dependencies are inferred from the claim text.