IP Library Granted Patent US 10,440,136
Granted Patent B2
US 10,440,136 · App. 15/231,812 · Granted Oct 8, 2019

Method and system for resource scheduling

Inventors: Lei Pan (Hangzhou, CN); Lin Yang (Hangzhou, CN); Liangliang Mao (Hangzhou, CN)
Assignee: ALIBABA GROUP HOLDING LIMITED
H04L67/28G06F9/46G06F9/505H04L67/1029H04L67/1031H04L67/325G06F2209/548H04L67/2871
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,440,136
App. No.
15/231,812
Granted
Oct 8, 2019
Kind
B2
Abstract

An apparatus and method for resource scheduling on an application system utilizing a proxy server, the application system including one or more hosts and running one or more applications, each of the one or more applications having one or more instances. The method includes monitoring a request queue of application requests, at the proxy server, to be processed by the application system for the one or more applications, and scheduling computing resources of the application system for an application of the one or more applications according to a predetermined scheduling rule and a status of the request queue.

Claims (66)

1. A method for resource scheduling, the method comprising:

monitoring at a proxy server, by a scheduling system, a request queue of application requests on an application system utilizing the proxy server, the application system including one or more hosts and running one or more applications to be processed by the application system, each of the one or more applications having one or more instances;

determining, by the scheduling system, a status of the request queue, the status of the request queue including one or more blocked requests issued by the proxy server to the one or more hosts; and

scheduling, by the scheduling system, computing resources of the application system for an application of the one or more applications according to a predetermined scheduling rule and the status of the request queue.

2. The method according to claim 1 , the monitoring the request queue comprising:

determining, from the request queue, a number of application requests; and

performing a statistical analysis, based on the number of application requests, to obtain the status of the request queue.

3. The method according to claim 2 , wherein the number of the application requests comprises at least one of requests chosen from a group of requests consisting of a number of the application requests corresponding to each application of the one or more applications, a number of the application requests corresponding to each instance of the one or more instances of each of the one or more applications running on the one or more hosts, and a number of the application requests corresponding to each host of the one or more hosts.

4. The method according to claim 2 , the determining the number of the application requests comprising:

determining the number of the application requests in the request queue via an exposed Application Programming Interface (API) of the proxy server.

5. The method according to claim 4 ,

wherein a number of submitted requests and a number of processed requests is received from the proxy server via the API, and

wherein the determining the number of the application requests in the request queue is determining a difference between the number of the submitted requests and the number of the processed requests.

6. The method according to claim 4 , the determining the number of the application requests comprising:

accessing a Uniform Resource Locator (URL) provided by the API; and

acquiring, from page data corresponding to the URL, the number of the application requests in the request queue.

7. The method according to claim 3 , the scheduling the computing resources of the application system for the application comprising at least one of:

generating new instances, for each application of the one or more applications, when a status of the request queue corresponding to the application satisfies a first expansion condition, and reducing instances, for each application of the one or more applications, when the status of the request queue corresponding to the application satisfies a first contraction condition;

increasing the computing resources, for each instance of the one or more instances of each of the one or more applications, when a status of the request queue corresponding to the instance satisfies a second expansion condition, and reducing the computing resources, for each instance of the one or more instances of each of the one or more applications, when the status of the request queue corresponding to the respective instance satisfies a second contraction condition; and

using, for each host of the one or more hosts, other hosts of the one or more hosts to share a load of the host when a status of the request queue corresponding to the host satisfies a third expansion condition, and using, for each host of the one or more hosts, the host to share a load of other hosts of the one or more hosts when the status of the request queue corresponding to the host satisfies a third contraction condition,

wherein an expansion condition is a predetermined condition indicating a high utilization of the computing resources of the application system, and

wherein a contraction condition is a predetermined condition indicating a low utilization of the computing resources of the application system.

8. The method according to claim 2 , the scheduling the computing resources of the application system for the application comprising at least one of:

increasing, for each application of the one or more applications, a number of instances of the application when an average resource utilization of all instances of the one or more instances of the application is greater than or equal to a predetermined first upper limit, and decreasing the number of instances of the application when the average resource utilization is less than or equal to a predetermined first lower limit; and

increasing, for each instance of the one or more instances of each of the one or more applications, computing resources of the instance when a maximum resource utilization of the instance is greater than or equal to a predetermined second upper limit, and decreasing, for each instance of the one or more instances of each of the one or more applications, the computing resources of the instance when the maximum resource utilization of the instance is less than or equal to a predetermined second lower limit.

9. A scheduling system for resource scheduling, the apparatus comprising:

one or more processors; and

a non-transitory computer-readable memory storing instructions executable by the one or more processors, the instructions causing the scheduling system to:

monitor, at a proxy server, a request queue of application requests on an application system utilizing the proxy server, the application system including one or more hosts and running one or more applications to be processed by the application system, each of the one or more applications having one or more instances;

determining, by the scheduling system, a status of the request queue, the status of the request queue including one or more blocked requests issued by the proxy server to the one or more hosts; and

schedule computing resources of the application system for an application of the one or more applications according to a predetermined scheduling rule and the status of the request queue.

10. The apparatus according to claim 9 , wherein the instruction to monitor further causes the scheduling system to:

determine, from the request queue, a number of application requests; and

perform a statistical analysis, based on the number of application requests, to obtain the status of the request queue.

11. The apparatus according to claim 10 , wherein the number of the application requests comprises at least one of a number of the application requests corresponding to each application of the one or more applications, a number of the application requests corresponding to each instance of the one or more instances of each of the one or more applications running on the one or more hosts, and a number of the application requests corresponding to each host of the one or more hosts.

12. The apparatus according to claim 10 , wherein the instruction to monitor further causes the scheduling system to determine the number of the application requests in the request queue via an exposed Application Programming Interface (API) of the proxy server.

13. The apparatus according to claim 12 ,

wherein a number of submitted requests and a number of processed requests is received from the proxy server via the API, and

wherein the number of the application requests in the request queue is determined as a difference between the number of the submitted requests and the number of the processed requests.

14. The apparatus according to claim 12 , wherein the instruction to monitor further causes the scheduling system to:

access a Uniform Resource Locator (URL) provided by the API; and

acquire, from page data corresponding to the URL, the number of the application requests in the request queue.

15. The system according to claim 11 , wherein the scheduling circuitry is further configured to at least one of:

generate new instances, for each application of the one or more applications, when a status of the request queue corresponding to the application satisfies a first expansion condition, and reduce instances, for each application of the one or more applications, when the status of the request queue corresponding to the application satisfies a first contraction condition;

increase the computing resources, for each instance of the one or more instances of each of the one or more applications, when a status of the request queue corresponding to the instance satisfies a second expansion condition, and reduce the computing resources, for each instance of the one or more instances of each of the one or more applications, when the status of the request queue corresponding to the respective instance satisfies a second contraction condition; and

use, for each host of the one or more hosts, other hosts of the one or more hosts to share a load of the host when a status of the request queue corresponding to the host satisfies a third expansion condition, and use, for each host of the one or more hosts, the host to share a load of other hosts of the one or more hosts when the status of the request queue corresponding to the host satisfies a third contraction condition,

wherein an expansion condition is a predetermined condition indicating a high utilization of the computing resources of the application system, and

wherein a contraction condition is a predetermined condition indicating a low utilization of the computing resources of the application system.

16. The system according to claim 11 , wherein the scheduling circuitry is further configured to at least one of:

increase, for each application of the one or more applications, a number of instances of the application when an average resource utilization of all instances of the one or more instances of the application is greater than or equal to a predetermined first upper limit, and decrease the number of instances of the application when the average resource utilization is less than or equal to a predetermined first lower limit; and

increase, for each instance of the one or more instances of each of the one or more applications, computing resources of the instance when a maximum resource utilization of the instance is greater than or equal to a predetermined second upper limit, and decrease, for each instance of the one or more instances of each of the one or more applications, the computing resources of the instance when the maximum resource utilization of the instance is less than or equal to a predetermined second lower limit.

17. A non-transitory computer-readable storage medium tangibly encoded with computer-executable instructions, that when executed by a processor, cause the processor to perform a method for resource scheduling, the method comprising:

determining, from a request queue of application requests at a proxy server to be processed by an application system for one or more applications, a number of application requests;

performing a statistical analysis, based on the number of application requests, to obtain a status of the request queue;

determining, by the scheduling system, a status of the request queue, the status of the request queue including one or more blocked requests issued by the proxy server to the one or more hosts; and

scheduling computing resources of the application system for an application of the one or more applications according to a predetermined scheduling rule and the status of the request queue.

18. The non-transitory computer-readable storage medium according to claim 17 , wherein the number of the application requests comprises at least one of a number of the application requests corresponding to each application of the one or more applications, a number of the application requests corresponding to each instance of the one or more instances of each of the one or more applications running on the one or more hosts, and a number of the application requests corresponding to each host of the one or more hosts.

19. The non-transitory computer-readable storage medium according to claim 18 , the scheduling the computing resources of the application system for the application comprising at least one of:

generating new instances, for each application of the one or more applications, when a status of the request queue corresponding to the application satisfies a first expansion condition, and reducing instances, for each application of the one or more applications, when the status of the request queue corresponding to the application satisfies a first contraction condition;

increasing the computing resources, for each instance of the one or more instances of each of the one or more applications, when a status of the request queue corresponding to the instance satisfies a second expansion condition, and reducing the computing resources, for each instance of the one or more instances of each of the one or more applications, when the status of the request queue corresponding to the respective instance satisfies a second contraction condition; and

using, for each host of the one or more hosts, other hosts of the one or more hosts to share a load of the host when a status of the request queue corresponding to the host satisfies a third expansion condition, and using, for each host of the one or more hosts, the host to share a load of other hosts of the one or more hosts when the status of the request queue corresponding to the host satisfies a third contraction condition,

wherein an expansion condition is a predetermined condition indicating a high utilization of the computing resources of the application system, and

wherein a contraction condition is a predetermined condition indicating a low utilization of the computing resources of the application system.

20. The non-transitory computer-readable storage medium according to claim 18 , the scheduling the computing resources of the application system for the application comprising at least one of:

increasing, for each application of the one or more applications, a number of instances of the application when an average resource utilization of all instances of the one or more instances of the application is greater than or equal to a predetermined first upper limit, and decreasing the number of instances of the application when the average resource utilization is less than or equal to a predetermined first lower limit; and

increasing, for each instance of the one or more instances of each of the one or more applications, computing resources of the instance when a maximum resource utilization of the instance is greater than or equal to a predetermined second upper limit, and decreasing, for each instance of the one or more instances of each of the one or more applications, the computing resources of the instance when the maximum resource utilization of the instance is less than or equal to a predetermined second lower limit.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 21, 2026
From: ALIBABA GROUP HOLDING LIMITED
To: CLOUD INTELLIGENCE ASSETS HOLDING (SINGAPORE) PRIVATE LIMITED
Reel/Frame 075478/0225 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 8, 2017
From: PAN, LEI; YANG, LIN; MAO, LIANGLIANG
To: ALIBABA GROUP HOLDING LIMITED
Reel/Frame 044340/0421 →
Priority Claims (1)
CN 2015 10 494855 · Aug 13, 2015 · national
Continuity (1)
Related Publication 20170048163A1 · Feb 16, 2017