IP Library › Granted Patent US 12,596,562
Granted Patent B2
US 12,596,562 · App. 17/700,068 · Granted Apr 7, 2026

Technologies to allocate resources to start-up a function

Inventors: Hong Zhang (San Jose, CA); Adriaan D.M. Van De Ven (Portland, OR); Liping Lian (Hillsboro, OR)
Assignee: Intel Corporation
G06F9/45558G06F9/3004G06F9/4403G06F9/44521G06F9/485G06F2009/45562G06F2009/45583
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,596,562
App. No.
17/700,068
Granted
Apr 7, 2026
Kind
B2
Abstract

Examples described herein relate to launching a function instance based on data related to a previously launched instance of the function and prior to receipt of a portion of the data. In some examples, the memory snapshot is taken during launch of the previously launched instance of the function. In some examples, the first code segments are loaded into memory of a runtime environment during the launch of the previously launched instance of the function in a life cycle execution of the previously launched instance of the function.

Claims (50)

1 . At least one non-transitory computer-readable medium comprising instructions stored thereon, that if executed by one or more processors, cause the one or more processors to:

launch a function instance by:

retrieving data related to a previously launched instance of the function, wherein the data comprises a memory snapshot taken during launch of the previously launched instance of the function and the data comprises first code segments loaded into a runtime environment during a launch of the previously launched instance of the function,

after retrieval of copies of the first code segments, retrieve second code segments associated with the function instance and access the retrieved first code segments and retrieved second code segments, and

while retrieving the second code segments, execute a function handler to launch the function instance based on the memory snapshot and the first code segments and retrieved code segments of the second code segments, wherein:

the memory snapshot comprises memory content of the previously launched instance of the function after completion of creating a sandbox but before initiation of a function handler for the previously launched instance of the function,

the first and second code segments are different parts of the function instance.

2 . The computer-readable medium of claim 1 , wherein the launching the function instance based on data related to the previously launched instance of the function and prior to receipt of a portion of the data comprises:

at least partially in parallel:

clone the memory snapshot, and

receive the first code segments into a memory device.

3 . The computer-readable medium of claim 1 , wherein the memory snapshot was captured after completion of creating the previously launched instance of the function's running environment and loading and initializing a language runtime of the previously launched instance of the function.

4 . The computer-readable medium of claim 1 , comprising instructions stored thereon, that if executed by one or more processors, cause the one or more processors to:

launch the function instance by executing a function handler based on availability of the memory snapshot and the first code segments.

5 . The computer-readable medium of claim 1 , wherein the launch the function instance based on the data related to the previously launched instance of the function and prior to receipt of a portion of the data comprises:

associate the launched function instance with one or more unique identifiers (IDs).

6 . The computer-readable medium of claim 1 , wherein the launched function instance comprises a micro virtual machine.

7 . The computer-readable medium of claim 1 , comprising instructions stored thereon, that if executed by one or more processors, cause the one or more processors to:

delete the function instance after completion of execution of the function instance.

8 . An apparatus comprising:

at least one processor;

at least one memory comprising instructions stored thereon, that if executed by the at least one processor, cause the at least one processor to:

launch a function instance by:

retrieval of data related to a previously launched instance of the function, wherein the data comprises a memory snapshot taken during launch of the previously launched instance of the function and the data comprises first code segments loaded into a runtime environment during a launch of the previously launched instance of the function,

after retrieval of copies of the first code segments, retrieve second code segments associated with the function instance and access the retrieved first code segments and retrieved second code segments, and

during retrieval the second code segments, execute a function handler to launch the function instance based on the memory snapshot and the first code segments and retrieved code segments of the second code segments, wherein:

the memory snapshot comprises memory content of the previously launched instance of the function after completion of creating a sandbox but before initiation of a function handler for the previously launched instance of the function,

the first and second code segments are different parts of the function instance.

9 . The apparatus of claim 8 , wherein the launch of the function instance based on data related to the previously launched instance of the function and prior to receipt of a portion of the data comprises:

at least partially in parallel:

clone the memory snapshot, and

receive the first code segments into a memory device.

10 . The apparatus of claim 8 , wherein the memory snapshot was captured after completion of creating of the previously launched instance of the function's running environment and loading and initializing a language runtime of the previously launched instance of the function.

11 . The apparatus of claim 8 , wherein the at least one memory comprises instructions stored thereon, that if executed by the at least one processor, cause the at least one processor to:

launch the function by execution of a function handler based on availability of the memory snapshot and the first code segments.

12 . The apparatus of claim 8 , wherein to launch the function instance based on data related to the previously launched instance of the function and prior to receipt of a portion of the data, the at least one processor is to:

associate the launched function instance with one or more unique identifiers (IDs).

13 . The apparatus of claim 8 , comprising a server, wherein the server comprises the at least one processor, the at least one memory, and a network interface device and wherein the network interface device is to receive the data and store the data into the at least one memory.

14 . The apparatus of claim 13 , comprising a datacenter, wherein the datacenter comprises a second server, wherein the second server is to store the data.

15 . A method comprising:

launch a function instance by:

retrieving data related to a previously launched instance of the function, wherein the data comprises a memory snapshot taken during launch of the previously launched instance of the function and the data comprises first code segments loaded into a runtime environment during a launch of the previously launched instance of the function,

after retrieval of copies of the first code segments, retrieving second code segments associated with the function instance and accessing the retrieved first code segments and retrieved second code segments, and

during retrieval the second code segments, execute a function handler to launch the function instance based on the memory snapshot and the first code segments and retrieved code segments of the second code segments, wherein:

the memory snapshot comprises memory content of the previously launched instance of the function after completion of creating a sandbox but before initiation of a function handler for the previously launched instance of the function,

the first and second code segments are different parts of the function instance.

16 . The method of claim 15 , wherein the launching the function instance based on data related to the previously launched instance of the function and prior to receipt of a portion of the data comprises:

at least partially in parallel:

cloning the memory snapshot, and

receiving the first code segments into memory.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 27, 2022
From: ZHANG, HONG; VAN DE VEN, ADRIAAN D.M.; LIAN, LIPING
To: INTEL CORPORATION
Reel/Frame 059751/0100 →
Continuity (1)
Related Publication 20220214908A1 · Jul 7, 2022
References Cited (15)
US 8972350B2 · Bachar · 2015 [cited by examiner]
US 10742491B2 · Shrivastava · 2020 [cited by examiner]
US 20110271290A1 · Bodin · 2011 [cited by examiner]
US 20180113623A1 · Sancheti · 2018 [cited by examiner]
US 20180239624A1 · Tsirkin · 2018 [cited by examiner]
US 20190028335A1 · Shrivastava · 2019 [cited by examiner]
US 20200117470A1 · Vaikar · 2020 [cited by examiner]
US 20210165662A1 · Qiao · 2021 [cited by examiner]
US 20210211391A1 · Paraschiv · 2021 [cited by examiner]
US 20220027203A1 · Thoemmes · 2022 [cited by examiner]
US 20220308899A1 · Sun · 2022 [cited by examiner]
Bernheim, Sebastian et al., OPN402 “Firecracker open-source innovation”, AWS re:Invent, © 2019, Amazon Web Services, 45 pages. [cited by applicant]
Mieden, Philipp and PARTARRIEU, Philippe, “Performance analysis of KVM-based microVMs orchestrated by Firecracker and QEMU”, Security and Network Engineering, University of Amsterdam, The Netherlands, Dec. 22, 2019, 7 p… [cited by applicant]
Stan's blog, “Using Firecracker and Go to run short-lived, untrusted code execution jobs”, https://stanislas.blog/2021/08/firecracker/, Aug. 2021, 18 pages. [cited by applicant]
U.S. Appl. No. 17/700,068, Figure 1, Known Prior Art, Oct. 2021. [cited by applicant]