Distributed caching cluster client configuration
First Claim
Patent Images
1. A computer-implemented method for a distributed memory caching configuration, comprising:
- receiving, by a client device from a first memory caching node in a cache cluster, a current configuration of the cache cluster, the cache cluster comprising a set of memory caching nodes, each of the memory caching nodes in the set of memory caching nodes comprising a reserved memory space that stores the current configuration, the set of memory caching nodes being part of a first network, the client device being part of a second network that is separate from the first network, and the reserved memory space being exempt from rules of a caching protocol;
defining, by the client device, a key space for each memory caching node in the set of memory caching nodes in the cache cluster based at least in part on the configuration;
requesting, by the client device utilizing the caching protocol, a first set of values corresponding to a first set of keys from the cache cluster using the key space to determine which memory caching node to contact for each key of the first set of keys;
monitoring, by the client device, responses from the cache cluster;
determining, from the monitoring, that a latency of a response from a memory caching node has increased beyond a threshold;
transmitting, by the client device utilizing an extension of the caching protocol, a provisioning request for a new memory caching node to be added to the cache cluster, the transmitting of the provisioning request being based at least in part on the determining that the latency has increased beyond the threshold, and the extension of the caching protocol being configured to modify the reserved memory space;
receiving, by the client device from a second memory caching node in the cache cluster, an updated configuration of the cache cluster identifying changes to the cache cluster, the second memory caching node being different from the first memory caching node in the cache cluster, and the updated configuration being received independent from a request by the client device;
determining a revised key space for each memory caching node in the set of memory caching nodes in the cache cluster affected by the updated configuration; and
requesting a second set of values corresponding to a second set of keys from the cache cluster using the revised key space to determine which memory caching node to contact for each key of the second set of keys.
1 Assignment
0 Petitions
Accused Products
Abstract
A cache or other cluster is configuration-aware such that initialization and changes to the underlying structure of the cluster can be dynamically updated for use by a client. A client may use a client driver as an intermediary that is responsible for managing the communication with the cluster. For example, a client driver may resolve an alias from a static configuration endpoint to a storage node. The client driver may request an initial configuration from the storage node and then update configuration from one or more storage nodes that store current configuration of the cluster.
-
Citations
24 Claims
-
1. A computer-implemented method for a distributed memory caching configuration, comprising:
-
receiving, by a client device from a first memory caching node in a cache cluster, a current configuration of the cache cluster, the cache cluster comprising a set of memory caching nodes, each of the memory caching nodes in the set of memory caching nodes comprising a reserved memory space that stores the current configuration, the set of memory caching nodes being part of a first network, the client device being part of a second network that is separate from the first network, and the reserved memory space being exempt from rules of a caching protocol; defining, by the client device, a key space for each memory caching node in the set of memory caching nodes in the cache cluster based at least in part on the configuration; requesting, by the client device utilizing the caching protocol, a first set of values corresponding to a first set of keys from the cache cluster using the key space to determine which memory caching node to contact for each key of the first set of keys; monitoring, by the client device, responses from the cache cluster; determining, from the monitoring, that a latency of a response from a memory caching node has increased beyond a threshold; transmitting, by the client device utilizing an extension of the caching protocol, a provisioning request for a new memory caching node to be added to the cache cluster, the transmitting of the provisioning request being based at least in part on the determining that the latency has increased beyond the threshold, and the extension of the caching protocol being configured to modify the reserved memory space; receiving, by the client device from a second memory caching node in the cache cluster, an updated configuration of the cache cluster identifying changes to the cache cluster, the second memory caching node being different from the first memory caching node in the cache cluster, and the updated configuration being received independent from a request by the client device; determining a revised key space for each memory caching node in the set of memory caching nodes in the cache cluster affected by the updated configuration; and requesting a second set of values corresponding to a second set of keys from the cache cluster using the revised key space to determine which memory caching node to contact for each key of the second set of keys. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A computer-implemented method for communicating with a distributed caching system, comprising:
-
receiving, by a client device from a storage node in a cache cluster, a configuration describing a set of storage nodes in the cache cluster, the set of storage nodes individually comprising a reserved memory space that stores a current configuration of the cache cluster, the set of storage nodes being part of a first network, the client device being a part of a second network that is separate from the first network, and the reserved memory space being exempt from rules of a caching protocol; determining, by the client device, that particular data of the set of storage nodes is accessed with a frequency above a threshold; transmitting, by the client device utilizing an extension of the caching protocol, a provisioning request for a new storage node to be added to the cache cluster, the transmitting of the provisioning request being based at least in part on determining that the particular data is accessed with the frequency above the threshold, and the extension of the caching protocol being configured to modify the reserved memory space; receiving, by the client device from a different storage node in the cluster, an updated configuration describing the set of storage nodes in the cluster, the set of storage nodes comprising the new storage node; receiving a request for a key; and determining, by the client device, an assignment of the key to the storage node in the cluster based at least in part on the configuration. - View Dependent Claims (9, 10, 11)
-
-
12. A computer system for providing communication with a cache cluster, comprising:
-
one or more computing resources having one or more processors and memory including executable instructions that, when executed by the one or more processors, cause the one or more processors to implement at least; a driver of a client device of a first network that updates a configuration retrieved from a plurality of memory caching nodes of a cache cluster that utilizes a second network that is separate from the first network, each memory caching node of the cache cluster storing the configuration in a reserved memory space of the each memory caching node that is exempt from rules of a caching protocol, the configuration identifying the plurality of memory caching nodes in the cache cluster, the driver providing access to data within the cache cluster based at least in part on the configuration, the driver being configured to transmit a provisioning request for a new memory caching node to be added to the cache cluster when it is determined that a latency of a response from a memory caching node has increased beyond a threshold, the driver being configured to transmit the provisioning request utilizing an extension of the caching protocol, and the extension being configured to modify the reserved memory space; and an application configured to communicate with the cache cluster through the driver such that changes to the cache cluster are resolved by the driver. - View Dependent Claims (13, 14, 15, 16)
-
-
17. One or more non-transitory computer-readable storage media having collectively stored thereon executable instructions that, when executed by one or more processors of a computer system, cause the computer system to at least:
-
receive, by a client device of a first network, from a first memory caching node in a cache cluster of a second network that is separate from the first network, a configuration describing a set of memory caching nodes in the cache cluster, the set of memory caching nodes individually storing configuration data in a reserved memory space, and the reserved memory space being exempt from rules of a caching protocol, determine, by the client device, a first assignment of results of a hashing function to the set of memory caching nodes based at least in part on the configuration; transmit, by the client device utilizing an extension of the caching protocol, a provisioning request for a new memory caching node to be added to the cache cluster, the transmitting of the provisioning request being based at least in part on determining that a latency of a response from the first memory caching node has increased beyond a threshold, the extension being configured to modify the reserved memory space; receive, by the client device from a second memory caching node in the cache cluster, an updated configuration describing the set of memory caching nodes having been modified, the first memory caching node being different than the second memory caching node, the updated configuration being received independent from a request; and determine a second assignment of results of the hashing function to the set of memory caching nodes based at least in part on the updated configuration. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24)
-
Specification