Snapshot-based garbage collection in an on-demand code execution system

    公开(公告)号:US10824339B1

    公开(公告)日:2020-11-03

    申请号:US16452425

    申请日:2019-06-25

    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.

    Virtualization-based transaction handling in an on-demand network code execution system

    公开(公告)号:US11714675B2

    公开(公告)日:2023-08-01

    申请号:US17472380

    申请日:2021-09-10

    CPC classification number: G06F9/466 H04L67/02

    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.

    REDUCING EXECUTION TIMES IN AN ON-DEMAND NETWORK CODE EXECUTION SYSTEM USING SAVED MACHINE STATES

    公开(公告)号:US20220012083A1

    公开(公告)日:2022-01-13

    申请号:US17445699

    申请日:2021-08-23

    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.

    VIRTUALIZATION-BASED TRANSACTION HANDLING IN AN ON-DEMAND NETWORK CODE EXECUTION SYSTEM

    公开(公告)号:US20220004423A1

    公开(公告)日:2022-01-06

    申请号:US17472380

    申请日:2021-09-10

    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.

    CROSS-ENVIRONMENT APPLICATION OF TRACING INFORMATION FOR IMPROVED CODE EXECUTION

    公开(公告)号:US20200341741A1

    公开(公告)日:2020-10-29

    申请号:US16872033

    申请日:2020-05-11

    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.

    Redundancy controls in convergent encryption using dynamic salt values

    公开(公告)号:US11329803B2

    公开(公告)日:2022-05-10

    申请号:US17037427

    申请日:2020-09-29

    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.

    EFFICIENT DEDUPLICATION USING BLOCK-BASED CONVERGENT ENCRYPTION

    公开(公告)号:US20220103338A1

    公开(公告)日:2022-03-31

    申请号:US17037369

    申请日:2020-09-29

    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.

    Virtualization-based transaction handling in an on-demand network code execution system

    公开(公告)号:US11119809B1

    公开(公告)日:2021-09-14

    申请号:US16447797

    申请日:2019-06-20

    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.

    SINGLE USE EXECUTION ENVIRONMENT FOR ON-DEMAND CODE EXECUTION

    公开(公告)号:US20210240509A1

    公开(公告)日:2021-08-05

    申请号:US16782873

    申请日:2020-02-05

    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.

Patent Agency Ranking