# US 10,769,102 B2 · Disk storage allocation

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

- Number: US 10,769,102 B2
- Document ID: US10769102B2
- Status: Granted
- Kind: B2
- Application number: 15/579,838
- Filed: 2015-06-12
- Published: 2018-06-14
- Granted: 2020-09-08
- Earliest claimed: 2015-06-12
- Assignees: Hewlett Packard Enterprise Development LP
- Applicants: Hewlett Packard Enterprise Development LP
- Inventors: Dave Donaghy; Josh Whelan; John Butt
- Web page: https://patentgrep.com/patent/US10769102B2

## CPC

- G06F 16/122: {using management policies (point-in-time backing up or restoration of persistent data G06F11/1446; file migration policies for HSM systems G06F16/185)}
- G06F 3/0614: {Improving the reliability of storage systems}
- G06F 3/064: {Management of blocks}
- G06F 3/0641: {De-duplication techniques}
- G06F 3/0683: {Plurality of storage devices}
- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 11/14: Error detection or correction of the data by redundancy in operations (error detection or correction of the data by redundancy in hardware G06F11/16)
- G06F 16/1752: {based on file chunks}
- G06F 2009/45583: {Memory management, e.g. access or allocation}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

According to an example, to allocate disk storage space, a request to store a new data chunk in a container is received. For a list of available containers, an exposure count for the container is fetched in the event that a container comprises a data chunk from a same source as the new data chunk. An optimal container to store the new data chunk is determined, and in the event that an exposure count of the optimal container is less than an exposure count limit, the new data chunk in the optimal container is stored.

## Claims

### Claim 1

A method comprising:
receiving, in a system comprising a hardware processor, a request to store a new data chunk in a container;
identifying, by the system, available containers;
in response to a first container of the available containers storing a data chunk from a same source as the new data chunk, fetching, by the system, a first exposure count for the first container and not increasing the first exposure count based on the new data chunk;
in response to a second container of the available containers not storing a data chunk from the same source, fetching, by the system, a second exposure count for the second container and increasing the second exposure count based on the new data chunk;
determining, by the system, an optimal container of the available containers to store the new data chunk based on comparing exposure counts, including the first exposure count and the increased second exposure count, of the available containers; and
in response to an exposure count of the optimal container being less than an exposure count limit, storing the new data chunk in the optimal container.

### Claim 2 (depends on 1)

The method of claim 1, wherein the first exposure count is based on a quantity of sources for which the first container stores data chunks, and the second exposure count is based on a quantity of sources for which the second container stores data chunks.

### Claim 3 (depends on 2)

The method of claim 2, wherein the sources for which the first container stores data chunks are first files, and the sources for which the second container stores data chunks are second files.

### Claim 4 (depends on 1)

The method of claim 1, comprising determining, by the system, the exposure count limit by accessing a disk drive storage allocation policy.

### Claim 5 (depends on 1)

The method of claim 1, wherein the determining of the optimal container to store the new data chunk comprises identifying which of the available containers has a lowest exposure count of the exposure counts that are compared.

### Claim 6 (depends on 1)

The method of claim 1, wherein information of the available containers is stored in an indexed database.

### Claim 7 (depends on 1)

The method of claim 1, wherein each container of the available containers is a file stored in a storage system.

### Claim 8 (depends on 1)

The method of claim 1, further comprising:
in response to the exposure count of the optimal container being greater than or equal to the exposure count limit, creating, by the system, a new container, and storing the new data chunk in the new container.

### Claim 9

A system comprising:
a processor;
a non-transitory storage medium storing instructions executable on the processor to:
receive a given data chunk of a file that is divided into a plurality of data chunks;
fetch exposure counts for respective containers of a plurality of containers from a database;
in response to determining that a first container of the plurality of containers stores a data chunk for the file, decline to increase a first exposure count for the first container based on the given data chunk;
in response to determining that a second container of the plurality of containers does not store a data chunk for the file, increase a second exposure count for the second container based on the given data chunk;
determine an optimal container from the plurality of containers to store the given data chunk based on the first exposure count and the increased second exposure count; and
cause storing of the given data chunk in the optimal container in response to an exposure count of the optimal container satisfying a criterion.

### Claim 10 (depends on 9)

The system of claim 9, wherein the optimal container is an existing container of the plurality of containers, and the exposure count of the optimal container is less than an exposure count maximum value, wherein the criterion is satisfied when the exposure count of the optimal container is less than the exposure count maximum value.

### Claim 11 (depends on 10)

The system of claim 10, wherein the exposure count maximum value is based on a maximum number of files that are permitted to depend on a single container.

### Claim 12 (depends on 10)

The system of claim 10, wherein the exposure count maximum value is based on a percentage of files in a storage system that are permitted to depend on a single container.

### Claim 13 (depends on 9)

The system of claim 9, wherein the instructions are executable on the processor to, in response to the exposure count of the optimal container not satisfying the criterion, create a new container, and store the given data chunk in the new container.

### Claim 14 (depends on 9)

The system of claim 9, wherein the instructions are executable on the processor to determine the optimal container based on comparing the first exposure count and the increased second exposure count.

### Claim 15 (depends on 14)

The system of claim 14, wherein the instructions are executable to determine the optimal container based on comparing the first exposure count, the increased second exposure count, and an exposure count of another container of the plurality of containers.

### Claim 16

A non-transitory computer readable storage medium comprising instructions that upon execution cause a system to:
receive a request to store a new data chunk of a source in a container in a storage system;
identify available containers available to store the new data chunk;
retrieve exposure counts for respective containers of the available containers;
in response to determining that a first container of the available containers stores a data chunk for the source, decline to increase a first exposure count for the first container based on the new data chunk;
in response to determining that a second container of the available containers does not store a data chunk for the source, increase a second exposure count for the second container based on the new data chunk;
determine an optimal container to store the new data chunk based on comparing the first exposure count and the increased second exposure count; and
in response to the optimal container having an exposure count greater than or equal to an exposure count limit, create a new container and store the new data chunk in the new container.

### Claim 17 (depends on 16)

The non-transitory computer readable storage medium of claim 16, wherein the instructions upon execution cause the system to store the new data chunk in the optimal container in response to the exposure count of the optimal container being less than the exposure count limit.

### Claim 18 (depends on 16)

The non-transitory computer readable storage medium of claim 16, wherein the optimal container is the container with a lowest exposure count of the available containers.

### Claim 19 (depends on 16)

The non-transitory computer readable storage medium of claim 16, wherein each container of the available containers is a file stored in the storage system.

### Claim 20 (depends on 19)

The non-transitory computer readable storage medium of claim 19, wherein the first container stores data chunks for first files, and the second container stores data chunks for second files.
