IP Library Granted Patent US 11,803,414
Granted Patent B2
US 11,803,414 · App. 17/160,778 · Granted Oct 31, 2023

Diagonal autoscaling of serverless computing processes for reduced downtime

Inventors: Huamin Chen (Westborough, MA); Roland Huss (Petnitz, DE)
Assignee: Red Hat, Inc.
G06F9/4856G06F9/455G06F9/45533G06F9/45558G06F9/48G06F9/4806G06F9/4843G06F9/4881G06F9/50G06F9/5005G06F9/505G06F9/5027G06F9/5061G06F9/5077G06F9/5083G06F2009/4557G06F2009/45562
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,803,414
App. No.
17/160,778
Granted
Oct 31, 2023
Kind
B2
Abstract

Methods and systems for scaling computing processes within a serverless computing environment are provided. In one embodiment, a method is provided that includes receiving a request to execute a computing process in the serverless computing environment. A first node may be created within the serverless computing environment to execute the computing process. A first amount of computing resources may be assigned to the first node. It may be determined later that the first amount of computing resources are not sufficient to implement the first node. A second amount of computing resources may be determined with a vertical autoscaling process and a second node may be created within the serverless computing environment using a horizontal autoscaling process. The second node may be assigned the second amount of computing resources. The computing process may then be executed using both the first and second nodes within the serverless computing environment.

Claims (47)

1. A method comprising:

receiving a request to execute a computing process in a serverless computing environment;

creating a first node within the serverless computing environment to execute the computing process, wherein a first amount of computing resources are assigned to implement the first node;

determining that computing resources necessary to implement the first node exceeds the first amount of computing resources;

determining, with a vertical autoscaling (VA) process which executes on a first computing unit, a second amount of computing resources to include in an updated request;

intercepting, at a second computing unit, the updated request and providing the updated request including the second amount to a horizontal autoscaling (HA) process which executes on the second computing unit;

creating, using the HA process, a second node within the serverless computing environment to execute the computing process, wherein the second amount of computing resources are assigned to implement the second node; and

executing the computing process within the serverless computing environment using both the first and second nodes.

2. The method of claim 1 , wherein the first amount of computing resources remains assigned to the first node after the second node is created.

3. The method of claim 1 , wherein the second amount of computing resources is initially determined by the VA process as an increase in computing resources for the first node.

4. The method of claim 3 , wherein the second amount of computing resources is determined as a proportion of the first amount of computing resources.

5. The method of claim 3 , wherein the second amount of computing resources is determined based on at least one of processing utilization by the first node, memory utilization by the first node, and a total request load for the first node.

6. The method of claim 1 , wherein the request identifies minimum and maximum computing resources for the computing process.

7. The method of claim 6 , wherein the computing resources include memory capacity available to the computing process and processing capacity available to the computing process.

8. The method of claim 6 , wherein the first amount of computing resources is allocated based on the minimum and maximum computing resources.

9. The method of claim 1 , further comprising updating a routing table with a first weight for the first node and a second weight for the second node, wherein the first weight is determined based on the first amount of computing resources and the second weight is determined based on the second amount of computing resources.

10. The method of claim 9 , further comprising proportionally routing requests for the computing process to be fulfilled by the first and second nodes based on relative magnitudes of the first and second weights, and wherein the weights are normalized such that the smallest weight has a value of 1.

11. The method of claim 9 , further comprising:

detecting that a number of requests for the computing process has decreased by more than a predetermined threshold; and

halting at least one of the first and second nodes.

12. The method of claim 11 , wherein the at least one of the first and second nodes is selected based on the first weight and the second weight.

13. A system comprising:

a processor; and

a memory storing instructions which, when executed by the processor, cause the processor to:

receive a request to execute a computing process in a serverless computing environment;

create a first node within the serverless computing environment to execute the computing process, wherein a first amount of computing resources are assigned to implement the first node;

determine that computing resources necessary to implement the first node exceeds the first amount of computing resources;

determine, with a vertical autoscaling (VA) process which executes on a first computing unit, a second amount of computing resources to include in an updated request;

intercept, at a second computing unit, the updated request and providing the updated request including the second amount to a horizontal autoscaling (HA) process which executes on the second computing unit;

create, using the HA process, a second node within the serverless computing environment to execute the computing process, wherein the second amount of computing resources are assigned to implement the second node; and

execute the computing process within the serverless computing environment using both the first and second nodes.

14. The system of claim 13 , wherein the first amount of computing resources remains assigned to the first node after the second node is created.

15. The system of claim 13 , wherein the second amount of computing resources is initially determined by the VA process as an increase in computing resources for the first node.

16. The system of claim 15 , wherein the second amount of computing resources is determined as a proportion of the first amount of computing resources.

17. The system of claim 13 , wherein the instructions further cause the processor to update a routing table with a first weight for the first node and a second weight for the second node, wherein the first weight is determined based on the first amount of computing resources and the second weight is determined based on the second amount of computing resources.

18. The system of claim 17 , wherein the instructions further cause the processor to proportionally route requests for the computing process to be fulfilled by the first and second nodes based on relative magnitudes of the first and second weights.

19. The system of claim 17 , wherein the instructions further cause the processor to:

detect that a number of requests for the computing process has decreased by more than a predetermined threshold; and

halt at least one of the first and second nodes.

20. A non-transitory, computer-readable medium storing instructions which, when executed by a processor, cause the processor to:

receive a request to execute a computing process in a serverless computing environment;

create a first node within the serverless computing environment to execute the computing process, wherein a first amount of computing resources are assigned to implement the first node;

determine that computing resources necessary to implement the first node exceeds the first amount of computing resources;

determine, with a vertical autoscaling (VA) process which executes on a first computing unit, a second amount of computing resources to include in an updated request;

intercept, at a second computing unit, the updated request and providing the updated request including the second amount to a horizontal autoscaling (HA) process which executes on the second computing unit;

create, using the HA process, a second node within the serverless computing environment to execute the computing process, wherein the second amount of computing resources are assigned to implement the second node; and

execute the computing process within the serverless computing environment using both the first and second nodes.

Assignments (2)
CHANGE OF NAME Recorded Mar 3, 2026
From: RED HAT, INC.
To: RED HAT, LLC
Reel/Frame 074913/0759 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 29, 2021
From: CHEN, HUAMIN; HUSS, ROLAND
To: RED HAT, INC.
Reel/Frame 055080/0971 →