IP Library Granted Patent US 12,705,111
Granted Patent B2
US 12,705,111 · App. 17/657,327 · Granted Aug 11, 2026

Tightly coupled parallel applications on a serverless computing system

Inventors: Arijit Ganguly (Kirkland, WA); Prashant Kumar Singh (Seattle, WA); Ravi S Nagayach (Aurora, IL)
Assignee: Amazon Technologies, Inc.
G06F9/54G06F9/4881G06F9/5044
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,705,111
App. No.
17/657,327
Filed
Mar 30, 2022
Granted
Aug 11, 2026
Kind
B2
Art Unit
2198
USPC
718/102
Abstract

Systems and methods are described for executing tightly coupled parallel applications on a serverless computing system. A serverless computing system executes user-submitted code in sandboxed environments such as virtual machines or containers. To support execution of parallel applications that require data transfer between instances of the application, the serverless computing system implements an ephemeral mesh network that allows instances of the parallel application to communicate with each other while executing in their respective sandboxes. In some embodiments, a controller or parent application may also connect to the ephemeral mesh network to coordinate execution of the parallel applications. In other embodiments, the parent application may be external to the serverless computing system. The serverless computing system may connect and disconnect sandboxed environments from the ephemeral mesh network as parallel applications start and stop executing, and may remove the network and terminate the parallel applications when the parent application stops executing.

Claims (53)

1 . A system comprising:

a data store configured to store computer-executable instructions; and

a processor in communication with the data store, wherein the computer-executable instructions, when executed by the processor, configure the processor to perform operations including:

receiving a parent task execution request from an invoking function to execute a parent task on a serverless computing system;

in response to the parent task execution request, causing the parent task to execute in a first sandboxed environment of the serverless computing system;

receiving, from the parent task, a child task execution request to execute a first instance of a child task comprising an invoked function on the serverless computing system; and

in response to the child task execution request:

dynamically creating an ephemeral mesh network between the first sandboxed environment and a second sandboxed environment of the serverless computing system, wherein the ephemeral mesh network is an invocation-driven dynamically created temporary and distinct network created to enable bilateral communication between the invoking function and the invoked function within a cluster of associated sandboxed environments comprising the first sandboxed environment and the second sandboxed environment, created in response to the request;

causing the first instance of the child task to execute in the second sandboxed environment;

monitoring execution of the parent task; and

in response to a determination that the parent task has ceased executing, removing the ephemeral mesh network between the first sandboxed environment and the second sandboxed environment.

2 . The system of claim 1 , wherein the parent task execution request specifies an Internet Protocol (“IP”) address range for the ephemeral mesh network.

3 . The system of claim 2 , wherein creating the ephemeral mesh network includes assigning an IP address from the IP address range to at least the second sandboxed environment.

4 . The system of claim 1 , wherein the data store is configured to store further computer-executable instructions that, when executed by the processor, configure the processor to perform further operations including:

receiving, from the parent task, a second child task execution request to execute a second instance of the child task on the serverless computing system; and

in response to the second child task execution request:

updating the ephemeral mesh network to include a third sandboxed environment of the serverless computing system; and

causing the second instance of the child task to execute in the third sandboxed environment.

5 . The system of claim 4 , wherein the data store is configured to store further computer-executable instructions that, when executed by the processor, configure the processor to perform further operations including:

in response to a determination that the second instance of the child task has ceased execution, removing the third sandboxed environment from the ephemeral mesh network.

6 . A computer-implemented method comprising:

causing an invoking function of a parent task to execute in a first sandboxed environment of a serverless computing system;

receiving, from the invoking function, a request to execute a first instance of an invoked function in a child task on the serverless computing system;

in response to the request, dynamically creating an ephemeral mesh network between the first sandboxed environment and a second sandboxed environment of the serverless computing system, wherein the ephemeral mesh network is an invocation-driven dynamically created and distinct network created to enable bilateral communication between the invoking function and the invoked function within a cluster of associated sandboxed environments comprising the first sandboxed environment and the second sandboxed environment, temporary, and dynamically created in response to the request;

causing the first instance of the child task to execute in the second sandboxed environment;

monitoring execution of the parent task; and

in response to a determination that the parent task has ceased executing, removing the ephemeral mesh network.

7 . The computer-implemented method of claim 6 further comprising:

in response to the determination that the parent task has ceased executing, terminating execution of the child task.

8 . The computer-implemented method of claim 6 , wherein the first instance of the child task communicates with at least one of the parent task or a second instance of the child task via the ephemeral mesh network.

9 . The computer-implemented method of claim 6 , wherein creating the ephemeral mesh network comprises establishing a connection between a first network interface in the first sandboxed environment and a second network interface in the second sandboxed environment.

10 . The computer-implemented method of claim 9 further comprising creating the first network interface and the second network interface.

11 . The computer-implemented method of claim 6 further comprising, in response to the determination that the parent task has ceased execution, removing the first sandboxed environment.

12 . The computer-implemented method of claim 6 , wherein the parent task waits for at least one instance of the child task to complete execution before the parent task completes execution.

13 . The computer-implemented method of claim 6 , wherein the parent task is associated with a unique ephemeral mesh network identifier.

14 . The computer-implemented method of claim 6 , wherein the first sandboxed environment is on a different host computing device than the second sandboxed environment.

15 . The computer-implemented method of claim 6 , wherein the first sandboxed computing environment comprises one or more of a host computing device, a virtual machine instance, or a container.

16 . A computer-implemented method comprising:

receiving, from an invoking function of a parent task executing in a first sandboxed environment of a serverless computing system, a request to execute a first instance of an invoked function in a child task on the serverless computing system;

in response to the request, dynamically creating an ephemeral mesh network between the first sandboxed environment and a second sandboxed environment of the serverless computing system, wherein the ephemeral mesh network is an invocation-driven dynamically created and distinct network created to enable bilateral communication within a cluster of associated sandboxed environments comprising the first sandboxed environment and the second sandboxed environment, temporary, and dynamically created in response to the request; and

causing the first instance of the child task to execute in the second sandboxed environment.

17 . The computer-implemented method of claim 16 , further comprising in response to a determination that the parent task has ceased executing, removing the ephemeral mesh network.

18 . The computer-implemented method of claim 16 , wherein the child task is a first child task, and wherein the method further comprises receiving, from the parent task, a request to execute a first instance of a second child task on the serverless computing system.

19 . The computer-implemented method of claim 18 , further comprising:

in response to the request to execute the first instance of the second child task on the serverless computing system:

updating the ephemeral mesh network to include a third sandboxed environment of the serverless computing system; and

causing the first instance of the second child task to execute in the third sandboxed environment.

20 . The computer-implemented method of claim 18 , further comprising:

in response to the request to execute the first instance of the second child task on the serverless computing system:

creating a second ephemeral mesh network between the first sandboxed environment and a third sandboxed environment of the serverless computing system; and

causing the first instance of the second child task to execute in the third sandboxed environment.

21 . The system of claim 1 , wherein the cluster of associated sandboxed environments consists of the first sandboxed environment and the second sandboxed environment.

22 . The system of claim 1 , wherein the system comprises a first network, and wherein the dynamically creating the ephemeral mesh network comprises configuring the first network to enable communication within the cluster of associated sandboxed environments via the ephemeral mesh network isolated from other communication on the first network.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 29, 2023
From: GANGULY, ARIJIT; SINGH, PRASHANT KUMAR; NAGAYACH, RAVI S
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 063150/0476 →
Continuity (1)
Related Publication 20230315541A1 · Oct 5, 2023
References Cited (59)
US 6044394A · Cadden · 2000 [cited by examiner]
US 6044650A · Cook et al. · 2000 [cited by applicant]
US 7739233B1 · Ghemawat et al. · 2010 [cited by applicant]
US 7885204B1 · Schongar et al. · 2011 [cited by applicant]
US 9070211B1 · Kroeger · 2015 [cited by examiner]
US 9323556B2 · Wagner · 2016 [cited by applicant]
US 10127601B2 · Milne et al. · 2018 [cited by applicant]
US 10295268B2 · Schryver et al. · 2019 [cited by applicant]
US 10397189B1 · Hashmi · 2019 [cited by applicant]
US 11068888B1 · Levatte et al. · 2021 [cited by applicant]
US 11144359B1 · Brooker et al. · 2021 [cited by applicant]
US 11409864B1 · Baker · 2022 [cited by examiner]
US 11611616B1 · Gabrielson et al. · 2023 [cited by applicant]
US 12340261B2 · Ganguly et al. · 2025 [cited by applicant]
US 20050022086A1 · Kotz et al. · 2005 [cited by applicant]
US 20070258508A1 · Werb · 2007 [cited by examiner]
US 20080056191A1 · Heinonen et al. · 2008 [cited by applicant]
US 20080315624A1 · Claffy · 2008 [cited by applicant]
US 20100146085A1 · Van Wie et al. · 2010 [cited by applicant]
US 20110078703A1 · Dokovski · 2011 [cited by examiner]
US 20130109314A1 · Kneckt et al. · 2013 [cited by applicant]
US 20160330107A1 · Thubert · 2016 [cited by examiner]
US 20160350564A1 · Nedelcu · 2016 [cited by applicant]
US 20160378554A1 · Gummaraju · 2016 [cited by examiner]
US 20170329528A1 · Wei et al. · 2017 [cited by applicant]
US 20180302807A1 · Chen · 2018 [cited by examiner]
US 20190332366A1 · Natanzon et al. · 2019 [cited by applicant]
US 20200036796A1 · Tollet et al. · 2020 [cited by applicant]
US 20200052982A1 · Nainar · 2020 [cited by examiner]
US 20200068369A1 · Liao · 2020 [cited by examiner]
US 20200089528A1 · Gutierrez · 2020 [cited by examiner]
US 20200137125A1 · Patnala et al. · 2020 [cited by applicant]
US 20200145920A1 · Shen et al. · 2020 [cited by applicant]
US 20200184556A1 · Cella · 2020 [cited by applicant]
US 20200344610A1 · Duo et al. · 2020 [cited by applicant]
US 20210097193A1 · Miller et al. · 2021 [cited by applicant]
US 20210208948A1 · Sagi · 2021 [cited by examiner]
US 20210358032A1 · Cella et al. · 2021 [cited by applicant]
US 20210373861A1 · Parthasarathy · 2021 [cited by examiner]
US 20210377157A1 · Zhao et al. · 2021 [cited by applicant]
US 20210389983A1 · Blue · 2021 [cited by examiner]
US 20210406088A1 · Chen · 2021 [cited by applicant]
US 20220035905A1 · Lu · 2022 [cited by examiner]
US 20220103570A1 · Nainar et al. · 2022 [cited by applicant]
US 20240031309A1 · Wu et al. · 2024 [cited by applicant]
CN 113300985A · 2021 [cited by applicant]
EP 4500331A1 · 2025 [cited by applicant]
WO 2009143342A2 · 2009 [cited by applicant]
WO 2022206229A1 · 2022 [cited by applicant]
WO 2023192308A1 · 2023 [cited by applicant]
Zhang, Weihua & Sun, Gengxin & Bin, Sheng. “A Novel Task Communication and Scheduling Algorithm for NoC-based MPSoC.” International Journal of Smart Home., vol. 9, p. 179-188. (Year: 2015). [cited by examiner]
Zhang, Weihua & Sun, Gengxin, & Bin, Sheng. “A Novel Task Communication and Scheduling Algorithm for NoC-based MPSoC.” ( Year: 2015). [cited by examiner]
Ashima Agarwal, Live Migration of Virtual Machines in Cloud. (Year: 2012). [cited by applicant]
Fatima Hussain, Intelligent Service Mesh Framework for API Security and Management. (Year: 2019). [cited by applicant]
International Preliminary Report on Patentability re PCT Application No. PCT/US2023/016609, dated Oct. 10, 2024. [cited by applicant]
International Search Report and Written Opinion, re PCT Application No. PCT/US2023/016609, dated Jul. 5, 2023. [cited by applicant]
Jeremy A. Hansen, Extending Mesh Networks to Opportunistic Resource Sharing (Year: 2012). [cited by applicant]
Sanjay et al., A strategy for scheduling tightly coupled parallel applications on clusters, Concurrency and Computation: Practice and Experience, 21 :2491-2517 (Year: 2009). [cited by applicant]
Thomas Mundt, Network Topology Analysis in the Cloud. (Year: 2011). [cited by applicant]