# US 2014/0196031 A1 · Preprovisioning using mutated templates

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

- Number: US 2014/0196031 A1
- Document ID: US20140196031A1
- Status: Published application
- Kind: A1
- Application number: 13/738,937
- Filed: 2013-01-10
- Published: 2014-07-10
- Earliest claimed: 2013-01-10
- Assignees: International Business Machines Corporation
- Inventors: Manish Gupta
- Web page: https://patentgrep.com/patent/US20140196031A1

## CPC

- G06F 9/455: Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 2009/45562: {Creating, deleting, cloning virtual machine instances}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Illustrative embodiments include a method for preprovisioning using a mutated template. A subset of templates is selected from a set of templates that can be provisioned to a data processing system, a template in the set of templates including data to create a virtual machine on the data processing system. The mutated template is constructed using the subset of templates. A manifest is constructed such that a template in the subset of templates can be reconstructed from the mutated template using the manifest. Instead of the subset of templates, the mutated template is preprovisioned to the data processing system.

## Claims

### Claim 1

A method for preprovisioning using a mutated template, the method comprising:
selecting, using a processor and a memory, a subset of templates from a set of templates that can be provisioned to a data processing system, a template in the set of templates including data to create a virtual machine on the data processing system;
constructing the mutated template using the subset of templates;
constructing a manifest such that a template in the subset of templates can be reconstructed from the mutated template using the manifest; and
preprovisioning, instead of the subset of templates, the mutated template to the data processing system.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
analyzing the subset of templates to identify a block of data that is common to two templates in the subset of templates;
including a single copy of the block in the mutated template.

### Claim 3 (depends on 1)

The method of claim 1, wherein the manifest corresponds to the mutated template and describes the contents of the mutated template such that a block included in the mutated template can be located in the mutated template using the manifest.

### Claim 4 (depends on 1)

The method of claim 1, wherein the manifest corresponds to a first template in the subset of templates and specifies where in the mutated template, blocks corresponding to the first template are located.

### Claim 5 (depends on 1)

The method of claim 1, wherein the constructing the manifest further comprises:
omitting a second block from inclusion in the mutated template, wherein the second block belongs to a second template in the subset of templates.

### Claim 6 (depends on 5)

The method of claim 5, wherein the constructing the manifest further comprises:
including a reference to the second block in the manifest, the reference being usable for obtaining the block from a source external to the mutated template.

### Claim 7 (depends on 5)

The method of claim 5, wherein the omitting causes the second block to be obtained from a known source for reconstructing the second template, further comprising:
preprovisioning the manifest to the data processing system.

### Claim 8 (depends on 1)

The method of claim 1, further comprising:
analyzing a set of requests for templates over a period; and
predicting a demand for the subset of templates over a second period.

### Claim 9 (depends on 1)

The method of claim 1, wherein the constructing the mutated template further comprises:
prioritizing a first block to be included in the mutated template over a second block to be included in the mutated template; and
including the first block before the second block in the mutated template.

### Claim 10 (depends on 9)

The method of claim 9, wherein the prioritizing further comprises:
determining that the first block occurs in more templates in the subset than the second block.

### Claim 11 (depends on 9)

The method of claim 9, wherein the prioritizing further comprises:
determining that a policy specifies that the first block is to be included before the second block in the mutated template.

### Claim 12 (depends on 9)

The method of claim 9, where the prioritization further comprises:
determining, for a location in the mutated template, whether the first block has already been placed in the mutated template; and
placing, responsive to determining that the first block has already been placed in the mutated template, the second block at the location and omitting placing the first block at the location.

### Claim 13 (depends on 12)

The method of claim 12, where placing the second block further comprises:
determining whether the second block can be placed at the location by determining whether one of (i) a third block that can be placed at the location has already been placed in the mutated template at a second location preceding the location and (ii) no other block can be placed at the position.

### Claim 14 (depends on 12)

The method of claim 12, wherein the second block is chosen from a list of blocks that could not be placed in any position in the mutated template, placing the second block further comprising:
designating, as the second block, a block in the list of blocks that is most frequently requested across the templates in the subset of templates.

### Claim 15 (depends on 9)

The method of claim 9, further comprising:
determining a cost of omitting the first block from inclusion in the mutated template;
selecting the first block for inclusion in the mutated template responsive to the cost exceeding a threshold cost.

### Claim 16 (depends on 15)

The method of claim 15, wherein the cost is a volume of data traffic resulting from omitting the first block in the mutated template.
