IP Library › Granted Patent US 11,409,573
Granted Patent B2
US 11,409,573 · App. 16/936,007 · Granted Aug 9, 2022

Function parallelism in a runtime container of a function-as-a-service (FAAS) system

Inventor: Markus Thoemmes (Grasbrunn, DE)
Assignee: Red Hat, Inc.
G06F9/5055G06F9/3836G06F9/45516G06F9/485
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,573
App. No.
16/936,007
Granted
Aug 9, 2022
Kind
B2
Abstract

A method includes receiving a first request to execute a first instance of a function and generating a runtime container to execute the first instance of the function. The runtime instance includes a set of resources allocated to execute the function. The method further includes determining a consumption of the set of resources allocated to the runtime container in view of execution of the first instance of the function. The method further includes, in response to receiving a second request to execute a second instance of the function, initiating the second instance of the function within the runtime container in view of the consumption of the set of resources.

Claims (52)

1. A method comprising:

receiving a first request to execute a first instance of a function;

generating a runtime container to execute the first instance of the function, the runtime container comprising a set of resources allocated to execute the function;

determining, by a processing device, a consumption of the set of resources allocated to the runtime container in view of execution of the first instance of the function;

determining a maximum number of instances of the function that the runtime container can support in view of the consumption of the set of resources by the first instance of the function; and

in response to receiving a second request to execute a second instance of the function:

determining whether the runtime container is executing the maximum number of instances of the function; and

in response to determining that the runtime container is executing fewer than the maximum number of instances of the function, initiating the second instance of the function within the runtime container, wherein the first instance of the function and the second instance of the function execute at least partially concurrently within the runtime container, and wherein the first instance of the function is isolated in memory from the second instance of the function such that the first instance of the function cannot interfere with execution of the second instance of the function.

2. The method of claim 1 , wherein generating the runtime container comprises:

allocating the set of resources to the runtime container in view of the first instance of the function, wherein the first instance of the function defines the set of resources; and

instantiating the runtime container in view of the allocated set of resources.

3. The method of claim 1 , wherein determining the consumption of the set of resources comprises:

determining a first consumption of the set of resources by the runtime container; and

determining a second consumption of the set of resources by execution of the first instance of the function.

4. The method of claim 1 , wherein initiating the second instance of the function with the runtime container in view of the consumption of the set of resources comprises:

determining, in view of the set of resources allocated to the runtime container and the consumption of the set of resources, that the set of resources allocated to the runtime container are sufficient to support execution of the second instance of the function and the first instance of the function concurrently.

5. The method of claim 1 , wherein the set of resources comprise a set number of processing cycles, a set amount of memory, and a set amount of networking capabilities.

6. A system comprising:

a memory; and

a processing device operatively coupled to the memory, the processing device to:

receive a first request to execute a first instance of a function;

generate a runtime container to execute the first instance of the function, the runtime container comprising a set of resources allocated to execute the function;

determine a consumption of the set of resources allocated to the runtime container in view of execution of the first instance of the function;

determine a maximum number of instances of the function that the runtime container can support in view of the consumption of the set of resources by the first instance of the function; and

in response to receiving a second request to execute a second instance of the function:

determine whether the runtime container is executing the maximum number of instances of the function; and

in response to determining that the runtime container is executing fewer than the maximum number of instances of the function, initiate the second instance of the function within the runtime container in view of the consumption of the set of resources, wherein the first instance of the function and the second instance of the function execute at least partially concurrently within the runtime container, and wherein the first instance of the function is isolated in memory from the second instance of the function such that the first instance of the function cannot interfere with execution of the second instance of the function.

7. The system of claim 6 , wherein to generate the runtime container, the processing device is to:

allocate the set of resources to the runtime container in view of the first instance of the function, wherein the first instance of the function defines the set of resources; and

instantiate the runtime container in view of the allocated set of resources.

8. The system of claim 6 , wherein to determine the consumption of the set of resources, the processing device is to:

determine a first consumption of the set of resources by the runtime container; and

determine a second consumption of the set of resources by execution of the first instance of the function.

9. The system of claim 6 , wherein to initiate the second instance of the function with the runtime container in view of the consumption of the set of resources, the processing device is to:

determine, in view of the set of resources allocated to the runtime container and the consumption of the set of resources, that the set of resources allocated to the runtime container are sufficient to support execution of the second instance of the function and the first instance of the function concurrently.

10. The system of claim 6 , wherein the set of resources comprise a set number of processing cycles, a set amount of memory, and a set amount of networking capabilities.

11. A non-transitory computer-readable storage medium including instructions that, when executed by a processing device, cause the processing device to:

receive a first request to execute a first instance of a function;

generate a runtime container to execute the first instance of the function, the runtime container comprising a set of resources allocated to execute the function;

determine, by the processing device, a consumption of the set of resources allocated to the runtime container in view of execution of the first instance of the function;

determine a maximum number of instances of the function that the runtime container can support in view of the consumption of the set of resources by the first instance of the function; and

in response to receiving a second request to execute a second instance of the function:

determine whether the runtime container is executing the maximum number of instances of the function; and

in response to determining that the runtime container is executing fewer than the maximum number of instances of the function, initiate the second instance of the function within the runtime container in view of the consumption of the set of resources, wherein the first instance of the function and the second instance of the function execute at least partially concurrently within the runtime container, and wherein the first instance of the function is isolated in memory from the second instance of the function such that the first instance of the function cannot interfere with execution of the second instance of the function.

12. The non-transitory computer-readable storage medium of claim 11 , wherein to generate the runtime container, the processing device is to:

allocate the set of resources to the runtime container in view of the first instance of the function, wherein the first instance of the function defines the set of resources; and

instantiate the runtime container in view of the allocated set of resources.

13. The non-transitory computer-readable storage medium of claim 11 , wherein to determine the consumption of the set of resources, the processing device is to:

determine a first consumption of the set of resources by the runtime container; and

determine a second consumption of the set of resources by execution of the first instance of the function.

14. The non-transitory computer-readable storage medium of claim 11 , wherein to initiate the second instance of the function with the runtime container in view of the consumption of the set of resources, the processing device is to:

determine, in view of the set of resources allocated to the runtime container and the consumption of the set of resources, that the set of resources allocated to the runtime container are sufficient to support execution of the second instance of the function and the first instance of the function concurrently.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 22, 2020
From: THOEMMES, MARKUS
To: RED HAT, INC.
Reel/Frame 053283/0121 →
Continuity (1)
Related Publication 20220027203A1 · Jan 27, 2022