IP Library › Granted Patent US 11,294,723
Granted Patent B1
US 11,294,723 · App. 17/387,984 · Granted Apr 5, 2022

Autonomous application management for distributed computing systems

Inventors: Suresh Mathew (San Ramon, CA); Nikhil Gopinath Kurup (Tampa, FL); Hari Chandrasekhar (Highlands Ranch, CO); Benjamin Thomas (San Jose, CA)
Assignee: SEDAI INC.
G06F9/5016G06F9/5094G06N3/08G06F2209/501
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,294,723
App. No.
17/387,984
Granted
Apr 5, 2022
Kind
B1
Abstract

Implementations described herein relate to methods, systems, and computer-readable media to manage a computing resource allocation for a software application. In some implementations, a method may include receiving first metric data associated with the software application, determining, based on the first metric data, that an allocation of a computing resource for the software application is to be reduced from a first level of allocation, increasing allocation of the computing resource to a second level of allocation greater than the first level of allocation; executing the software application on the distributed computing system at the second level of allocation, obtaining second metric data based on execution of the software application at the second level of allocation, and reducing allocation to a third level that is lower than the first level based on a determination that the second metric data does not indicate a performance improvement for the software application.

Claims (33)

1. A method to manage a computing resource allocation for a software application implemented on a distributed computing system, comprising:

receiving first metric data associated with the software application executing on a distributed computing system;

determining, based on the first metric data, that an allocation of a computing resource for the software application is to be reduced from a first level of allocation;

increasing allocation of the computing resource for the software application to a second level of allocation greater than the first level of allocation;

executing or causing the execution of the software application on the distributed computing system at the second level of allocation;

obtaining second metric data based on execution of the software application on the distributed computing system at the second level of allocation; and

reducing allocation of the computing resource to a third level that is lower than the first level based on a determination that the second metric data does not indicate a performance improvement for the software application when compared to the first metric data.

2. The method of claim 1 , further comprising:

obtaining historical metric data associated with the software application;

programmatically analyzing the obtained historical metric data and the first metric data; and

determining that the allocation of the computing resource is to be reduced from a first level of allocation based on the programmatic analysis.

3. The method of claim 1 , wherein the computing resource is memory allocated to the software application on the distributed computing system.

4. The method of claim 1 , wherein a quantity of Central Processing Units (CPU) power allocated to the software application is based on a corresponding allocation of memory allocated to the software application.

5. The method of claim 1 , wherein the distributed computing system is a serverless computing system, and wherein the software application is a function or package configured to be executable on the serverless computing system.

6. The method of claim 1 , further comprising:

obtaining metric data for a second software application at a plurality of allocation setpoints for the computing resource, and wherein determining that the allocation of the computing resource is to be reduced from the first level of allocation is based on a comparison of the first metric data to the obtained metric data for the second software application at the plurality of allocation setpoints; and

determining an optimal allocation setpoint for the computing resource based on the comparison.

7. The method of claim 1 , wherein determining, based on the first metric data, that an allocation of a computing resource for the software application is to be reduced from a first level of allocation comprises:

providing the first metric data to a trained machine learning model model; and

receiving, from the trained machine learning model, a second level of allocation for the computing resource, wherein the second level of allocation is lower than the first level of allocation.

8. The method of claim 1 , wherein determining that the allocation of a computing resource for the software application is to be reduced from a first level of allocation comprises determining a second level of allocation for the execution of the software application, and wherein a total cost of execution of the software application is lower at the second level of allocation when compared to the first level of allocation, and wherein the performance of the software application at the second level of allocation is lower when compared to the first level of allocation, and wherein the performance of the software application at the second level of allocation meets a service level performance threshold.

9. A non-transitory computer-readable medium comprising instructions that, responsive to execution by a processing device, causes the processing device to perform operations comprising:

receiving first metric data associated with a software application executing on a distributed computing system;

determining, based on the first metric data, that an allocation of a computing resource for the software application is to be reduced from a first level of allocation;

increasing allocation of the computing resource for the software application to a second level of allocation greater than the first level of allocation;

executing or causing the execution of the software application on the distributed computing system at the second level of allocation;

obtaining second metric data based on execution of the software application on the distributed computing system at the second level of allocation; and

reducing allocation of the computing resource to a third level that is lower than the first level based on a determination that the second metric data does not indicate a performance improvement for the software application when compared to the first metric data.

10. The non-transitory computer-readable medium of claim 9 , wherein the computing resource is memory allocated to the software application on the distributed computing system.

11. The non-transitory computer-readable medium of claim 9 , wherein the distributed computing system is a serverless computing system, and wherein the software application is a function or package configured to be executable on the serverless computing system.

12. The non-transitory computer-readable medium of claim 9 , wherein the operations further comprise:

obtaining metric data for a second software application at a plurality of allocation setpoints for the computing resource, and wherein determining that the allocation of the computing resource is to be reduced from the first level of allocation is based on a comparison of the first metric data to the obtained metric data for the second software application at the plurality of allocation setpoints; and

determining an optimal allocation setpoint for the computing resource based on the comparison.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 18, 2021
From: MATHEW, SURESH; KURUP, NIKHIL GOPINATH; CHANDRASEKHAR, HARI; THOMAS, BENJAMIN
To: SEDAI INC.
Reel/Frame 057212/0395 →
Continuity (2)
Provisional Application 63214783 · Jun 25, 2021
Provisional Application 63214784 · Jun 25, 2021
Cited By (5)
US 12,316,529 US 12,367,320 US 12,399,712 US 12,574,430 US 12,710,824