Continuous resource pool balancing

US9614782B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9614782-B2
Application numberUS-201414581397-A
CountryUS
Kind codeB2
Filing dateDec 23, 2014
Priority dateDec 23, 2014
Publication dateApr 4, 2017
Grant dateApr 4, 2017

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.

The disclosure is related to balancing resources between pools of servers, e.g., by moving servers from a first pool of servers to a second pool of servers. The first pool executes a first version of an application, e.g., a desktop version, and the second pool executes a second version of the application, e.g., a mobile version. The technology moves a number of servers from an “OK” pool to a “not OK” pool. A “not OK” pool is a pool whose performance metric, e.g., response latency of a server, does not satisfy a criterion, and an “OK” pool is a pool whose performance metric satisfies the criterion even if the number of servers are removed from the pool. The number of servers to be moved is determined as a function of the increase in load which the pool can withstand by remaining in OK state even after the servers are removed.

First claim

Opening claim text (preview).

We claim: 1. A method performed by a computing system, comprising: executing multiple pools of servers in a distributed computing system, the pools of servers including: a first pool of servers executing multiple instances of a first version of an application, and a second pool of servers executing multiple instances of a second version of the application; determining that the first pool is in a positive state and the second pool is in a negative state as a function of a load of servers in the corresponding pool; predicting a response latency of the first pool of servers if the load of servers in the first pool is increased by a specified percentage above a current load of servers, wherein the predicting the response latency includes: progressively increasing a load of the first pool of servers in a number of increments to generate multiple response latency values corresponding to the increments, the load increased until one of the multiple response latency values exceeds a specified threshold, selecting a specified response latency value from the multiple response latency values that are below the specified threshold, identifying the specified percentage above the current load to which the specified response latency value corresponds, and determining a specified number of servers to be moved from the first pool to the second pool, wherein the specified number is determined as a particular percentage of a total number of servers in the first pool, wherein the particular percentage is determined as a mathematical approximation of the specified percentage; and moving the specified number of servers from the first pool to the second pool, wherein the moving causes the second pool to switch to a positive state. 2. The method of claim 1 , wherein determining that the first pool is in the positive state includes determining that a performance metric of the first pool of servers satisfies a specified criterion even after the specified number of servers are moved from the first pool. 3. The method of claim 2 , wherein the performance metric includes a response latency of the first pool of servers. 4. The method of claim 1 , wherein moving the specified number of servers from the first pool to the second pool includes: terminating execution of instances of the first version of the application on the specified number of servers, and executing instances of the second version of the application on the specified number of servers. 5. The method of claim 1 , wherein executing the multiple pools of servers includes: receiving a request at the distributed computing system from a client computing device to access the first version of the application, and responding to the request by a server from the first pool of servers. 6. The method of claim 5 , wherein receiving the request for accessing the first version of the application includes receiving the request for accessing a non-mobile version of the application. 7. The method of claim 1 , wherein executing the multiple pools of servers includes: receiving a request at the distributed computing system from a client computing device to access the second version of the application, and responding to the request by a server from the second pool of servers. 8. The method of claim 7 , wherein receiving the request for accessing the second version of the application includes receiving the request for accessing a mobile version of the application. 9. A non-transitory computer-readable storage medium storing computer-readable instructions, comprising: instructions for executing multiple pools of servers in a distributed computing system, the pools including: a first pool of servers executing a first set of instances of an application, and a second pool of servers executing a second of set of instances of the application; instructions for determining a current load of a pool of servers of the pools of servers; current load of the pool of server—is increased by a specified percentage; instructions for determining a state of the pool of servers as a positive state if the performance metric satisfies a specified criterion or as a negative state if the performance metric does not satisfy the specified criterion; instructions for predicting a response latency of the first pool of servers if the current load of servers in the first pool is increased by a specified percentage, wherein the predicting the response latency includes: progressively increasing a load of the first pool of servers in a number of increments to generate multiple response latency values corresponding to the increments, the load increased until one of the multiple response latency values exceeds a specified threshold, selecting a specified response latency value from the multiple response latency values that are below the specified threshold, identifying the specified percentage above the current load to which the specified response latency value corresponds and instructions for determining, a specified number of servers to be moved from the first pool to the second pool as a particular percentage of a total number of servers in the first pool, wherein the particular percentage is determined as a mathematical approximation of the specified percentage. 10. The computer-readable storage medium of claim 9 , wherein the instructions for determining the state of the pool of servers further includes: instructions for determining that the first pool is in the positive state and the second pool is in the negative state; and instructions for moving the specified number of servers from the first pool to the second pool. 11. The computer-readable storage medium of claim 10 , wherein the instructions for moving the specified number of servers from the first pool to the second pool includes: instructions for terminating execution of the first set of instances of the application on the specified number of servers, and instructions for executing the second set of instances of the application on the specified number of servers. 12. The computer-readable storage medium of claim 10 , wherein the instructions for moving the specified number of servers from the first pool to the second pool further includes: instructions for determining that the first pool is in the negative state and the second pool is in the positive state, and instructions for moving a second specified number of servers from the second pool to the first pool. 13. The computer-readable storage medium of claim 9 , wherein the instructions for determining the state of the pool of servers includes: instructions for determining that the first pool is in the negative state and the second pool is in the negative state, and instructions for generating a notification to notify a user that the first pool and the second pool are in negative state. 14. A system, comprising: a processor; a first module configured to execute multiple pools of servers in a distributed computing system, the pools of servers including: a first pool of servers executing multiple instances of a first version of an application, and a second pool of servers executing multiple instances of a second version of the application; a second module configured to determine that the first pool is in a positive state and the second pool is in a negative state, the second module configured to determine based on a performance metric of each of the first pool and the second pool, the performance metric being a function of load of servers in the corresponding pool; a third module to predict the response latency of the first pool of servers if the load of servers in the first pool is increased by a specified percentage above a current load of servers, wherein the third module is con

Assignees

Inventors

Classifications

  • Reserving resources in multiple paths to be used simultaneously (by balancing the load H04L47/125) · CPC title

  • H04L47/783Primary

    Distributed allocation of resources, e.g. bandwidth brokers · 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 US9614782B2 cover?
The disclosure is related to balancing resources between pools of servers, e.g., by moving servers from a first pool of servers to a second pool of servers. The first pool executes a first version of an application, e.g., a desktop version, and the second pool executes a second version of the application, e.g., a mobile version. The technology moves a number of servers from an “OK” pool to a “n…
Who is the assignee on this patent?
Facebook Inc
What technology area does this patent fall under?
Primary CPC classification H04L47/783. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Apr 04 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). 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).