# US 12,602,431 B2 · Methods for performing input-output operations in a storage system using artificial intelligence and devices thereof

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

- Number: US 12,602,431 B2
- Document ID: US12602431B2
- Status: Granted
- Kind: B2
- Application number: 17/750,678
- Filed: 2022-05-23
- Published: 2022-09-08
- Granted: 2026-04-14
- Earliest claimed: 2020-01-24
- Assignees: NetApp, Inc.
- Applicants: NetApp, Inc.
- Inventors: Douglas Joseph Santry
- Web page: https://patentgrep.com/patent/US12602431B2

## CPC

- G06F 16/901: Indexing; Data structures therefor; Storage structures (for retrieval from the web G06F16/951)
- G06F 16/906: Clustering; Classification
- G06F 18/2148: {characterised by the process organisation or structure, e.g. boosting cascade}
- G06F 18/24143: {Distances to neighbourhood prototypes, e.g. restricted Coulomb energy networks [RCEN]}
- G06N 3/04: Architecture, e.g. interconnection topology
- G06N 3/045: Combinations of networks
- G06N 3/0495: Quantised networks; Sparse networks; Compressed networks
- G06N 3/0499: Feedforward networks
- G06N 3/08: Learning methods
- G06N 3/082: modifying the architecture, e.g. adding, deleting or silencing nodes or connections
- G06N 3/09: Supervised learning
- G06N 5/01: Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS

## Abstract

The present technology relates to identifying one of a plurality of artificial intelligence models based on a received key value. The received key value is applied to the identified one of the artificial intelligence models which is trained to output one of a plurality of actual index values. The one of the actual index values is compared to a range within the actual index values to determine when the one of the actual index value points to the data block. A received input-output operation is performed on the data block when the one of the actual index values is determined to point to the data block.

## Claims

### Claim 1

A method for servicing input/output (I/O) operations in a data storage network with reduced media access requests, the method implemented by one or more data storage apparatuses and comprising:
traversing a neural tree based on a key received with a write operation to identify a current data block, wherein the neural tree comprises a plurality of hierarchically arranged nodes comprising interior nodes and leaf nodes, the interior nodes comprise artificial intelligence models, one of the leaf nodes comprises the current data block, and the write operation is received from a client device via a storage network connection;
determining that a layout of the neural tree requires modification;
creating a new data block on a data storage device in the data storage network;
assigning a first index to the new data block;
executing the write operation via a data fabric based on a storage location on the data storage device associated with the new data block; and
retraining, by the computing device, the one of the artificial intelligence models to output the first index assigned to the new data block instead of a second index pointing to the current data block.

### Claim 2 (depends on 1)

The method as set forth in claim 1, wherein at least one of the artificial intelligence models comprises a trained neural network.

### Claim 3 (depends on 1)

The method as set forth in claim 1, further comprising determining that the current data block is full requiring modification of the layout of the neural tree.

### Claim 4 (depends on 1)

The method as set forth in claim 1, further comprising training the artificial intelligence models with a plurality of keys and an associated plurality of indices.

### Claim 5 (depends on 1)

The method as set forth in claim 1, further comprising performing a binary search within the current data block to identify the storage location.

### Claim 6

A non-transitory machine readable medium having stored thereon instructions for servicing input/output (I/O) operations in a data storage network with reduced media access requests comprising machine executable code that, when executed by at least one machine, causes the machine to:
traverse a neural tree based on a key received with a delete operation to identify a data block, wherein the neural tree comprises a plurality of hierarchically arranged nodes comprising interior nodes and leaf nodes, the interior nodes comprise artificial intelligence models, one of the leaf nodes comprises the data block, and the delete operation is received from a client device via a storage network connection;
execute the delete operation via a data fabric based on a storage location on a data storage device in the data storage network determined from the data block;
determine that a layout of the neural tree requires modification as a result of the delete operation; and
retrain one of the artificial intelligence models to output a first index that is assigned to another one of the artificial intelligence models instead of a second index pointing to the data block.

### Claim 7 (depends on 6)

The non-transitory machine readable medium as set forth in claim 6, wherein at least one of the artificial intelligence models comprises a trained neural network.

### Claim 8 (depends on 6)

The non-transitory machine readable medium as set forth in claim 6, wherein the machine executable code, when executed by the machine, further causes the machine to delete the data block after determining that the data block is empty requiring modification of the layout of the neural tree.

### Claim 9 (depends on 6)

The non-transitory machine readable medium as set forth in claim 6, wherein the machine executable code, when executed by the machine, further causes the machine to train the artificial intelligence models with a plurality of keys and an associated plurality of indices.

### Claim 10 (depends on 6)

The non-transitory machine readable medium as set forth in claim 6, wherein the machine executable code, when executed by the machine, further causes the machine to perform a binary search within the data block to identify the storage location.

### Claim 11

A computing device for servicing input/output (I/O) operations in a data storage network with reduced media access requests, the computing device comprising:
memory containing machine readable media comprising machine executable code having stored thereon instructions; and
one or more processors coupled to the memory and configured to execute the machine executable code to cause the processors to:
traverse a tree based on a key received with a storage operation to identify a data block, wherein the tree comprises a plurality of hierarchically arranged nodes comprising trained neural networks and the storage operation is received from a client device via a storage network connection;
execute the storage operation via a data fabric based on a storage location on a data storage device in the data storage network determined from the data block;
determine that a layout of the tree requires modification as a result of the storage operation; and
retrain one of the trained neural networks to output a first index instead of a second index pointing to the data block.

### Claim 12 (depends on 11)

The computing device as set forth in claim 11, wherein the storage operation comprises a write operation and the processors are further configured to execute the machine executable code to cause the processors to determine that the data block is full requiring modification of the layout of the tree.

### Claim 13 (depends on 11)

The computing device as set forth in claim 11, wherein the storage operation comprises a delete operation and the processor is processors are further configured to execute the machine executable code to cause the processors to delete the data block after determining that the data block is empty requiring modification of the layout of the tree.

### Claim 14 (depends on 11)

The computing device as set forth in claim 11, wherein the processors are further configured to execute the machine executable code to cause the processors to perform a binary search within the data block to identify the storage location.

### Claim 15 (depends on 11)

The computing device as set forth in claim 11, wherein the processors are further configured to execute the machine executable code to cause the processors to identify one of the trained neural networks based on the key.

### Claim 16 (depends on 15)

The computing device as set forth in claim 15, wherein the processors are further configured to execute the machine executable code to cause the processors to apply the key to the identified one of the trained neural networks to generate an output comprising an actual index value, wherein the actual index value points to either the data block or another one of the trained neural networks.

### Claim 17 (depends on 15)

The computing device as set forth in claim 15, wherein each of the trained neural networks is associated with a key range and the key is within the key range associated with the identified one of the trained neural networks.
