IP Library › Granted Patent US 12,039,381
Granted Patent B2
US 12,039,381 · App. 17/935,900 · Granted Jul 16, 2024

On-demand code execution data management

Inventors: Srinivas Jasti (Sammamish, WA); Prashant Kumar Singh (Seattle, WA); Christopher Magee Greenwood (Seattle, WA); Sushant Bhatia (Kirkland, WA)
Assignee: Amazon Technologies, Inc.
G06F9/544G06F9/45558G06F2009/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,039,381
App. No.
17/935,900
Granted
Jul 16, 2024
Kind
B2
Abstract

Systems and methods are provided for managing provision of—and access to—data sets among instances of function code executing in an on-demand manner. An API is provided by which functions can store data sets to be shared with other functions, and by which functions can access data sets shared by other functions.

Claims (78)

1. A system comprising:

a data storage service comprising a first set of computing devices, wherein the data storage service stores a plurality of data objects;

a cache service comprising a second set of computing devices, wherein the cache service stores cached versions of data sets; and

an on-demand code execution service comprising a third set of computing devices for on-demand execution of function code, wherein the on-demand code execution service is configured to at least:

receive a first request to execute a priming function defined by priming function code;

in response to the first request, provision a first computing device of the third set of computing devices with the priming function code;

execute the priming function on the first computing device, wherein the priming function obtains a data set from the data storage service;

receive, from the priming function, a second request to generate a data reference associated with the data set;

generate the data reference;

store a cached version of the data set at the cache service;

subsequent to completion of execution of the priming function, receive a third request to execute an executor function defined by executor function code, wherein the third request is received in response occurrence of data processing event, and wherein the third request comprises the data reference;

in response to the third request, provision a second computing device of the third set of computing devices with the executor function code;

store a local copy of the cached version of the data set from the cache service to a local cache on the second computing device based on the data reference; and

execute the executor function on the second computing device, wherein the executor function accesses the local copy of the cached version of the data set.

2. The system of claim 1 , wherein the local copy of the cached version of the data set is immutable, and wherein the executor function stores, in a local output data store of the second computing device, a modified data set based on applying a modification to at least a portion of the local copy of the cached version of the data set.

3. The system of claim 2 , wherein the on-demand code execution service is further configured to:

receive, from the executor function, a fourth request to generate a second data reference associated with the modified data set;

generate the second data reference; and

store a cached version of the modified data set at the cache service.

4. The system of claim 1 , wherein the on-demand code execution service is further configured to:

determine that an account under which the executor function is to execute; and

determine that the cached version of the data is in scope for the account.

5. A computer-implemented method comprising:

under control of a computing system comprising one or more computer processors configured to execute specific instructions,

configuring a code execution system to execute a first instance of first function code, wherein the code execution system provides on-demand execution of function code on dynamically-selected hardware;

executing the first instance using the code execution system;

determining that a data set used by the first instance is to be available to one or more other instances of function code executed by the code execution system;

generating a data reference comprising a reference to be used to access the data set;

receiving an invocation request to execute second function code;

configuring the code execution system to execute a second instance of the second function code;

executing the second instance using the code execution system;

receiving, from the second instance, a data access request comprising the data reference; and

providing, to the second instance, access to the data set based on the data reference.

6. The computer-implemented method of claim 5 , wherein determining that the data set is to be available to the one or more other instances of function code executed by the code execution system comprises receiving, from the first instance, a request to generate the data reference, wherein the request comprises:

location data representing a location of the data set in a local storage location associated with the first instance; and

namespace data representing a namespace to access the data set.

7. The computer-implemented method of claim 6 , further comprising determining, based on the namespace data, to provide to the second instance access to the data set.

8. The computer-implemented method of claim 5 , further comprising storing a cached version of the data set in a network-accessible cache in response to determining that the data set is to be available to the one or more other instances of function code executed by the code execution system.

9. The computer-implemented method of claim 8 , wherein providing to the second instance access to the data set comprises replicating at least a portion of the cached version of the data set from the network-accessible cache to a local cache of a host computing device on which the second instance is executing.

10. The computer-implemented method of claim 5 , further comprising:

determining that a second data set used by the second instance is to be available to the one or more other instances of function code executed by the code execution system; and

generating a second data reference comprising a reference to be used to access the second data set.

11. The computer-implemented method of claim 10 , further comprising:

receiving a third request to execute third function code;

configuring the code execution system to execute a third instance of the third function code;

executing the third instance using the code execution system;

receiving, from the third instance, a discovery request; and

determining that the third instance is permitted to access the second data set based on a namespace associated with the second data set.

12. The computer-implemented method of claim 11 , further comprising:

determining an account under which the third instance is to be executed; and

determining, based on the namespace associated with the second data set, that the second data set is in scope for the account.

13. A system comprising computer readable memory and one or more processors, wherein the system is configured to:

configure a code execution system to execute a first instance of first function code, wherein the code execution system provides on-demand execution of function code on dynamically-selected hardware;

execute the first instance using the code execution system;

determine that a data set used by the first instance is to be available to one or more other instances of function code executed by the code execution system;

generate a data reference comprising a reference to be used to access the data set;

receive an invocation request to execute second function code, wherein the invocation request comprises the data reference;

configure the code execution system to execute a second instance of the second function code;

execute the second instance using the code execution system; and

provide, to the second instance, access to the data set based on the data reference.

14. The system of claim 13 , wherein to determine that the data set is to be available to the one or more other instances of function code executed by the code execution system, the system is further configured to receive, from the first instance, a request to generate the data reference, wherein the request comprises:

location data representing a location of the data set in a local storage location associated with the first instance; and

namespace data representing a namespace to access the data set.

15. The system of claim 14 , further configured to determine, based on the namespace data, to provide to the second instance access to the data set.

16. The system of claim 13 , further configured to store a cached version of the data set in a network-accessible cache in response to determining that the data set is to be available to the one or more other instances of function code executed by the code execution system.

17. The system of claim 16 , wherein to provide to the second instance access to the data set, the system is further configured to replicate at least a portion of the cached version of the data set from the network-accessible cache to a local cache of a host computing device on which the second instance is executing.

18. The system of claim 13 , further configured to:

determine that a second data set used by the second instance is to be available to the one or more other instances of function code executed by the code execution system; and

generate a second data reference comprising a reference to be used to access the second data set.

19. The system of claim 18 , further configured to:

receive a third request to execute third function code;

configure the code execution system to execute a third instance of the third function code;

execute the third instance using the code execution system;

receive, from the third instance, a discovery request; and

determine that the third instance is permitted to access the second data set based on a namespace associated with the second data set.

20. The system of claim 19 , further configured to:

determining an account under which the third instance is to be executed; and

determining, based on the namespace associated with the second data set, that the second data set is in scope for the account.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2023
From: JASTI, SRINIVAS; SINGH, PRASHANT KUMAR; GREENWOOD, CHRISTOPHER MAGEE; BHATIA, SUSHANT
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 063975/0985 →
Continuity (1)
Related Publication 20240103942A1 · Mar 28, 2024