-
公开(公告)号:US10824339B1
公开(公告)日:2020-11-03
申请号:US16452425
申请日:2019-06-25
Applicant: Amazon Technologies, Inc.
Inventor: Marc John Brooker , Andrew J. Lusk , Mikhail Danilov
Abstract: Systems and methods are described for management of garbage collection processes in an on-demand code execution system. An on-demand code execution system may execute user-submitted code on virtual machine instances, which may be hosted on various host computing devices. As each virtual machine instance executes code, garbage (e.g., memory that is allocated and then not properly de-allocated) may accumulate and may reduce the computing resources that the instance makes available for allocation to further code executions. A garbage collection manager may be implemented on each host computing device that implements garbage collection by taking a snapshot of the virtual machine instance prior to the accumulation of garbage, and then restoring the snapshot rather than identifying and de-allocating garbage on an item-by-item basis. The virtual machine instance may also identify state information that should be preserved, and the garbage collection manager may preserve or avoid overwriting this state information.
-
12.
公开(公告)号:US11943093B1
公开(公告)日:2024-03-26
申请号:US16196935
申请日:2018-11-20
Applicant: Amazon Technologies, Inc.
Inventor: Marc John Brooker , Timothy Allen Wagner , Mikhail Danilov , Niall Mullen , Holly Mesrobian , Philip Daniel Piwonka
IPC: H04L41/0654 , G06F9/455 , H04L69/16
CPC classification number: H04L41/0654 , G06F9/45558 , H04L69/16 , G06F2009/4557 , G06F2009/45595
Abstract: Systems and methods are described for enabling graceful recovery of network connections in a virtual machine instance that has been migrated or temporarily halted. To prevent the virtual machine instance from attempting to reuse open connections, which might fail due to migration or halting, a host device identifies open connections just prior to halting the virtual machine instance on the host, and transmits to the virtual machine instance termination signals for the open connections. The host device may further transmit termination signals to the other parties to such connections. Each termination signal may be formatted so as to appear to originate from the other party to the connection, causing both parties to synchronize their knowledge of the connection. On reactivation, the virtual machine instance can recovery the connections without errors associated with attempted utilization of broken connections.
-
公开(公告)号:US11714675B2
公开(公告)日:2023-08-01
申请号:US17472380
申请日:2021-09-10
Applicant: Amazon Technologies, Inc.
Inventor: Marc John Brooker , Mikhail Danilov
Abstract: Systems and methods are described for providing virtualized transaction retries in an on-demand network code execution system. A user may generate a task on the system by submitting code. The task may include a transaction that can succeed or fail depending on external factors, such as accessing a resource that other processes are also trying to access. The system may obtain success criteria for evaluating whether the transaction was successful, and may configure a virtual machine instance to execute the submitted code. The system may generate a “snapshot” or otherwise capture information regarding the state of the virtual machine instance prior to executing the code, and may then execute the code or a portion of it to attempt the transaction. The system may then apply the success criteria to determine whether the transaction was successful, and if not may retry the transaction by restoring the snapshot and re-executing the code.
-
14.
公开(公告)号:US20220012083A1
公开(公告)日:2022-01-13
申请号:US17445699
申请日:2021-08-23
Applicant: Amazon Technologies, Inc.
Abstract: Systems and methods are described for reducing latency to service requests to execute code on an on-demand code execution system by maintaining snapshots of virtual machine instances in a ready state to execute such code. A user may submit code to the on-demand code execution system, which code depends on other software, such as an operating system or runtime. The on-demand code execution system can generate a virtual machine instance provisioned with the other software, and initialize the instance into a state at which it is ready to execute the code. The on-demand code execution system can then generate a snapshot of the state of the instance, and halt the instance. When a request to execute the code is received, the snapshot can be used to quickly restore the instance. The code can then be executed within the instance, reducing the need to initialize the instance or maintain the instance in an executing state.
-
公开(公告)号:US20220004423A1
公开(公告)日:2022-01-06
申请号:US17472380
申请日:2021-09-10
Applicant: Amazon Technologies, Inc.
Inventor: Marc John Brooker , Mikhail Danilov
IPC: G06F9/46
Abstract: Systems and methods are described for providing virtualized transaction retries in an on-demand network code execution system. A user may generate a task on the system by submitting code. The task may include a transaction that can succeed or fail depending on external factors, such as accessing a resource that other processes are also trying to access. The system may obtain success criteria for evaluating whether the transaction was successful, and may configure a virtual machine instance to execute the submitted code. The system may generate a “snapshot” or otherwise capture information regarding the state of the virtual machine instance prior to executing the code, and may then execute the code or a portion of it to attempt the transaction. The system may then apply the success criteria to determine whether the transaction was successful, and if not may retry the transaction by restoring the snapshot and re-executing the code.
-
公开(公告)号:US20200341741A1
公开(公告)日:2020-10-29
申请号:US16872033
申请日:2020-05-11
Applicant: Amazon Technologies, Inc.
Inventor: Marc John Brooker , Mikhail Danilov , Tobias Holgers
Abstract: Systems and methods are described for enabling cross-environment application of tracing information for code, such as code executed within an on-demand (or “serverless”) code execution system. Various optimizations exist that allow execution of code to proceed faster or more efficiently over time, by collecting tracing information regarding the execution and using that tracing information to guide compilation of the code. These optimizations are typically designed for long-lived environments. However, executions within an on-demand code execution system often occur in short-lived environments, reducing or eliminating any gains from these optimizations. To address this issue, optimizations made in a first environment based on tracing information can be passed to a subsequent environment, enabling those optimizations to persist across short-lived environments.
-
公开(公告)号:US11329803B2
公开(公告)日:2022-05-10
申请号:US17037427
申请日:2020-09-29
Applicant: Amazon Technologies, Inc.
Inventor: Marc Brooker , Osman Surkatty , Derek Manwaring , Mikhail Danilov , Peter Martin McDonnell , Stefan Schneider
Abstract: Systems and methods are described for providing storage of encrypted data sets, deduplication of such data sets, and control of the redundancy of those data sets. A form of modified convergent encryption can be employed, whereby an encryption key for a data set is selected based on a combination of the plaintext of the data set and a salt value, with the salt value being selected from a number of permutations corresponding to a desired redundancy of the data set in a storage system. Accordingly, a given data set can result in a number of ciphertexts equal to the desired redundancy, and deduplication can occur by removing duplicative instances of individual ciphertexts. Salt values can be selected according to a variety of criteria, including user-based, time-based, and location-based criteria.
-
公开(公告)号:US20220103338A1
公开(公告)日:2022-03-31
申请号:US17037369
申请日:2020-09-29
Applicant: Amazon Technologies, Inc.
Inventor: Marc Brooker , Derek Manwaring , Osman Surkatty , Mikhail Danilov , Peter Martin McDonnell , Stefan Schneider
Abstract: Systems and methods are described for providing secure storage of data sets while enabling efficient deduplication of data. Each data set can be divided into fixed-length blocks. The plaintext of each block can be convergently encrypted, such as by using a hash of the plaintext as an encryption key, to result in block-level ciphertext that can be stored. If two data sets share blocks, the resulting block-level ciphertext can be expected to overlap, and thus duplicative block-level ciphertexts need not be stored. A manifest can be created to facilitate re-creation of the data set, which manifest identifies the block-level ciphertexts of the data set and a key by which each block-level ciphertext was encrypted. By use of block-level encryption, nearly identical data sets can be largely deduplicated, even if they are not perfectly identical.
-
公开(公告)号:US11119809B1
公开(公告)日:2021-09-14
申请号:US16447797
申请日:2019-06-20
Applicant: Amazon Technologies, Inc.
Inventor: Marc John Brooker , Mikhail Danilov
Abstract: Systems and methods are described for providing virtualized transaction retries in an on-demand network code execution system. A user may generate a task on the system by submitting code. The task may include a transaction that can succeed or fail depending on external factors, such as accessing a resource that other processes are also trying to access. The system may obtain success criteria for evaluating whether the transaction was successful, and may configure a virtual machine instance to execute the submitted code. The system may generate a “snapshot” or otherwise capture information regarding the state of the virtual machine instance prior to executing the code, and may then execute the code or a portion of it to attempt the transaction. The system may then apply the success criteria to determine whether the transaction was successful, and if not may retry the transaction by restoring the snapshot and re-executing the code.
-
公开(公告)号:US20210240509A1
公开(公告)日:2021-08-05
申请号:US16782873
申请日:2020-02-05
Applicant: Amazon Technologies, Inc.
Inventor: Marc Brooker , Mikhail Danilov , Osman Surkatty , Tao Chen
IPC: G06F9/455 , G06F12/0882 , G06F12/0891
Abstract: Systems and methods are provided for efficiently configuring an execution environment for an on-demand code execution system to handle a single request (or session) for a single user. Once the session or request is complete, the execution environment is reset, such as by having the hardware processor state, memory, and storage reset. In particular, prior to the execution of code, state of the execution environment of the host computing device is retrieved, such as hardware processor(s), memory, and/or storage state. Moreover, during execution of the code instructions, intermediate state can be gathered. Following the execution of the code, the execution environment is reset based on the saved state related to the hardware processor(s), memory, and/or storage. A subsequent code execution securely occurs in the execution environment and the execution environment is reset again, and so forth.
-
-
-
-
-
-
-
-
-