Optimizing performance for routing operations
First Claim
1. A computer-implemented method, comprising:
- receiving, by a computer system, a cache operation associated with a cache key;
selecting, by the computer system, a front end node from a plurality of front end nodes in a distributed system, each of the plurality of front end nodes having a bucket map and a routing table, wherein the bucket map provides a mapping between a plurality of cache keys and a plurality of identifiers;
enabling the front end node to select a particular cache node from a set of cache nodes on which to perform a cache operation, the particular cache node selected based at least in part on the bucket map and the routing table;
detecting, by the computer system, a mutation event for the set of cache nodes, the mutation event indicating an increase in a number of the set of cache nodes operable at a threshold level;
upon detecting the mutation event, calculating a hashing function for the bucket map that provides for a plurality of the set of cache nodes to remain mapped to a number of same identifiers as provided in the bucket map; and
modifying the bucket map with the calculated hashing function, wherein modifying the bucket map includes redistributing cache operations to new nodes after one or more cache nodes in the set of cache nodes have failed, wherein the new nodes are configured to receive less traffic than other nodes in the set of cache nodes;
wherein upon receiving another cache operation, another front end from the plurality of front end nodes is selected to perform the other cache operation on at least one of the set of cache nodes, the number of the set of cache nodes corresponding to the increase in the number of the set of cache nodes from detection of the mutation event.
1 Assignment
0 Petitions
Accused Products
Abstract
A deploy service is provided to determine a set of software artifacts that needs to be transmitted to a target machine upon receiving an application deployment request from a user of a client device. For instance, the deploy service may compare versions of software artifacts on the target machine with the software artifacts of the application that the user desires to deploy to determine the set of software artifacts that needs to be transmitted. Instead of having to transmit the entire application, some embodiments transmit only a small portion that is reflective of what has been changed between the old version of the application and the new version of the application. This enables the transfer of large files across the Internet to be more efficient.
58 Citations
23 Claims
-
1. A computer-implemented method, comprising:
-
receiving, by a computer system, a cache operation associated with a cache key; selecting, by the computer system, a front end node from a plurality of front end nodes in a distributed system, each of the plurality of front end nodes having a bucket map and a routing table, wherein the bucket map provides a mapping between a plurality of cache keys and a plurality of identifiers; enabling the front end node to select a particular cache node from a set of cache nodes on which to perform a cache operation, the particular cache node selected based at least in part on the bucket map and the routing table; detecting, by the computer system, a mutation event for the set of cache nodes, the mutation event indicating an increase in a number of the set of cache nodes operable at a threshold level; upon detecting the mutation event, calculating a hashing function for the bucket map that provides for a plurality of the set of cache nodes to remain mapped to a number of same identifiers as provided in the bucket map; and modifying the bucket map with the calculated hashing function, wherein modifying the bucket map includes redistributing cache operations to new nodes after one or more cache nodes in the set of cache nodes have failed, wherein the new nodes are configured to receive less traffic than other nodes in the set of cache nodes; wherein upon receiving another cache operation, another front end from the plurality of front end nodes is selected to perform the other cache operation on at least one of the set of cache nodes, the number of the set of cache nodes corresponding to the increase in the number of the set of cache nodes from detection of the mutation event. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computer-implemented method, comprising:
-
receiving, by a computer system, a first cache operation to be performed on a particular cache node of a set of cache nodes, the particular cache node selected by mapping a cache key associated with the first cache operation to an identifier in a bucket map and by selecting the particular cache node corresponding to the identifier using a routing table, the bucket map providing a mapping for a plurality of cache keys to a plurality of identifiers and the routing table providing a mapping for the plurality of identifiers to the set of cache nodes; detecting, by the computer system, a mutation event for the set of cache nodes, the mutation event indicating a change in a number of the set of cache nodes operable at a threshold level; upon detecting the mutation event, calculating a hashing function for the bucket map that provides for a plurality of the set of cache nodes to remain mapped to a number of same identifiers as provided in the bucket map; modifying the bucket map with the calculated hashing function, wherein modifying the bucket map includes redistributing cache operations to new nodes after one or more cache nodes in the set of cache nodes have failed, wherein the new nodes are configured to receive less traffic than other nodes in the set of cache nodes; updating the routing table to provide that the set of cache nodes to which the plurality of identifiers is mapped corresponds to the change in the number of the set of cache nodes; and receiving a second cache operation to be performed on the particular cache node of the set of cache nodes; wherein detection of the mutation event causes the second cache operation to be performed on another cache node in the set of cache nodes besides the particular cache node. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. An electronic device, comprising:
-
a processor; and a memory device including instructions that, when executed by the processor, cause the electronic device to; receive a first cache operation to be performed on a particular cache node of a set of cache nodes, the particular cache node selected by mapping a cache key associated with the first cache operation to an identifier in a bucket map and by selecting the particular cache node corresponding to the identifier using a routing table, the bucket map providing a mapping for a plurality of cache keys to a plurality of identifiers and the routing table providing a mapping for the plurality of identifiers to the set of cache nodes; detect a mutation event for the set of cache nodes, the mutation event indicating a change in a number of the set of cache nodes operable at a threshold level; upon detecting the mutation event, calculate a hashing function for the bucket map that provides for a plurality of the set of cache nodes to remain mapped to a number of same identifiers as provided in the bucket map; modify the bucket map with the calculated hashing function, wherein modifying the bucket map includes redistributing cache operations to new nodes after one or more cache nodes in the set of cache nodes have failed, wherein the new nodes are configured to receive less traffic than other nodes in the set of cache nodes; update the routing table to provide that the set of cache nodes to which the plurality of identifiers is mapped corresponds to the change in the number of the set of cache nodes; and receive a second cache operation to be performed on the particular cache node of the set of cache nodes; wherein detection of the mutation event causes the second cache operation to be performed on another cache node in the set of cache nodes besides the particular cache node. - View Dependent Claims (17, 18, 19)
-
-
20. A non-transitory computer-readable storage medium including instructions for identifying items, the instructions when executed by a processor of a computing device causing the computing device to:
-
receive a first cache operation to be performed on a particular cache node of a set of cache nodes, the particular cache node selected by mapping a cache key associated with the first cache operation to an identifier in a bucket map and by selecting the particular cache node corresponding to the identifier using a routing table, the bucket map providing a mapping for a plurality of cache keys to a plurality of identifiers and the routing table providing a mapping for the plurality of identifiers to the set of cache nodes; detect a mutation event for the set of cache nodes, the mutation event indicating a change in a number of the set of cache nodes operable at a threshold level; upon detecting the mutation event, calculate a hashing function for the bucket map that provides for a plurality of the set of cache nodes to remain mapped to a number of same identifiers as provided in the bucket map; modify the bucket map with the calculated hashing function, wherein modifying the bucket map includes redistributing cache operations to new nodes after one or more cache nodes in the set of cache nodes have failed, wherein the new nodes are configured to receive less traffic than other nodes in the set of cache nodes; update the routing table to provide that the set of cache nodes to which the plurality of identifiers is mapped corresponds to the change in the number of the set of cache nodes; and receive a second cache operation to be performed on the particular cache node of the set of cache nodes; wherein detection of the mutation event causes the second cache operation to be performed on another cache node in the set of cache nodes besides the particular cache node. - View Dependent Claims (21, 22, 23)
-
Specification