Optimizing performance for routing operations

US8984162B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-8984162-B1
Application numberUS-201113287843-A
CountryUS
Kind codeB1
Filing dateNov 2, 2011
Priority dateNov 2, 2011
Publication dateMar 17, 2015
Grant dateMar 17, 2015

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

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.

First claim

Opening claim text (preview).

What is claimed is: 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. 2. The computer-implemented method of claim 1 , wherein the routing table provides a mapping for the plurality of identifiers to the set of cache nodes. 3. The computer-implemented method of claim 2 , wherein the particular cache node is selected by a load balancer when either the routing table or the bucket map is unavailable. 4. The computer-implemented method of claim 1 , wherein the routing table is provided through a routing table service that is contacted by the front end when the front end is determining the particular cache node to perform the cache operation. 5. The computer-implemented method of claim 1 , wherein the mutation event is detected when a pre-specified heartbeat response is not received from at least one of the set of cache nodes within a threshold duration. 6. The computer-implemented method of claim 1 , wherein an amount of redistributed cache operations received by the new nodes increases as a function of time. 7. The computer-implemented method of claim 1 , wherein the new nodes are assigned cache operations that correspond to buckets that have not been used within a predefined period of time. 8. The computer-implemented method of claim 1 , further comprising maintaining a historical record for the particular cache node, the historical record indicating one or more originators of cache operations for which the particular cache node was selected, wherein selecting the particular cache node is further based at least in part on the maintained historical data. 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. 10. The computer-implemented method of claim 9 , wherein the particular cache node is a durable storage that persists throughout a particular caching request. 11. The computer-implemented method of claim 9 , wherein the mutation event is caused by discovering an additional cache node that is operable to perform cache operations. 12. The computer-implemented method of claim 9 , wherein the routing table is rerouted based at least in part on traffic going through each of the set of cache nodes to provide a workload among the set of cache nodes that is evenly distributed. 13. The computer-implemented method of claim 9 , wherein detecting the mutation event comprises: periodically requesting a response from each of the set of cache nodes; and failing to receive an expected response from at least one of the set of cache nodes. 14. The computer-implemented method of claim 9 , wherein the mutation event is detected when a heartbeat response is not received from at least one of the set of cache nodes within a threshold duration. 15. The computer-implemented method of claim 9 , wherein the routing table is updated based on traffic going through each of the set of cache nodes and a number of entries to which each of the set of cache nodes are mapped to in the routing table. 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 fail

Assignees

Inventors

Classifications

  • G06F13/385Primary

    for adaptation of a particular data processing system to different peripheral devices · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US8984162B1 cover?
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…
Who is the assignee on this patent?
Allen Nicholas A, Dykhno Elena, Amazon Tech Inc
What technology area does this patent fall under?
Primary CPC classification G06F13/385. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Mar 17 2015 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).