IP Library › Granted Patent US 11,409,570
Granted Patent B2
US 11,409,570 · App. 17/083,036 · Granted Aug 9, 2022

Dynamic management of system computing resources

Inventors: Xia Yu (Shanghai, CN); Wanshun Zhang (Shanghai, CN); Dabin Feng (Shanghai, CN)
Assignee: SAP SE
G06F9/505G06F9/5077G06F9/5083G06F11/3428G06F2209/5011
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 11,409,570
App. No.
17/083,036
Granted
Aug 9, 2022
Kind
B2
Abstract

System computing resources are dynamically managed by a resource management layer together with resource server pool. A group monitor collects data of server operation (e.g., CPU usage, memory consumption, queue size) in a particular group (e.g., customer-facing servers, job servers). The group monitor: calculates a weighted score for each server, sorts the scores of each server, maintains a sequence of scores, and periodically reports the score list to a resource manager. When an incoming request is directed to a particular server group, the group monitor redirects the request to a lowest-scoring server, and recalculates/sorts the score list. The resource manager monitors and throttles the servers in each group. Where servers in a group are experiencing high workload, the manager adds to the group server(s) from the resource pool. Conversely, where server group members are experiencing a low workload, the manager removes the lowest scoring server(s) to the resource pool.

Claims (87)

1. A method comprising:

receiving a first incoming request directed from a source to a first server group comprising a first plurality of servers, the source comprising a load balancer configured to execute a strategy to route the request to the first server group;

collecting performance data for each of the first plurality of servers, the performance data comprising at least two different types of performance data selected from,

Central Processing Unit (CPU) usage,

memory usage,

queue size, and

thread pool usage;

calculating from the performance data, first respective scores for each of the first plurality of servers;

sorting the first respective scores into a first list;

storing the first list in a non-transitory computer-readable storage medium; and

reporting the first list to a manager to result in allocation of,

an idle server from a resource pool to the first server group, or

a server of the first server group to the resource pool.

2. A method as in claim 1 wherein the collecting of performance data is performed according to a collecting period.

3. A method as in claim 1 wherein the collecting of performance data is performed according to receipt of the first incoming request.

4. A method as in claim 1 wherein the calculating comprises assigning a first set of weights to the different types of performance data.

5. A method as in claim 4 wherein a sum of the first set of weights is 1.

6. A method as in claim 4 further comprising:

generating an administration report including the performance data;

communicating the administration report to an administrator; and

receiving input from the administrator to change the first set of weights.

7. A method as in claim 1 wherein reporting the list to the manager results in allocation of the idle server to the first server group, the method further comprising:

the first server group receiving a second incoming request directed from the source;

selecting the idle server to handle the second incoming request.

8. A method as in claim 1 wherein the calculating involves assigning a first set of weights to different types of performance data, the method further comprising:

receiving a second incoming request directed from the source to a second server group comprising a second plurality of servers;

collecting performance data for each of the second plurality of servers; and

calculating respective second scores for each of the second plurality of servers by assigning a second set of weights to the different types of performance data;

sorting the respective second scores into a second list;

storing the second list in the non-transitory computer-readable storage medium; and

reporting the second list to the manager.

9. A method as in claim 1 wherein:

the non-transitory computer readable storage medium comprises an in-memory database; and

the sorting is performed by an in-memory database engine of the in-memory database.

10. A non-transitory computer readable storage medium embodying a computer program for performing a method, said method comprising:

receiving a first incoming request directed from a source to a first server group comprising a first plurality of servers, the source comprising a load balancer configured to execute a strategy to route the request to the first server group;

collecting performance data for each of the first plurality of servers, the performance data comprising at least two different types of performance data selected from,

Central Processing Unit (CPU) usage,

memory usage,

queue size, and

thread pool usage;

calculating from the performance data, first respective scores for each of the first plurality of servers, the calculating comprising assigning a first set of weights to the different types of performance data;

sorting the first respective scores into a first list;

storing the first list in a non-transitory computer-readable storage medium; and

reporting the first list to a manager to result in allocation of,

an idle server from a resource pool to the first server group, or

a server of the first server group to the resource pool.

11. A non-transitory computer readable storage medium as in claim 10 wherein the collecting of performance data is performed according to a collecting period.

12. A non-transitory computer readable storage medium as in claim 10 wherein the collecting of performance data is performed according to receipt of the first incoming request.

13. A non-transitory computer readable storage medium as in claim 10 wherein reporting the list to the manager results in allocation of the idle server to the first server group, the method further comprising:

the first server group receiving a second incoming request directed from the source;

selecting the idle server to handle the second incoming request.

14. A non-transitory computer readable storage medium as in claim 10 wherein the calculating involves assigning a first set of weights to the at least two different types of performance data, the method further comprising:

receiving a second incoming request directed from the source to a second server group comprising a second plurality of servers;

collecting performance data for each of the second plurality of servers; and

calculating respective second scores for each of the second plurality of servers by assigning a second set of weights to the different types of performance data;

sorting the respective second scores into a second list;

storing the second list in the non-transitory computer-readable storage medium; and

reporting the second list to the manager.

15. A computer system comprising:

one or more processors;

a software program, executable on said computer system, the software program configured to cause an in-memory database engine of an in-memory database to:

receive a first incoming request directed from a source to a first server group comprising a first plurality of servers, the source comprising a load balancer configured to execute a strategy to route the request to the first server group;

collect performance data for each of the first plurality of servers, the performance data comprising at least two different types of performance data selected from,

Central Processing Unit (CPU) usage,

memory usage,

queue size, and

thread pool usage;

calculate from the performance data, first respective scores for each of the first plurality of servers;

sort the first respective scores into a first list;

store the first list in a non-transitory computer-readable storage medium; and

report the first list to a manager to result in allocation of,

an idle server from a resource pool to the first server group, or

a server of the first server group to the resource pool.

16. A computer system as in claim 15 wherein the in-memory database engine collects the performance data according to a collection period.

17. A computer system as in claim 15 wherein the in-memory database engine collects the performance data according to receipt of the first incoming request.

18. A computer system as in claim 15 wherein the report of the list to the manager results in allocation of the idle server to the first server group, the in-memory database engine further configured to:

receive a second incoming request directed to the first server group from the source;

select the idle server to handle the second incoming request.

19. A computer system as in claim 15 wherein the in-memory database engine is configured to assign a first set of weights to the different types of performance data in order to calculate the first respective scores.

20. A computer system as in claim 15 wherein the first respective scores are calculated by assigning a first set of weights to the at least two different types of performance data, the in-memory database engine further configured to:

receive a second incoming request directed from the source to a second server group comprising a second plurality of servers;

collect performance data for each of the second plurality of servers; and

calculate respective second scores for each of the second plurality of servers by assigning a second set of weights to the different types of performance data;

sort the respective second scores into a second list;

store the second list in the non-transitory computer-readable storage medium; and

report the second list to the manager.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 28, 2020
From: YU, XIA; ZHANG, WANSHUN; FENG, DABIN
To: SAP SE
Reel/Frame 054201/0207 →
Continuity (1)
Related Publication 20220129314A1 · Apr 28, 2022
Cited By (2)
US 12,189,622 US 12,730,681