# US 8,572,613 B1 · Comparison of virtual computing states by performing identified repeatable computations in a changing virtual computing environment

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,572,613 B1
- Document ID: US8572613B1
- Status: Granted
- Kind: B1
- Application number: 12/648,131
- Filed: 2009-12-28
- Granted: 2013-10-29
- Earliest claimed: 2009-12-28
- Assignees: Amazon Technologies, Inc.
- Applicants: Eric J. Brandwine
- Inventors: Eric J. Brandwine
- Web page: https://patentgrep.com/patent/US8572613B1

## CPC

- G06F 9/45533: {Hypervisors; Virtual machine monitors}
- G06F 11/3604: Analysis of software for verifying properties of programs (testing of software G06F11/3668)
- G06F 11/3051: {Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs (verification or detection of system hardware configuration G06F11/2247)}
- G06F 11/3055: {Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available (error or fault processing without redundancy G06F11/0703; error detection or correction by redundancy in data representation G06F11/08; error detection or correction of the data by redundancy in operations G06F11/14; error detection or correction by redundancy in hardware G06F11/16)}
- G06F 11/3409: {for performance assessment}
- G06F 11/3476: {Data logging (G06F11/14, G06F11/2205 take precedence)}
- G06F 2201/815: Virtual
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A physical computer system includes a processor and a memory configured to store instructions executable by the processor to implement a virtualization module, which in turn implements virtual machine(s) that execute an operating system distinct from any underlying operating system executed by the physical computer system. In response to a client request to initially perform a repeatable computation, the virtualization module instructs that the virtual machine(s) archive an original initial state of the repeatable computation, initially perform the repeatable computation, and archive an original terminal state of the repeatable computation. In response to a client request to repeat the repeatable computation, the virtualization module instructs that the virtual machine(s) be initialized according to configuration information indicated by the archived original initial state of the repeatable computation, and that the one or more virtual machines perform the repeatable computation to generate a new terminal state of the repeatable computation.

## Claims

### Claim 1

A system, comprising:
a physical computer system comprising:
a processor; and
a memory coupled to the processor, wherein the memory is configured to store instructions executable by the processor to implement a virtualization module;
wherein the virtualization module is configured to:
implement one or more virtual machines, wherein each of the one or more virtual machines is configured to execute an operating system that is distinct from any underlying operating system executed by the physical computer system;
identify one or more repeatable computations and one or more resources for performing the one or more repeatable computations on the one or more virtual machines;
in response to a client request to initially perform a computation that has been identified as one of the one or more identified repeatable computations, archive an original initial state of the repeatable computation, instruct that the one or more virtual machines initially perform the repeatable computation, and archive an original terminal state of the repeatable computation; and
in response to a client request to repeat the repeatable computation:
instruct that the one or more virtual machines be initialized according to configuration information indicated by the archived original initial state of the repeatable computation, wherein at a time the client request to repeat the repeatable computation is received, one or more aspects of a computing environment for the one or more virtual machines differ from when the repeatable computation was originally performed, and
instruct that the one or more virtual machines perform the repeatable computation to generate a new terminal state of the repeatable computation, wherein the new terminal state is expected to match the original terminal state according to a success criterion.

### Claim 2 (depends on 1)

The system as recited in claim 1, wherein the virtualization module is further configured to:
dependent upon a comparison of the original terminal state and the new terminal state, determine whether the repeatable computation has been successfully repeated according to a client-specified success criterion.

### Claim 3 (depends on 1)

The system as recited in claim 1, wherein the original initial state of the repeatable computation comprises one or more of: a respective memory image of each of the one or more virtual machines; configuration information describing configuration parameters of each of the one or more virtual machines; configuration information describing configuration parameters of the physical computer system; or a state of a mass storage resource configured for use by the one or more virtual machines.

### Claim 4 (depends on 1)

The system as recited in claim 1, wherein to instruct that the one or more virtual machines initially perform the repeatable computation, the virtualization module is further configured according to the client request to prevent the one or more virtual machines from receiving input from a network device or a peripheral device external to the virtualization module.

### Claim 5 (depends on 1)

The system as recited in claim 1, wherein the virtualization module is further configured to:
cause the repeatable computation to be performed to generate an acceptance suite terminal state by one or more virtual machines executing within a new hardware/software infrastructure that differs from an initial hardware/software infrastructure within which executed the one or more virtual machines that performed the repeatable computation to generate the original terminal state; and
determine the new hardware/software infrastructure is functionally equivalent to the initial hardware/software infrastructure based on a comparison of the original terminal state with the acceptance suite terminal state.

### Claim 6 (depends on 1)

The system as recited in claim 1, wherein to implement the one or more virtual machines, the virtualization module is further configured according to the client request to selectively disable computing features presented by the physical computer system upon which the one or more virtual machines execute, such that the disabled computing features are not available to software executing on the one or more virtual machines.

### Claim 7 (depends on 1)

The system as recited in claim 1, wherein subsequent to generation of the original terminal state and prior to indicating completion of the client request to initially perform the repeatable computation, the virtualization module is further configured to:
instruct that the one or more virtual machines perform the repeatable computation to generate a test terminal state of the repeatable computation; and
dependent upon a comparison of the original terminal state and the test terminal state, determine whether the initial performance of the repeatable computation has been successfully performed according to a success criterion.

### Claim 8 (depends on 7)

The system as recited in claim 7, wherein to determine that the initial performance of the repeatable computation has been successfully performed, the success criterion requires that the entire test terminal state match the entire original terminal state.

### Claim 9 (depends on 7)

The system as recited in claim 7, wherein to determine that the initial performance of the repeatable computation has been successfully performed, the success criterion requires that a portion comprising less than all of the test terminal state match a corresponding portion of the original terminal state.

### Claim 10 (depends on 7)

The system as recited in claim 7, wherein to determine that the initial performance of the repeatable computation has been successfully performed, the success criterion requires that an output of a hash function as applied to all or a portion of the test terminal state match an output of the hash function as applied to all or a portion of the original terminal state.

### Claim 11 (depends on 7)

The system as recited in claim 7, wherein the success criterion is specified by the client that requested that the repeatable computation be initially performed.

### Claim 12 (depends on 1)

The system as recited in claim 1, wherein to instruct that the one or more virtual machines initially perform the repeatable computation to generate an original terminal state of the repeatable computation, the virtualization module is further configured to archive an original initial state of the repeatable computation at a plurality of checkpoints, wherein each of the checkpoints is indicative of the original initial state of the repeatable computation at a corresponding point in time during the repeatable computation.

### Claim 13

A method, comprising:
performing by a physical computer system comprising a processor and a memory:
a virtualization module implementing one or more virtual machines, wherein each of the one or more virtual machines is configured to execute an operating system that is distinct from any underlying operating system executed by the physical computer system;
identifying one or more repeatable computations and one or more resources for performing the one or more repeatable computations on the one or more virtual machines;
in response to a client request to initially perform a computation that has been identified as one of the one or more identified repeatable computations, the virtualization module archiving an original initial state of the repeatable computation, instructing that the one or more virtual machines initially perform the repeatable computation, and archiving an original terminal state of the repeatable computation; and
in response to a client request to repeat the repeatable computation:
the virtualization module instructing that the one or more virtual machines be initialized according to configuration information indicated by the archived original initial state of the repeatable computation, wherein at a time the client request to repeat the repeatable computation is received, one or more aspects of a computing environment for the one or more virtual machines differ from when the repeatable computation was originally performed, and
the virtualization module instructing that the one or more virtual machines perform the repeatable computation to generate a new terminal state of the repeatable computation, wherein the new terminal state is expected to match the original terminal state according to a success criterion.

### Claim 14 (depends on 13)

The method as recited in claim 13, further comprising:
dependent upon a comparison of the original terminal state and the new terminal state, the virtualization module determining whether the repeatable computation has been successfully repeated according to a client-specified success criterion.

### Claim 15 (depends on 13)

The method as recited in claim 13, wherein the original initial state of the repeatable computation comprises one or more of: a respective memory image of each of the one or more virtual machines; configuration information describing configuration parameters of each of the one or more virtual machines; configuration information describing configuration parameters of the physical computer system; or a state of a mass storage resource configured for use by the one or more virtual machines.

### Claim 16 (depends on 13)

The method as recited in claim 13, wherein instructing that the one or more virtual machines initially perform the repeatable computation comprises preventing, according to the client request, the one or more virtual machines from receiving input from a network device or a peripheral device external to the virtualization module.

### Claim 17 (depends on 13)

The method as recited in claim 13, further comprising:
causing the repeatable computation to be performed to generate an acceptance suite terminal state by one or more virtual machines executing within a new hardware/software infrastructure that differs from an initial hardware/software infrastructure within which executed the one or more virtual machines that performed the repeatable computation to generate the original terminal state; and
determining the new hardware/software infrastructure is functionally equivalent to the initial hardware/software infrastructure based on a comparison of the original terminal state with the acceptance suite terminal state.

### Claim 18 (depends on 13)

The method as recited in claim 13, wherein implementing the one or more virtual machines comprises selectively disabling, according to the client request, computing features presented by the physical computer system upon which the one or more virtual machines execute, such that the disabled computing features are not available to software executing on the one or more virtual machines.

### Claim 19 (depends on 13)

The method as recited in claim 13, further comprising:
subsequent to generation of the original terminal state and prior to indicating completion of the client request to initially perform the repeatable computation, the virtualization module instructing that the one or more virtual machines perform the repeatable computation to generate a test terminal state of the repeatable computation; and
dependent upon a comparison of the original terminal state and the test terminal state, the virtualization module determining whether the initial performance of the repeatable computation has been successfully performed according to a success criterion.

### Claim 20 (depends on 19)

The system as recited in claim 19, wherein to determine that the initial performance of the repeatable computation has been successfully performed, the success criterion requires that the entire test terminal state match the entire original terminal state.

### Claim 21 (depends on 19)

The system as recited in claim 19, wherein to determine that the initial performance of the repeatable computation has been successfully performed, the success criterion requires that a portion comprising less than all of the test terminal state match a corresponding portion of the original terminal state.

### Claim 22 (depends on 19)

The system as recited in claim 19, wherein to determine that the initial performance of the repeatable computation has been successfully performed, the success criterion requires that an output of a hash function as applied to all or a portion of the test terminal state match an output of the hash function as applied to all or a portion of the original terminal state.

### Claim 23 (depends on 19)

The system as recited in claim 19, wherein the success criterion is specified by the client that requested that the repeatable computation be initially performed.

### Claim 24 (depends on 13)

The method as recited in claim 13, wherein instructing that the one or more virtual machines initially perform the repeatable computation to generate an original terminal state of the repeatable computation comprises archiving an original initial state of the repeatable computation at a plurality of checkpoints, wherein each of the checkpoints is indicative of the original initial state of the repeatable computation at a corresponding point in time during the repeatable computation.

### Claim 25

A non-transitory computer-accessible storage medium that stores instructions, wherein the instructions are computer-executable to implement a virtualization module that is configured to:
implement one or more virtual machines, wherein each of the one or more virtual machines is configured to execute an operating system that is distinct from any underlying operating system executed by the physical computer system;
identify one or more repeatable computations and one or more resources for performing the one or more repeatable computations on the one or more virtual machines;
in response to a client request to initially perform a computation that has been identified as one of the one or more identified repeatable computations, archive an original initial state of the repeatable computation, instruct that the one or more virtual machines initially perform the repeatable computation, and archive an original terminal state of the repeatable computation; and
in response to a client request to repeat the repeatable computation:
instruct that the one or more virtual machines be initialized according to configuration information indicated by the archived original initial state of the repeatable computation, wherein at a time the client request to repeat the repeatable computation is received, one or more aspects of a computing environment for the one or more virtual machines differ from when the repeatable computation was originally performed, and
instruct that the one or more virtual machines perform the repeatable computation to generate a new terminal state of the repeatable computation, wherein the new terminal state is expected to match the original terminal state according to a success criterion.

### Claim 26 (depends on 25)

The non-transitory computer-accessible storage medium as recited in claim 25, wherein the virtualization module is further configured to:
dependent upon a comparison of the original terminal state and the new terminal state, determine whether the repeatable computation has been successfully repeated according to a client-specified success criterion.

### Claim 27 (depends on 25)

The non-transitory computer-accessible storage medium as recited in claim 25, wherein the original initial state of the repeatable computation comprises one or more of: a respective memory image of each of the one or more virtual machines; configuration information describing configuration parameters of each of the one or more virtual machines; configuration information describing configuration parameters of the physical computer system; or a state of a mass storage resource configured for use by the one or more virtual machines.

### Claim 28 (depends on 25)

The non-transitory computer-accessible storage medium as recited in claim 25, wherein to instruct that the one or more virtual machines initially perform the repeatable computation, the virtualization module is further configured according to the client request to prevent the one or more virtual machines from receiving input from a network device or a peripheral device external to the virtualization module.

### Claim 29 (depends on 25)

The non-transitory computer-accessible storage medium as recited in claim 25, wherein the virtualization module is further configured to:
cause the repeatable computation to be performed to generate an acceptance suite terminal state by one or more virtual machines executing within a new hardware/software infrastructure that differs from an initial hardware/software infrastructure within which executed the one or more virtual machines that performed the repeatable computation to generate the original terminal state; and
determine the new hardware/software infrastructure is functionally equivalent to the initial hardware/software infrastructure based on a comparison of the original terminal state with the acceptance suite terminal state.

### Claim 30 (depends on 25)

The non-transitory computer-accessible storage medium as recited in claim 25, wherein to implement the one or more virtual machines, the virtualization module is further configured according to the client request to selectively disable computing features presented by the physical computer system upon which the one or more virtual machines execute, such that the disabled computing features are not available to software executing on the one or more virtual machines.

### Claim 31 (depends on 25)

The non-transitory computer-accessible storage medium as recited in claim 25, wherein subsequent to generation of the original terminal state and prior to indicating completion of the client request to initially perform the repeatable computation, the virtualization module is further configured to:
instruct that the one or more virtual machines perform the repeatable computation to generate a test terminal state of the repeatable computation; and
dependent upon a comparison of the original terminal state and the test terminal state, determine whether the initial performance of the repeatable computation has been successfully performed according to a success criterion.

### Claim 32 (depends on 31)

The non-transitory computer-accessible storage medium as recited in claim 31, wherein to determine that the initial performance of the repeatable computation has been successfully performed, the success criterion requires that the entire test terminal state match the entire original terminal state.

### Claim 33 (depends on 31)

The non-transitory computer-accessible storage medium as recited in claim 31, wherein to determine that the initial performance of the repeatable computation has been successfully performed, the success criterion requires that a portion comprising less than all of the test terminal state match a corresponding portion of the original terminal state.

### Claim 34 (depends on 31)

The non-transitory computer-accessible storage medium as recited in claim 31, wherein to determine that the initial performance of the repeatable computation has been successfully performed, the success criterion requires that an output of a hash function as applied to all or a portion of the test terminal state match an output of the hash function as applied to all or a portion of the original terminal state.

### Claim 35 (depends on 31)

The non-transitory computer-accessible storage medium as recited in claim 31, wherein the success criterion is specified by the client that requested that the repeatable computation be initially performed.

### Claim 36 (depends on 25)

The non-transitory computer-accessible storage medium as recited in claim 25, wherein to instruct that the one or more virtual machines initially perform the repeatable computation to generate an original terminal state of the repeatable computation, the virtualization module is further configured to archive an original initial state of the repeatable computation at a plurality of checkpoints, wherein each of the checkpoints is indicative of the original initial state of the repeatable computation at a corresponding point in time during the repeatable computation.
