IP Library Granted Patent US 12,547,461
Granted Patent B2
US 12,547,461 · App. 18/049,125 · Granted Feb 10, 2026

Serverless computing using resource multiplexing

Inventors: Jovan Stojkovic (Champaign, IL); Hubertus Franke (Cortlandt Manor, NY); Tianyin Xu (Urbana, IL); Josep Torrellas (Champaign, IL)
Assignees: International Business Machines Corporation; University of Illinois at Urbana-Champaign
G06F9/5033G06F9/52
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 12,547,461
App. No.
18/049,125
Granted
Feb 10, 2026
Kind
B2
Abstract

A computer implemented method manages function execution in a container. A dispatcher in the container running in a computer system executes a function initialization in response to a first request for a function. The dispatcher in the container running in the computer system creates group of handlers in response to receiving a group of requests for the function. The dispatcher in the container running in the computer system sends the group of requests to the group of handlers in response to receiving the group of requests. The dispatcher in the container running in the computer system executes the group of requests using the group of handlers.

Claims (66)

1 . A computer implemented method for managing function execution in a container, the computer implemented method comprising:

executing, by a dispatcher in the container running in a computer system, a function initialization in response to a first request for a function;

creating, by the dispatcher in the container running in the computer system, a group of handlers in response to receiving a group of requests for the function, wherein the group of handlers is at least two handlers; and

executing, by the dispatcher in the container running in the computer system, the group of requests using the group of handlers.

2 . The computer implemented method of claim 1 further comprising:

creating, by the dispatcher in the container running in the computer system, a new handler for the group of handlers in response to receiving a new request and processing resources being available to create the new handler.

3 . The computer implemented method of claim 1 further comprising:

assigning, by the dispatcher in the container running in the computer system, processing resources to the container, wherein the processing resources is selected from one of a group of processor units and a group of cores.

4 . The computer implemented method of claim 1 further comprising:

marking, by the dispatcher in the container running in the computer system, a handler in the group of handlers as blocked in response to the handler making a blocking call.

5 . The computer implemented method of claim 1 further comprising:

recording, by the dispatcher in the container running in the computer system, a sequence order for the group of handlers based on when handlers in the group of handlers are created to handle requests.

6 . The computer implemented method of claim 5 further comprising:

determining, by the dispatcher in the container running in the computer system, whether to suspend a handler in the group of handlers or resume the handler in the group of handlers based on the sequence order for the group of handlers.

7 . The computer implemented method of claim 5 further comprising:

suspending, by the dispatcher in the container running in the computer system, a new handler, tracking the new handler, and marking the new handler as ready in response to a number of a set of cores for the container being unavailable for the new handler; and

resuming, by the dispatcher in the container running in the computer system, the new handler based on the sequence order of the handler in response to the number of the set of cores becoming available for the new handler.

8 . The computer implemented method of claim 1 further comprising:

intercepting, by the dispatcher in the container running in the computer system, blocking calls made by the group of handlers;

tracking, by the dispatcher in the container running in the computer system, a state of a handler making a blocking call;

making, by the dispatcher in the container running in the computer system, the blocking call; and

passing, by the dispatcher in the container running in the computer system, a value received in a response to the handler making the blocking call.

9 . The computer implemented method of claim 8 further comprising:

resuming, by the dispatcher in the container running in the computer system, the handler in response to a number of a set of cores being available for the handler.

10 . The computer implemented method of claim 8 further comprising:

keeping, by the dispatcher in the container running in the computer system, the handler suspended and marking the handler as ready in response to a number of a set of cores being unavailable.

11 . The computer implemented method of claim 8 further comprising:

resuming, by the dispatcher in the container running in the computer system, the handler in response to a younger running handler being present in the group of handlers; and

suspending, by the dispatcher in the container running in the computer system, the younger running handler.

12 . The computer implemented method of claim 1 further comprising:

coalescing, by the dispatcher in the container running in the computer system, remote data accesses by the group of handlers.

13 . The computer implemented method of claim 12 , wherein coalescing, by the dispatcher in the container running in the computer system, remote storage accesses by the group of handlers comprises:

recording, by the dispatcher in the container running in the computer system, remote data access requests from handlers in the group of handlers for a same data;

making, by the dispatcher in the container running in the computer system, a single remote data access request for the same data; and

returning, by the dispatcher in the container running in the computer system, the response to the single remote data access request to the handlers in the group of handlers making the remote data access requests for the same data.

14 . The computer implemented method of claim 12 , wherein coalescing remote storage accesses by the group of handlers comprises:

combining, by the dispatcher in the container running in the computer system, remote data access requests to access data in a same data source into a vector request.

15 . The computer implemented method of claim 1 further comprising:

reading, by the group of handlers in the container running in the computer system, shared memory pages initialized for the function during the function initialization;

creating, by a handler in the group of handlers in the container running in the computer system, a copy of a shared memory page in the shared memory pages for a handler in the group of handlers in response to a write; and

reading and writing, by the handler in the group of handlers in the container running in the computer system, to the copy of the shared memory page on subsequent reads and writes to the shared memory page by the handler.

16 . The computer implemented method of claim 1 , wherein the group of handlers use a shared file used to execute the function, wherein a temporary file is created for a handler in the group of handlers for writes to the shared file, and wherein the temporary file is used by the handler for subsequent reads and writes in place of the shared file.

17 . A computer system comprising:

a set of processor units, wherein the set of processor units executes program instructions to:

execute, a dispatcher in a container running in a computer system, a function initialization in response to a first request for a function;

create, by the dispatcher in the container running in the computer system, group of handlers in response to receiving a group of requests for the function, wherein the group of handlers is at least two handlers; and

execute, by the dispatcher in the container running in the computer system, the group of requests using the group of handlers.

18 . The computer system of claim 17 , wherein the set of processor units executes the program instructions to:

create a new handler for the group of handlers in response to receiving a new request, none of the group of handlers being available to handle the new request, and processing resources being available to create the new handler.

19 . The computer system of claim 17 , wherein the set of processor units executes the program instructions to:

assign processing resources to the container, wherein the processing resources is selected from one of a group of processor units and a group of cores.

20 . The computer system of claim 17 , wherein the set of processor units executes the program instructions to:

mark a handler in the group of handlers as blocked in response to the handler making a blocking call.

21 . The computer system of claim 17 , wherein the set of processor units executes the program instructions to:

record a sequence order for the group of handlers based on when handlers in the group of handlers are created to handle requests.

22 . The computer system of claim 21 , wherein the set of processor units executes the program instructions to:

determine whether to suspend a handler in the group of handlers or resume the handler in the group of handlers based on the sequence order for the group of handlers.

23 . The computer system of claim 21 , wherein the set of processor units executes the program instructions to:

suspend a handler, tracking the handler, and marking the handler as ready in response to a number of a set of cores for the container being unavailable for the handler; and

resume the handler based on the sequence order of the handler in response to the number of the set of cores become available for the handler.

24 . The computer system of claim 17 , wherein the set of processor units executes the program instructions to:

coalesce remote data accesses by the group of handlers.

25 . A computer program product for managing function execution in a container, the computer program product comprising a computer-readable storage medium having program instructions embodied therewith, the program instructions executable by a computer system to cause the computer system to perform a method of:

executing, a dispatcher in the container running in a computer system, a function initialization in response to a first request for a function;

creating, by the dispatcher in the container running in the computer system, group of handlers in response to receiving a group of requests for the function, wherein the group of handlers is at least two handlers; and

executing, by the dispatcher in the container running in the computer system, the group of requests using the group of handlers.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 9, 2023
From: STOJKOVIC, JOVAN; XU, TIANYIN; TORRELLAS, JOSEP
To: UNIVERSITY OF ILLINOIS AT URBANA-CHAMPAIGN
Reel/Frame 063574/0588 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 24, 2022
From: FRANKE, HUBERTUS
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 061518/0297 →
Continuity (2)
Related Publication 20240134698A1 · Apr 25, 2024
Related Publication 20240231925A9 · Jul 11, 2024
References Cited (26)
US 11113782B2 · Prakash et al. · 2021 [cited by applicant]
US 11301562B2 · Tiwary et al. · 2022 [cited by applicant]
US 11375042B2 · Sampath · 2022 [cited by applicant]
US 20130167130A1 · Alvanos · 2013 [cited by examiner]
US 20180341502A1 · Rabasa · 2018 [cited by examiner]
US 20190377604A1 · Cybulski · 2019 [cited by applicant]
US 20200226009A1 · Bachmutsky et al. · 2020 [cited by applicant]
US 20210263779A1 · Haghighat et al. · 2021 [cited by applicant]
US 20220004422A1 · Gero et al. · 2022 [cited by applicant]
US 20220156097A1 · Jain · 2022 [cited by applicant]
US 20230300086A1 · Ivanov · 2023 [cited by examiner]
CN 110832461A · 2020 [cited by applicant]
WO 2021139174A1 · 2021 [cited by applicant]
Ustiugov et al., “Benchmarking, Analysis, and Optimization of Serverless Function Snapshots,” ASPLOS '21, Apr. 19-23, 2021, Virtual, USA, pp. 559-572. [cited by applicant]
Du et al., “Catalyzer: Sub-millisecond Startup for Serverless Computing with Initialization-less Booting,” ASPLOS '20, Mar. 16-20, 2020, Lausanne, Switzerland, pp. 467-481. [cited by applicant]
Kotni et al., “Faastlane: Accelerating Function-as-a-Service Workflows,” 2021 USENIX Annual Technical Conference Jul. 14-16, 2021, pp. 957-971. [cited by applicant]
“Global Serverless Computing Market Outlook,” Serverless Computing Market Size, Share, Analysis 2022-2027, EMR, available at: https://www.expertmarketresearch.com/reports/serverless-computing-market, last accessed on Oc… [cited by applicant]
Roy et al., “IceBreaker: Warming Serverless Functions Better with Heterogeneity,” ASPLOS '22, Feb. 28-Mar. 4, 2022, Lausanne, Switzerland, Feb. 2022, pp. 753-767. [cited by applicant]
Bhasi et al., “Kraken : Adaptive Container Provisioning for Deploying Dynamic DAGs in Serverless Platforms,” SoCC '21, Nov. 1-4, 2021, Seattle, WA, USA, Nov. 2021, pp. 153-167. [cited by applicant]
Jia et al., “Nightcore: Efficient and Scalable Serverless Computing for Latency-Sensitive, Interactive Microservices,” ASPLOS '21, Apr. 19-23, 2021, Virtual, USA, Apr. 2021, pp. 152-166. [cited by applicant]
Akkus et al., “SAND: Towards High-Performance Serverless Computing,” 2018 USENIX Annual Technical Conference, Jul. 2018, pp. 923-935. [cited by applicant]
“Serverless Computing Market—Growth, Trends, Covid-19 Impact, and Forecasts (2022-2027),” Mordor Intelligence, available at https://www.mordorintelligence.com/industry-reports/serverless-computing-market#:˜:text=Market%… [cited by applicant]
Cadden et al., “SEUSS: Skip Redundant Paths to Make Serverless Fast,” EuroSys '20, Apr. 27-30, 2020, Heraklion, Greece, pp. 1-15. [cited by applicant]
Dakes et al., “SOCK: Rapid Task Provisioning with Serverless-Optimized Containers,” 2018 USENIX Annual Technical Conference, Jul. 11, 2018, pp. 57-69. [cited by applicant]
Ot, “The Serverless Computing Market in 2022,” The Serverless Computing Market in 2022 | Enterprise Storage Forum, May 4, 2022, available at: https://www.enterprisestorageforum.com/cloud/serverless-computing-market/, la… [cited by applicant]
Daw et al., “Xanadu: Mitigating cascading cold starts in serverless function chain deployments,” Middleware '20, Dec. 7-11, 2020, Delft, Netherlands, pp. 356-370. [cited by applicant]