# US 11,029,884 B2 · Storage handling guidance for host input/output operations

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

- Number: US 11,029,884 B2
- Document ID: US11029884B2
- Status: Granted
- Kind: B2
- Application number: 16/512,449
- Filed: 2019-07-16
- Published: 2021-01-21
- Granted: 2021-06-08
- Earliest claimed: 2019-07-16
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Ben Sasson; Carlos F. Fuente; Florent Rostagni; Alexander Henry Ainscow
- Web page: https://patentgrep.com/patent/US11029884B2

## CPC

- G06F 3/0604: {Improving or facilitating administration, e.g. storage management}
- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 3/0608: {Saving storage space on storage systems}
- G06F 3/061: {Improving I/O performance}
- G06F 3/0643: {Management of files}
- G06F 3/0653: {Monitoring storage devices or systems}
- G06F 3/0658: {Controller construction arrangements}
- G06F 3/0673: {Single storage device}
- G06F 3/0683: {Plurality of storage devices}
- G06F 16/902: {using more than one table in sequence, i.e. systems with three or more layers}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Method and system are provided for storage handling guidance for host input/output (I/O) operations. The method includes: providing a guidance array of indications of storage operations handling instructions, the guidance array having multiple dimensions of performance characteristics with each dimension having multiple levels; and associating a reference vector with one or more I/O operations, wherein the reference vector points to a level for each dimension of the array to obtain an indication of a storage operations handling instruction at an intercept of the dimension levels for application by a storage system controller for the one or more I/O operations.

## Claims

### Claim 1

A computer-implemented method for providing storage handling guidance for host input/output (I/O) operations comprising:
providing a guidance array of indications of storage operations handling instructions, the guidance array having multiple dimensions of performance characteristics with each dimension having multiple levels;
receiving, by a storage system controller, an input/output (I/O) operation from a host application, the I/O operation comprising a command and a reference vector, wherein the reference vector points to a level for each dimension of the guidance array to obtain an indication of a storage operations handling instruction at an intercept of the dimension levels for the host application by the storage system controller for the I/O operation;
extracting, by the storage system controller, the reference vector from the command;
looking up, by the storage system controller, the reference vector in the guidance array for the storage operations handling instruction;
determining, by the storage system controller, whether there is a customized storage operations handling instructions for the I/O operation within the guidance array, and where the customized storage operations handling instructions are present in the guidance array, applying, by the storage system controller, the customized storage operations handling instructions, otherwise, applying, by the storage system controller, default storage handling behavior;
selecting, by the storage system controller, a level value for each dimension of the guidance array;
adding each level value to the reference vector, wherein the level value added to the reference vector points to an indication of an instruction in the guidance array for handling a combination of performance characteristic.

### Claim 2 (depends on 1)

The method as claimed in claim 1, further comprising:
associating the reference vector with one or more I/O operations and associating is carried out by the host application in accordance with the guidance array defined by an agreement between the host application and a storage system.

### Claim 3 (depends on 1)

The method as claimed in claim 1, further comprising:
associating the reference vector with one or more I/O operations is carried out by the storage system controller and applying the reference vector based on a nature or type of incoming I/O operation.

### Claim 4 (depends on 3)

The method as claimed in claim 3, wherein associating the reference vector with one or more I/O operations is based on a sector of the I/O operations and specifies a required level for each dimension of the guidance array.

### Claim 5 (depends on 1)

The method as claimed in claim 1, further comprising:
determining whether a sector being written by the I/O operation requires special storage handling; and
upon determining that special storage handling is required, selecting the level value for each dimension of the guidance array and adding the level value to the reference vector, indicating an instruction in the guidance array for handling a combination of performance characteristic levels; and
upon determining that special storage handling is not required, associating a blank reference vector with the I/O operation.

### Claim 6 (depends on 5)

The method as claimed in claim 5, wherein the sector being written by the I/O operation that requires the special storage handling is a superblock or a log area.

### Claim 7 (depends on 1)

The method as claimed in claim 1, wherein the guidance array includes dimensions for performance, resilience, and storage efficiency.

### Claim 8 (depends on 1)

The method as claimed in claim 1, wherein the storage operations handling instructions are selected from the group consisting of instructions to deduplicate stored data, to compress stored data, to store data in a special location, to duplicate data for increased resilience, to decide on a storage tier, to decide on a compression level, and to handle storage operations in a designated manner.

### Claim 9

A system for providing storage handling guidance for host input/output (I/O) operations, comprising:
a processor;
and a computer-readable storage media coupled to the processor, wherein the computer-readable storage media contains computer program instructions executing a computer-implemented method comprising:
providing a guidance array of indications of storage operations handling instructions accessible to a storage system controller, the guidance array having multiple dimensions of performance characteristics with each dimension having multiple levels;
receiving, by a storage system controller, an input/output (I/O) operation from a host application, the I/O operation comprising a command and a reference vector, wherein the reference vector points to a level for each dimension of the guidance array to obtain an indication of a storage operations handling instruction at an intercept of the dimension levels for the host application by the storage system controller for the I/O operation;
extracting, by the storage system controller, the reference vector from the command;
looking up, by the storage system controller, the reference vector in the guidance array for the storage operations handling instruction; and
determining, by the storage system controller, whether there is a customized storage operations handling instructions for the I/O operation within the guidance array, and if the customized storage operations handling instructions are present in the guidance array, applying, by the storage system controller, the customized storage operations handling instructions, otherwise, applying, by the storage system controller, default storage handling behavior;
selecting, by the storage system controller, a level value for each dimension of the guidance array; and
adding each level value to the reference vector, wherein the level value added to the reference vector points to an indication of an instruction in the guidance array for handling a combination of performance characteristic.

### Claim 10 (depends on 9)

The system as claimed in claim 9, further comprising:
associating the reference vector with one or more I/O operations and the associating of the reference vector with the one or more I/O operations is carried out by the host application in accordance with the guidance array as defined by an agreement between the host application and a storage system.

### Claim 11 (depends on 10)

The system as claimed in claim 10, wherein associating the reference vector with one or more I/O operations is based on a sector of the I/O operations and specifies a required level for each dimension of the guidance array.

### Claim 12 (depends on 9)

The system as claimed in claim 9, further comprising:
determining whether a sector being written by the I/O operation requires special storage handling;
upon determining that special storage handling is required, selecting the level value for each dimension of the guidance array and adding the level value to the reference vector, indicating an instruction in the guidance array for handling a combination of performance characteristic levels; and
upon determining that special storage handling is not required, associating a blank reference vector with the I/O operation.

### Claim 13 (depends on 12)

The system as claimed in claim 12, wherein the sector being written by the I/O operation that requires the special storage handling is a superblock or a log area.

### Claim 14 (depends on 9)

The system as claimed in claim 9, wherein the guidance array includes dimensions for performance, resilience, and storage efficiency.

### Claim 15 (depends on 9)

The system as claimed in claim 9, wherein the storage operations handling instructions are selected from the group consisting of instructions to deduplicate stored data, to compress stored data, to store data in a special location, to duplicate data for increased resilience, to decide on a storage tier, to decide on a compression level, and to handle storage operations in a designated manner.

### Claim 16

A computer program product for providing storage handling guidance for host input/output (I/O) operations, the computer program product comprising:
a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processor to cause the processor to:
provide a guidance array of indications of storage operations handling instructions, the guidance array having multiple dimensions of performance characteristics with each dimension having multiple levels;
receive, by a storage system controller, an input/output (I/O) operation from a host application, the I/O operation comprising a command and a reference vector, wherein the reference vector points to a level for each dimension of the guidance array to obtain an indication of a storage operations handling instruction at an intercept of the dimension levels for application by the storage system controller for the one or more I/O operations;
extract, by the storage system controller, the reference vector from the command;
look up, by the storage system controller, the reference vector in the guidance array for the storage operations handling instruction;
determine, by the storage system controller, whether there is a customized storage operations handling instructions for the I/O operation within the guidance array, and where the customized storage operations handling instructions are present in the guidance array, applying, by the storage system controller, the customized storage operations handling instructions, otherwise, applying, by the storage system controller, default storage handling behavior;
select, by the storage system controller, a level value for each dimension of the guidance array; and
add each level value to the reference vector, wherein the level value added to the reference vector points to an indication of an instruction in the guidance array for handling a combination of performance characteristic.

### Claim 17 (depends on 16)

The computer program product of claim 16, further comprising instructions to:
determine whether a sector being written by the I/O operation requires special storage;
upon determining that special storage handling is required, select the level value for each dimension of the guidance array and adding the level value to the reference vector, indicating an instruction in the guidance array for handling a combination of performance characteristic levels; and
upon determining that special storage handling is not required, associate a blank reference vector with the I/O operation.
