IP Library › Granted Patent US 9,448,932
Granted Patent B2
US 9,448,932 · App. 14/451,324 · Granted Sep 20, 2016

System for caching data

Inventors: Jonathan A. Jenkins (Seattle, WA); Mark S. Baumback (Seattle, WA); Ryan J. Snodgrass (Kirkland, WA)
Assignee: Amazon Technologies, Inc.
G06F12/0802G06F12/0815G06F17/30902G06Q30/06H04L67/2852H04L67/2885G06F12/0866G06F2212/163
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,448,932
App. No.
14/451,324
Granted
Sep 20, 2016
Kind
B2
Abstract

A system for caching data in a distributed data processing system allows for the caching of user-modifiable data (as well as other types of data) across one or multiple entities in a manner that prevents stale data from being improperly used.

Claims (37)

1. A method for caching data, comprising:

receiving, from a first client device, a first request to read data from a cache, the first request including a first version identification (VID);

using the first VID received from the first client device as a first key, determining if a matching first key for the requested data exists in the cache, the matching first key comprising a matching first VID;

determining that the matching first key for the requested data exists in the cache;

obtaining at least a portion of the requested data from the cache and sending a reply to the first client device, the reply including the at least a portion of the requested data and the matching first VID for the requested data;

receiving, from a second client device, a second request to read second data from the cache, the second request including a second version identification (VID), the second VID used as a second key;

determining that a matching second key for the requested second data received from the second client device was not found in the cache; and

obtaining the requested second data from a different entity, storing the requested second data in the cache, and sending the requested second data to the second client device.

2. The method of claim 1 , further comprising storing a third version identification (VID) in the cache, the third VID associated with the second data requested by the second client device.

3. The method of claim 2 , further comprising sending to the second client device the third VID associated with the second data requested by the second client device.

4. The method of claim 1 , further comprising obtaining any portion of the requested data not found in the cache from the different entity and storing the portion of the requested data in the cache in response to determining that the matching first key for the requested data exists in the cache.

5. The method of claim 4 , further comprising obtaining a latest VID from the different entity and storing the latest VID and the obtained portion of the requested data in the cache.

6. A non-transitory computer readable storage medium storing a plurality of instructions for controlling a computer system to cache data, which when executed cause the computer system to:

receive, from a first client device, a first request to read data from a cache, the first request including a first version identification (VID);

use the first VID received from the first client device as a first key to determine if a matching first key for the requested data exists in the cache, the matching first key comprising a matching first VID;

determine that the matching first key for the requested data exists in the cache;

obtain at least a portion of the requested data from the cache and send a reply to the first client device, the reply including the at least a portion of the requested data and the matching first VID for the requested data;

receive, from a second client device, a second request to read second data from a cache, the second request including a second version identification (VID), the second VID used as a second key;

determine that a matching second key for the requested second data was not found in the cache; and

obtain the requested second data from a different entity, store the requested second data in the cache, and send the requested second data to the second client device.

7. The non-transitory computer-readable storage medium of claim 6 , the instructions further configured to store a third version identification (VID) in the cache, the third VID associated with the second data requested by the second client device.

8. The non-transitory computer-readable storage medium of claim 7 , the instructions further configured to send to the second client device the third VID associated with the second data requested by the second client device.

9. The non-transitory computer-readable storage medium of claim 6 , the instructions further configured to obtain any portion of the requested data not found in the cache from the different entity and storing the portion of the requested data in the cache in response to determining that the matching first key for the requested data exists in the cache.

10. A computer system for caching data, comprising:

one or more processors; and

memory including instructions that, when executed by the one or more processors, cause the system to:

receive, from a first client device, a first request to read data from a cache, the first request including a first version identification (VID);

using the first VID received from the first client device as a first key, determine if a matching first key for the requested data exists in the cache, the matching first key comprising a matching first VID

determine that the matching first key for the requested data exists in the cache;

obtain at least a portion of the requested data from the cache and send a reply to the first client device, the reply including the at least a portion of the requested data and the matching first VID for the requested data;

receive, from a second client device, a second request to read second data from a cache, the second request including a second version identification (VID), the second VID used as a second key;

determine that a matching second key for the requested second data was not found in the cache; and

obtain the requested second data from a different entity, storing the requested second data in the cache, and sending the requested second data to the second client device.

11. The system of claim 10 , the instructions further causing the system to store a third version identification (VID) in the cache, the third VID associated with the second data requested by the second client device.

12. The system of claim 11 , the instructions further causing the system to send to the second client device the third VID associated with the second data requested by the second client device.

13. The system of claim 10 , the instructions further causing the system to obtain any portion of the requested data not found in the cache from the different entity and store the portion of the requested data in the cache in response to determining that the matching first key for the requested data exists in the cache.

14. The system of claim 13 , the instructions further causing the system to obtain a latest VID from the different entity and store the latest VID and the obtained portion of the requested data in the cache.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 8, 2015
From: JENKINS, JONATHAN A.; BAUMBACK, MARK S.; SNODGRASS, RYAN J.
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 037242/0315 →
Continuity (3)
Continuation 13494682 · Jun 12, 2012
Division 12059406 · Mar 31, 2008
Related Publication 20140344520A1 · Nov 20, 2014