IP Library › Granted Patent US 10,635,501
Granted Patent B2
US 10,635,501 · App. 15/819,251 · Granted Apr 28, 2020

Adaptive scaling of workloads in a distributed computing environment

Inventor: Lior Aronovich (Thornhill, CA)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F9/5083G06F9/50G06F9/505G06F9/5022H04L41/50H04L41/5003H04L41/5029
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,635,501
App. No.
15/819,251
Granted
Apr 28, 2020
Kind
B2
Abstract

Embodiments for computing and implementing automatic scaling operations in a distributed computing environment. A current allocation of a specific resource used by a specific application instance of an application. A high watermark is configured as a low bound for a high tier of consumption of the specific resource used by the specific application instance, and a low watermark is configured as a high bound for a low tier of consumption of the specific resource used by the specific application instance. An increase in allocation of the specific resource for the specific application instance is computed and implemented when sustained consumption of the specific resource at the high tier is identified, and a decrease in allocation of the specific resource for the specific application instance is computed and implemented when the sustained consumption of the specific resource at the low tier is identified.

Claims (76)

1. A method for computing and implementing automatic scaling operations in a distributed computing environment, by at least one processor, comprising:

determining a current allocation of a specific resource used by a specific application instance of an application;

configuring a high watermark as a low bound for a high tier of consumption of the specific resource used by the specific application instance;

configuring a low watermark as a high bound for a low tier of consumption of the specific resource used by the specific application instance;

computing and implementing an increase in allocation of the specific resource for the specific application instance, when sustained consumption of the specific resource at the high tier is identified;

computing and implementing a decrease in allocation of the specific resource for the specific application instance, when the sustained consumption of the specific resource at the low tier is identified, thereby optimizing application efficiency and resource utilization in the distributed computing environment; and

identifying sustained consumption when no more than an outlying percentage of samples for consumption of the specific resource are outside of either one of the high or the low tier for a duration of a qualifying time period;

wherein the qualifying time period is one of fixed and implemented as a sliding window over time.

2. The method of claim 1 , further including, when implementing the increase in allocation, configuring at least one of:

a resource increase step as an absolute value or percentage of the current allocation of the specific resource used by the specific application instance; and

an increase function type; wherein the increase function type comprises at least one of the resource increase performed in one step, a growing resource increase, and an adaptive resource increase.

3. The method of claim 2 , further including performing at least one of:

configuring either one or a plurality of limits on increase, wherein each of the limits on increase corresponds to either one or a plurality of increase time periods, respectively; and

configuring computed increase operations for the specific resource and the specific application instance to not exceed the configured one or plurality of limits on increase for the specific resource and the specific application instance.

4. The method of claim 3 , further including associating a critical resource for increase indication with each pair of resource and application; and

applying at least one of a plurality of actions when the critical resource for increase indication is set to a value of true, the limit on increase has been reached for the specific resource and the specific application instance, and the sustained consumption of the specific resource at the high tier is determined; wherein the plurality of actions include at least horizontal scaling of the specific application instance and informing a user.

5. The method of claim 1 , further including, when implementing the decrease in allocation, configuring at least one of:

a resource reduction step as an absolute value or percentage of the current allocation of the specific resource used by the specific application instance; and

a reduction function type; wherein the increase function type comprises at least one of the resource reduction performed in one step, a maximal resource reduction, a growing resource reduction, and an adaptive resource reduction.

6. The method of claim 5 , further including performing at least one of:

configuring either one or a plurality of limits on reduction, wherein each of the limits on reduction corresponds to either one or a plurality of reduction time periods, respectively;

configuring the maximal resource reduction function to apply the decrease in allocation of the specific resource down to an upper step bounding the limit on reduction; and

configuring computed reduction operations for the specific resource and the specific application instance to not reduce the allocation below the configured one or plurality of limits on reduction for the specific resource and the specific application instance.

7. The method of claim 6 , further including associating a critical resource for reduction indication with each pair of resource and application; and

applying at least one of a plurality of actions when the critical resource for reduction indication is set to a value of true, the limit on reduction has been reached for the specific resource and the specific application instance, and the sustained consumption of the specific resource at the low tier is determined; wherein the plurality of actions include at least horizontal scaling of the specific application instance and informing a user.

8. A system for computing and implementing automatic scaling operations in a distributed computing environment, the system comprising:

at least one processor coupled to a memory storing computer readable program instructions that, when executed, cause the at least one processor to:

determine a current allocation of a specific resource used by a specific application instance of an application;

configure a high watermark as a low bound for a high tier of consumption of the specific resource used by the specific application instance;

configure a low watermark as a high bound for a low tier of consumption of the specific resource used by the specific application instance;

compute and implement an increase in allocation of the specific resource for the specific application instance, when sustained consumption of the specific resource at the high tier is identified;

compute and implement a decrease in allocation of the specific resource for the specific application instance, when the sustained consumption of the specific resource at the low tier is identified, thereby optimizing application efficiency and resource utilization in the distributed computing environment; and

identify sustained consumption when no more than an outlying percentage of samples for consumption of the specific resource are outside of either one of the high or the low tier for a duration of a qualifying time period;

wherein the qualifying time period is one of fixed and implemented as a sliding window over time.

9. The system of claim 8 , wherein the at least one processor, when implementing the increase in allocation, configures at least one of:

a resource increase step as an absolute value or percentage of the current allocation of the specific resource used by the specific application instance; and

an increase function type; wherein the increase function type comprises at least one of the resource increase performed in one step, a growing resource increase, and an adaptive resource increase.

10. The system of claim 9 , wherein the at least one processor performs at least one of:

configuring either one or a plurality of limits on increase, wherein each of the limits on increase corresponds to either one or a plurality of increase time periods, respectively; and

configuring computed increase operations for the specific resource and the specific application instance to not exceed the configured one or plurality of limits on increase for the specific resource and the specific application instance.

11. The system of claim 10 , wherein the at least one processor associates a critical resource for increase indication with each pair of resource and application; and

applies at least one of a plurality of actions when the critical resource for increase indication is set to a value of true, the limit on increase has been reached for the specific resource and the specific application instance, and the sustained consumption of the specific resource at the high tier is determined; wherein the plurality of actions include at least horizontal scaling of the specific application instance and informing a user.

12. The system of claim 8 , wherein the at least one processor, when implementing the decrease in allocation, configures at least one of:

a resource reduction step as an absolute value or percentage of the current allocation of the specific resource used by the specific application instance; and

a reduction function type; wherein the increase function type comprises at least one of the resource reduction performed in one step, a maximal resource reduction, a growing resource reduction, and an adaptive resource reduction.

13. The system of claim 12 , wherein the at least one processor performs at least one of:

configuring either one or a plurality of limits on reduction, wherein each of the limits on reduction corresponds to either one or a plurality of reduction time periods, respectively;

configuring the maximal resource reduction function to apply the decrease in allocation of the specific resource down to an upper step bounding the limit on reduction; and

configuring computed reduction operations for the specific resource and the specific application instance to not reduce the allocation below the configured one or plurality of limits on reduction for the specific resource and the specific application instance.

14. The system of claim 13 , wherein the at least one processor associates a critical resource for reduction indication with each pair of resource and application; and

applies at least one of a plurality of actions when the critical resource for reduction indication is set to a value of true, the limit on reduction has been reached for the specific resource and the specific application instance, and the sustained consumption of the specific resource at the low tier is determined; wherein the plurality of actions include at least horizontal scaling of the specific application instance and informing a user.

15. A computer program product for computing and implementing automatic scaling operations in a distributed computing environment, by at least one processor, the computer program product embodied on a non-transitory computer-readable storage medium having computer-readable program code portions stored therein, the computer-readable program code portions comprising:

an executable portion that determines a current allocation of a specific resource used by a specific application instance of an application;

an executable portion that configures a high watermark as a low bound for a high tier of consumption of the specific resource used by the specific application instance;

an executable portion that configures a low watermark as a high bound for a low tier of consumption of the specific resource used by the specific application instance;

an executable portion that computes and implements an increase in allocation of the specific resource for the specific application instance, when sustained consumption of the specific resource at the high tier is identified;

an executable portion that computes and implements a decrease in allocation of the specific resource for the specific application instance, when the sustained consumption of the specific resource at the low tier is identified, thereby optimizing application efficiency and resource utilization in the distributed computing environment; and

an executable portion that identifies sustained consumption when no more than an outlying percentage of samples for consumption of the specific resource are outside of either one of the high or the low tier for a duration of a qualifying time period;

wherein the qualifying time period is one of fixed and implemented as a sliding window over time.

16. The computer program product of claim 15 , further including an executable portion that, when implementing the increase in allocation, configures at least one of:

a resource increase step as an absolute value or percentage of the current allocation of the specific resource used by the specific application instance; and

an increase function type; wherein the increase function type comprises at least one of the resource increase performed in one step, a growing resource increase, and an adaptive resource increase.

17. The computer program product of claim 16 , further including an executable portion that performs at least one of:

configuring either one or a plurality of limits on increase, wherein each of the limits on increase corresponds to either one or a plurality of increase time periods, respectively; and

configuring computed increase operations for the specific resource and the specific application instance to not exceed the configured one or plurality of limits on increase for the specific resource and the specific application instance.

18. The computer program product of claim 17 , further including an executable portion that associates a critical resource for increase indication with each pair of resource and application; and

applies at least one of a plurality of actions when the critical resource for increase indication is set to a value of true, the limit on increase has been reached for the specific resource and the specific application instance, and the sustained consumption of the specific resource at the high tier is determined; wherein the plurality of actions include at least horizontal scaling of the specific application instance and informing a user.

19. The computer program product of claim 15 , further including an executable portion that, when implementing the decrease in allocation, configures at least one of:

a resource reduction step as an absolute value or percentage of the current allocation of the specific resource used by the specific application instance; and

a reduction function type; wherein the increase function type comprises at least one of the resource reduction performed in one step, a maximal resource reduction, a growing resource reduction, and an adaptive resource reduction.

20. The computer program product of claim 19 , further including an executable portion that performs at least one of:

configuring either one or a plurality of limits on reduction, wherein each of the limits on reduction corresponds to either one or a plurality of reduction time periods, respectively;

configuring the maximal resource reduction function to apply the decrease in allocation of the specific resource down to an upper step bounding the limit on reduction; and

configuring computed reduction operations for the specific resource and the specific application instance to not reduce the allocation below the configured one or plurality of limits on reduction for the specific resource and the specific application instance.

21. The computer program product of claim 20 , further including an executable portion that associates a critical resource for reduction indication with each pair of resource and application; and

applies at least one of a plurality of actions when the critical resource for reduction indication is set to a value of true, the limit on reduction has been reached for the specific resource and the specific application instance, and the sustained consumption of the specific resource at the low tier is determined; wherein the plurality of actions include at least horizontal scaling of the specific application instance and informing a user.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 21, 2017
From: ARONOVICH, LIOR
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 044189/0986 →
Continuity (1)
Related Publication 20190155661A1 · May 23, 2019