# US 2018/0024850 A1 · Providing a layered image using a hierarchical tree

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

- Number: US 2018/0024850 A1
- Document ID: US20180024850A1
- Status: Published application
- Kind: A1
- Application number: 15/216,551
- Filed: 2016-07-21
- Published: 2018-01-25
- Earliest claimed: 2016-07-21
- Assignees: Red Hat, Inc.
- Applicants: Red Hat, Inc.
- Inventors: David Caro Estevez
- Web page: https://patentgrep.com/patent/US20180024850A1

## CPC

- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 16/2246: {Trees, e.g. B+trees}
- G06F 16/51: Indexing; Data structures therefor; Storage structures
- G06F 8/63: {Image based installation; Cloning; Build to order}
- G06F 2009/45562: {Creating, deleting, cloning virtual machine instances}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A hierarchical tree of nodes for layered images may be maintained. The hierarchical tree may include paths that each includes nodes representing layered images for a virtual machine. A request indicating a child component may be received. A subset of the paths of the hierarchical tree may be identified where each of the subset of the paths includes a child node representing the child component, one or more intermediary nodes representing layered images of intermediary components, and a root node. A path, from the subset of paths, with fewer nodes representing layered images that are not present in a storage of a machine may be selected. Furthermore, the layered images that are not present in the storage of the machine may be provided to the machine to instantiate a virtual machine to execute the child component.

## Claims

### Claim 1

A method comprising:
maintaining, by a processing device of a first machine, a hierarchical tree of nodes for a plurality of layered images, the hierarchical tree having a plurality of paths that each include a plurality of nodes representing layered images for a virtual machine, the plurality of nodes of a path comprising a root node, intermediary nodes representing layered images of intermediary components, and child nodes representing layered images of child components;
receiving, from a second machine, a request indicating a child component;
identifying, in the plurality of paths, a subset of paths that each comprise a child node representing the child component, one or more intermediary nodes representing layered images of intermediary components on which the child component depends, and the root node;
selecting, from the identified subset of paths, a path with fewer nodes representing layered images that are not present in a storage of the second machine; and
providing the layered images that are not present in the storage of the second machine to instantiate a corresponding virtual machine to execute the child component of the request.

### Claim 2 (depends on 1)

The method of claim 1, further comprises:
sending, to the second machine, information about the hierarchical tree of nodes for one or more layered images that are used with the child component indicated by the request.

### Claim 3 (depends on 2)

The method of claim 2, wherein the information about the hierarchical tree corresponds to the identified subset of paths, the method further comprising:
receiving, from the second machine, an identification of whether layered images represented by the nodes of the identified subset of paths are not present in the storage of the second machine.

### Claim 4 (depends on 1)

The method of claim 1, wherein selecting, from the identified subset of paths, the path with fewer nodes further comprises:
receiving, from the second machine, an identification of layered images that are present in the storage of the second machine; and
determining whether layered images represented by the nodes of the identified subset of paths are not present in the storage of the second machine in view of the received identification of layered images.

### Claim 5 (depends on 1)

The method of claim 1, wherein each node is a label with a component name and a version number combined with node labels of a preceding intermediary node and the root node in the respective path of each node.

### Claim 6 (depends on 1)

The method of claim 1, wherein one or more recipes are used to populate the hierarchical tree of nodes, wherein each recipe comprises a set of instructions for a respective component represented by each node, and identifies whether the respective component depends on one or more intermediary components and the operating system.

### Claim 7 (depends on 1)

The method of claim 1, wherein the child component is an update to an intermediary component, an application to be used with the intermediary component, or user data associated with the intermediary component.

### Claim 8 (depends on 1)

The method of claim 1, wherein maintaining the hierarchical tree of nodes for a plurality of layered images comprises:
in response to receiving a recipe corresponding to a new intermediary component, inserting a new intermediary node in the hierarchical tree representing a new layered image of the new intermediary component; and
updating the child nodes representing layered images of child components that depend on the new intermediary component.

### Claim 9

A system comprising:
a memory; and
a processing device of a first machine, operatively coupled with the memory, to:
maintain a hierarchical tree of nodes for a plurality of layered images, the hierarchical tree having a plurality of paths that each include a plurality of nodes representing layered images for a virtual machine, the plurality of nodes of a path comprising a root node, intermediary nodes representing layered images of intermediary components, and child nodes representing layered images of child components;
receive, from a second machine, a request indicating a child component;
identify, in the plurality of paths, a subset of paths that each comprise a child node representing the child component, one or more intermediary nodes representing layered images of intermediary components on which the child component depends, and the root node;
select, from the identified subset of paths, a path with fewer nodes representing layered images that are not present in a storage of the second machine; and
provide the layered images that are not present in the storage of the second machine to instantiate a corresponding virtual machine to execute the child component of the request.

### Claim 10 (depends on 9)

The system of claim 9, wherein the processing device is further to:
send, to the second machine, information about the hierarchical tree of nodes for one or more layered images that are used with the child component indicated by the request.

### Claim 11 (depends on 10)

The system of claim 10, wherein the information about the hierarchical tree corresponds to the identified subset of paths, the processing device is further to:
receive, from the second machine, an identification of whether layered images represented by the nodes of the identified subset of paths are not present in the storage of the second machine.

### Claim 12 (depends on 9)

The system of claim 9, wherein to select, from identified subset of paths, the path with fewer nodes, the processing device is further to:
receive, from the second machine, an identification of layered images that are present in the storage of the second machine; and
determine whether layered images represented by the nodes of the identified subset of paths are not present in the storage of the second machine in view of the received identification of layered images.

### Claim 13 (depends on 9)

The system of claim 9, wherein each node is a label with a component name and a version number combined with node labels of a preceding intermediary node and the root node in the respective path of each node.

### Claim 14 (depends on 9)

The system of claim 9, wherein one or more recipes are used to populate the hierarchical tree of nodes, wherein each recipe comprises a set of instructions for a respective component represented by each node, and identifies whether the respective component depends on one or more intermediary components and the operating system.

### Claim 15

A non-transitory computer readable storage medium comprising instructions that, when executed by a processing device, cause the processing device to:
maintain, by the processing device of a first machine, a hierarchical tree of nodes for a plurality of layered images, the hierarchical tree having a plurality of paths that each include a plurality of nodes representing layered images for a virtual machine, the plurality of nodes comprising a root node, intermediary nodes representing layered images of intermediary components, and child nodes representing layered images of child components;
receive, from a second machine, a request indicating a child component;
identify, in the plurality of paths, a path comprising a child node representing the child component, one or more intermediary nodes representing layered images of intermediary components associated with the child component, and the root node;
select, from the identified path, one or more nodes representing layered images that are not present in a storage of the second machine; and
provide the layered images corresponding to the selected one or more nodes to instantiate a corresponding virtual machine with the child component.

### Claim 16 (depends on 15)

The non-transitory computer readable medium of claim 15, wherein to select, from the identified path, the one or more nodes representing layered images that are not present in the storage of the second machine, the processing device is further to:
send, to the second machine, information about the one or more nodes representing the layered images in the identified path comprising the child node representing the child component; and
receive, from the second machine, an identification of whether each of the layered images represented by the one or more nodes are not present in the storage of the second machine.

### Claim 17 (depends on 15)

The non-transitory computer readable medium of claim 15, wherein to select, from the identified path, the one or more nodes representing layered images that are not present in the storage of the second machine, the processing device is further to:
receive, from the second machine, an identification of layered images that are present in the storage of the second machine; and
determine whether the one or more nodes of the identified path represent layered images are not present in a storage of the second machine in view the received list.

### Claim 18 (depends on 15)

The non-transitory computer readable medium of claim 15, wherein each node is a label with a component name and a version number combined with node labels of a preceding intermediary node and the root node in the respective path of each node.

### Claim 19 (depends on 15)

The non-transitory computer readable medium of claim 15, wherein the child component is an update to an intermediary component, an application to be used with the intermediary component, or user data associated with the intermediary component.

### Claim 20 (depends on 15)

The non-transitory computer readable medium of claim 15, wherein to maintain the hierarchical tree of nodes for a plurality of layered images, the processing device is further to:
insert a new intermediary node in the hierarchical tree representing a new layered image of a new intermediary component; and
update the child nodes representing layered images of child components that depend on the new intermediary component.
