Independent evictions from datastore accelerator fleet nodes
AssigneeAmazon Technologies, Inc.
InventorsKiran Kumar Muniswamy Reddy, Anand Sasidharan, Omer Ahmed Zaki, Brian O'Neill
Life of this patent
Estimating the term…
Abstract
A fleet of query accelerator nodes is established for a data store. Each accelerator node caches data items of the data store locally. In response to determining that an eviction criterion has been met, one accelerator node removes a particular data item from its local cache without notifying any other accelerator node. After the particular data item has been removed, a second accelerator node receives a read query for the particular data item and provides a response using a locally-cached replica of the data item.
Claims21
A system, comprising:
- a plurality of query accelerator nodes associated with a first data store of a provider network, including a first query accelerator node implemented at a first computing device, a second query accelerator node implemented at a second computing device, and a third query accelerator node implemented at a third computing device;
- wherein the first query accelerator node is configured to:
- in response to determining that a first data item requested by a client of the first data store is not present in a first local cache,
- store, in the first local cache, contents of the first data item obtained from one or more storage nodes of the first data store;
- and
- initiate a propagation of respective replicas of the first data item to at least the second and third query accelerator nodes;
- wherein the second query accelerator node is configured to:
- store a first replica of first data item, received from the first query accelerator node, in a second local cache;
- in response to determining that the first replica meets a first eviction criterion, remove the first replica from the second local cache without coordinating the removal of the first replica with the first query accelerator node;
- and
- in response to receiving a particular read query for the first data item after removing the first replica, obtain another replica of the first data item from a first source selected according to a first read miss processing rule;
- and
- wherein the third query accelerator node is configured to:
- store a second replica of the first data item, received from the first query accelerator node, in a third local cache;
- in response to determining that the second replica meets a second eviction criterion, remove the second replica from the third local cache;
- and
- in response to receiving a different read query for the first data item after removing the second replica, obtain an additional replica of the first data item from a different source.
A method, comprising:
- storing, by a first query accelerator node of a fleet of query accelerator nodes configured for a data store, wherein individual ones of the query accelerator nodes are executed at respective computing devices, a first replica of a first data item in a first local cache;
- storing, by a second query accelerator node of the fleet, a second replica of the first data item in a second local cache;
- in response to determining, at the first query accelerator node, that the first replica meets a first eviction criterion, removing the first replica from the first local cache without initiating a notification of the removal to the second query accelerator node;
- and
- in response to receiving, at the second query accelerator node after the first replica has been removed from the first local cache, a first read request for the first data item from a first client-side component of the data store, transmitting at least a portion of the second replica to the first client-side component from the second local cache.
A non-transitory computer-accessible storage medium storing program instructions that when executed on one or more processors implements a particular query accelerator node of a fleet of query accelerator nodes associated with a data store, wherein the particular query accelerator node is configured to:
- obtain a first replica of a first data item of the data store;
- store the first replica in a first local cache;
- in response to determining that the first replica meets a first eviction criterion, remove the first replica from the first local cache without initiating a notification of the removal to another query accelerator node of the fleet;
- and
- in response to receiving a first read query from a client-side component of the data store, wherein the first query comprises a first query predicate,
- determine, based at least in part on an examination of the first local cache, that a response to the first read query can be generated using one or more objects stored in the first local cache, wherein the one or more objects were stored in the first local cache in response to receiving a different read query with a different query predicate;
- and
- transmit, to the first client-side component, a response corresponding to the first read query without communicating with a storage node of the data store.
Dependencies are inferred from the claim text.