IP Library Granted Patent US 10,650,003
Granted Patent B1
US 10,650,003 · App. 15/087,906 · Granted May 12, 2020

Expiration of elements associated with a probabilistic data structure

Inventors: Gregory Alan Rubin (Seattle, WA); Petr Praus (Seattle, WA); Benjamin Tillman Farley (Seattle, WA)
Assignee: Amazon Technologies, Inc.
G06F16/24573G06F16/2365G06F16/28
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,650,003
App. No.
15/087,906
Granted
May 12, 2020
Kind
B1
Abstract

A computing resource service receives a request. In response to the request, the computing resource service queries a probabilistic data structure for an entry corresponding to the request. The computing resource service obtains, from the probabilistic data structure, a value that corresponds to the entry. Based at least in part on this value, the computing resource service determines whether the entry has expired. If the entry is expired, the request is fulfilled. However, if the entry has not expired, the request is denied.

Claims (103)

1. A computer-implemented method, comprising:

obtaining a request to utilize a set of credentials associated with a user account, the request specifying an identifier that corresponds to the set of credentials;

querying a probabilistic data structure to obtain, from the probabilistic data structure, a credential iteration value for an entry corresponding to the identifier, the credential iteration value corresponding to a time that the set of credentials was last used;

generating, based at least in part on the credential iteration value obtained from the probabilistic data structure, a determination as to whether the set of credentials has expired; and

providing a response to the request based at least in part on the determination such that:

on a condition that the determination specifies that the set of credentials has expired, the response indicates that the set of credentials has expired; and

on a condition that the determination specifies that the set of credentials has not expired, the response indicates that the set of credentials is valid.

2. The computer-implemented method of claim 1 , wherein the method further comprises:

obtaining the credential iteration value; and

updating the credential iteration value within the probabilistic data structure.

3. The computer-implemented method of claim 1 , wherein the method further comprises:

obtaining a second credential iteration value for a second set of credentials;

querying the probabilistic data structure to determine a second credential iteration value;

determining, based at least in part on a difference between the credential iteration value and the second credential iteration value, that the second set of credentials may be used; and

updating the credential iteration value, in the probabilistic data structure, for the second set of credentials to a new credential iteration value that is an incremental increase of the credential iteration value.

4. The computer-implemented method of claim 1 , wherein:

the probabilistic data structure is a Bloom filter; and

querying the Bloom filter to determine the value for the entry corresponding to the set of credentials for the account includes:

using the set of credentials as input into an entry function to obtain an output value;

hashing the output value to identify a set of elements within the Bloom filter, the set of elements specifying the credential iteration value; and

evaluating the set of elements within the Bloom filter to obtain the credential iteration value.

5. A system, comprising:

one or more processors; and

memory including instructions that, as a result of being executed by the one or more processors, cause the system to:

query a probabilistic data structure for an entry corresponding to a request, the entry corresponding to a set of credentials for an account;

obtain, from the probabilistic data structure, a value corresponding to the entry and to an expiration, the value further denoting a credential iteration value;

determine, based at least in part on the credential iteration value, whether the set of credentials exists in a previous set of credentials used in association with the account;

determine, based at least in part on the value corresponding to the entry, whether the expiration has occurred; and

determine, based at least in part on whether the expiration has occurred, a manner of processing the request.

6. The system of claim 5 , wherein the instructions further cause the system to:

utilize the entry corresponding to the request as an input to an entry function to obtain an output value;

hash the output value to identify a set of elements of the probabilistic data structure that correspond to the output value; and

evaluate the set of elements of the probabilistic data structure to obtain the value.

7. The system of claim 5 , wherein the instructions further cause the system to:

determine, in response to the query to the probabilistic data structure, that the entry corresponds to at least a first value and to at least a second value, the first value usable to determine that the entry has expired and the second value usable to determine that the entry has not expired; and

select a lowest value of the first value and the second value to obtain the value corresponding to the entry.

8. The system of claim 5 , wherein the probabilistic data structure is a Bloom filter comprising a set of elements whereby at least one or more elements of the set of elements are used to denote presence of the entry within the Bloom filter.

9. The system of claim 5 , wherein the request is to obtain data and the entry corresponds to a previous request to obtain the data such that:

upon a determination, based at least in part on the value corresponding to the entry, that the previous request to obtain the data has expired, the data is provided to fulfill the request; and

upon a determination, based at least in part on the value corresponding to the entry, that the previous request to obtain the data has not expired, the data is added to the probabilistic data structure and the data is provided to fulfill the request.

10. The system of claim 5 , wherein:

the request is to access a computing resource service;

the entry corresponds to one or more credentials associated with a user computer device of the computing resource service;

the value corresponding to the entry denotes a timestamp corresponding to a time at which a previous request to access the computing resource service was received; and

the instructions further cause the system to calculate, based at least in part on a time at which the request was received and the timestamp, an expiration period usable to determine whether the expiration has occurred.

11. The system of claim 5 , wherein the instructions further cause the system to:

obtain a second request;

query the probabilistic data structure for an entry corresponding to the second request in the probabilistic data structure;

determine that the entry corresponding to the second request is not present in the probabilistic data structure;

fulfill the second request; and

add a second value for the entry corresponding to the second request to the probabilistic data structure, the second value usable to determine whether an expiration has occurred for the entry corresponding to the second request.

12. The system of claim 5 , wherein:

the instructions further cause the system to:

query the probabilistic data structure for a second entry corresponding to a second set of credentials for the account, the second set of credentials used to access the account;

obtain, from the probabilistic data structure, a second value corresponding to the second entry;

calculate a difference between the value and the second value; and

determine whether the difference is greater than a credential expiration value, the credential expiration value usable to determine whether the set of credentials is a member of a set of credentials that cannot be implemented such that:

if the difference is greater than the credential expiration value, the request is fulfilled; and

if the difference is less than the credential expiration value, the request is denied.

13. A non-transitory computer-readable storage medium storing thereon executable instructions that, as a result of being executed by one or more processors of a computer system, cause the computer system to at least:

obtain a request to utilize a set of credentials associated with a user account, the request associated with an entry that corresponds to the set of credentials;

utilize the entry as input into an entry function to obtain an output value that denotes an credential iteration value;

determine, based at least on the credential iteration value, that the set of credentials is not in a set of previously used credentials;

determine, based at least in part on the output value, a set of elements of a probabilistic data structure; and

update the set of elements of the probabilistic data structure to specify a value that indicates a condition for expiration of the set of credentials.

14. The non-transitory computer-readable storage medium of claim 13 , wherein:

the probabilistic data structure is a Bloom filter; and

the instructions further cause the computer system to hash the output value to determine the set of elements of the Bloom filter that are to be updated.

15. The non-transitory computer-readable storage medium of claim 13 , wherein the instructions further cause the computer system to:

obtain a second request, the second request being the same as the request and received at a time later than the request;

query the probabilistic data structure for the entry associated with the request;

obtain, from the probabilistic data structure, the value;

determine, based at least in part on the value, whether the entry associated with the request has expired; and

determine, based at least in part on whether the entry associated with the request has expired, whether to fulfill the second request.

16. The non-transitory computer-readable storage medium of claim 15 , wherein the instructions further cause the computer system to:

determine, in response to the query, that the entry corresponds to at least a first value and to at least a second value;

select a lowest value of the first value and of the second value; and

use the lowest value to determine if the entry has expired.

17. The non-transitory computer-readable storage medium of claim 15 , wherein:

the second request is to retrieve data from a server and the entry corresponds to a previously obtained request to retrieve the data; and

the instructions further cause the computer system to:

use the value associated with the entry to determine whether the previously obtained request to retrieve the data has expired; and

if the previously obtained request to retrieve the data has not expired, store the data in a cache and provide the data to fulfill the second request.

18. The non-transitory computer-readable storage medium of claim 15 , wherein:

the instructions further cause the computer system to:

query the probabilistic data structure for a second entry corresponding to an active set of credentials for the account;

obtain, from the probabilistic data structure, a second iteration value corresponding to the second entry;

calculate a difference between the second iteration value and the iteration value; and

determine whether the difference is greater than a credential expiration value, the credential expiration value usable to determine whether the set of credentials is a member of the set of previously used credentials that cannot be associated with the account such that:

upon a determination that the difference is greater than the credential expiration value, the second request is fulfilled; and

upon a determination that the difference is less than the credential expiration value, the second request is denied.

19. The non-transitory computer-readable storage medium of claim 15 , wherein:

the second request is to access a computing resource service;

the entry corresponds to a set of credentials associated with a user computer device;

the value corresponding to the entry denotes a timestamp corresponding to a time at which a previous request to access the computing resource service was received;

the instructions further cause the computer system to:

calculate, based at least in part on a time at which the request was received and the timestamp, an expiration period; and

determine, based at least in part on the expiration period, if the entry has expired.

20. The non-transitory computer-readable storage medium of claim 13 , wherein the instructions further cause the computer system to:

query the probabilistic data structure for the entry;

determine that the entry is not present in the probabilistic data structure;

fulfill the request; and

change the set of elements of the probabilistic data structure from a null value to the value to update the set of elements.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 19, 2016
From: RUBIN, GREGORY ALAN; PRAUS, PETR; FARLEY, BENJAMIN TILLMAN
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 039191/0969 →
Cited By (4)
US 12,192,205 US 12,608,359 US 12,670,279 US 12,693,995