# US 11,115,490 B2 · Host based read cache for san supporting NVMEF with E2E validation

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

- Number: US 11,115,490 B2
- Document ID: US11115490B2
- Status: Granted
- Kind: B2
- Application number: 16/050,474
- Filed: 2018-07-31
- Published: 2020-02-06
- Granted: 2021-09-07
- Earliest claimed: 2018-07-31
- Assignees: EMC IP Holding Company LLC
- Applicants: EMC IP Holding Company LLC
- Inventors: Boris Glimcher; Zvi Schneider; Amitai Alkalay; Kirill Shoikhet
- Web page: https://patentgrep.com/patent/US11115490B2

## CPC

- H04L 67/568: Storing data temporarily at an intermediate stage, e.g. caching
- G06F 3/0607: {by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device}
- G06F 3/061: {Improving I/O performance}
- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 3/0688: {Non-volatile semiconductor memory arrays}
- H04L 9/3239: {involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD}
- H04L 63/123: {received data contents, e.g. message integrity}
- H04L 67/1097: for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method for performing host based read cache for storage area networks (SANs) supporting Non-Volatile Memory Express over Fabrics (NVMeF) with validation. The method includes upon a first read operation from a client system of a storage array, receiving metadata with a read response regarding location of data subject to the read operation. The method also includes performing, by the client system, direct NVMeF reads from a namespace offset from the metadata. The direct NVMeF reads bypass a software stack of the storage array. The method further includes upon receiving a data block at the client system, using a signature from the metadata to perform validation on the data.

## Claims

### Claim 1

A method, comprising:
providing a shared non-volatile memory express over fabric (NVMeF)/remote direct memory access over converged ethernet (RoCE) space among designated client systems;
upon a first read operation for data from one of the client systems to a storage array, receiving metadata with a read response from the storage array, the read response including the data from the storage array, the metadata including a location of the data based on a drive number associated with a drive, an offset for the data on the drive, and a signature for the data;
performing, by the one of the client systems, a second read operation for the data to the storage array, the second read operation using the metadata to perform a direct non-volatile memory express over fabric (NVMeF) read from the storage array and bypassing a software stack of the storage array; and
upon receiving the data at the one of the client systems, using the signature from the metadata to perform validation on the data;
wherein each of the client systems in the shared NVMeF/RoCE space is provided with its own copy of the metadata that enables the client systems to perform the second read operation bypassing the software stack.

### Claim 2 (depends on 1)

The method of claim 1 further comprising issuing a command to access the metadata without reading the metadata.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
upon determining the data has moved, receiving an invalid response and a new location of the data.

### Claim 4 (depends on 1)

The method of claim 1, wherein the location of the data is reusable by the one of the client systems over a time period without sending additional requests for the metadata.

### Claim 5 (depends on 1)

The method of claim 1, wherein the storage array is implemented in a content addressable storage system, and the first read operation includes an address that is parsed via a routing module and translated via a control module to a hash value of the data and via a data module from the hash value to a physical location of the data on disk.

### Claim 6 (depends on 1)

The method of claim 1, wherein the client systems include third-party external providers comprising storage area networks.

### Claim 7

A non-transitory computer-readable medium having a computer program product stored thereon, the computer program product including instructions that, when executed by a computer causes the computer to perform operations comprising:
providing a shared non-volatile memory express over fabric (NVMeF)/remote direct memory access over converged ethernet (RoCE) space among designated client systems;
upon a first read operation for data from one of the client systems to a storage array, receiving metadata with a read response from the storage array, the read response including the data from the storage array, the metadata including a location of the data based on a drive number associated with a drive, an offset for the data on the drive, and a signature for the data;
performing, by the one of the client systems, a second read operation for the data to the storage array, the second read operation using the metadata to perform a direct NVMeF read from the storage array and bypassing a software stack of the storage array; and
upon receiving the data at the one of the client systems, using the signature from the metadata to perform validation on the data;
wherein each of the client systems in the shared NVMeF/RoCE space is provided with its own copy of the metadata that enables the client systems to perform the second read operation bypassing the software stack.

### Claim 8 (depends on 7)

The computer program product of claim 7, wherein the operations further comprise issuing a command to access the metadata without reading the metadata.

### Claim 9 (depends on 7)

The computer program product of claim 7, wherein the operations further comprise:
upon determining the data has moved, receiving an invalid response and a new location of the data.

### Claim 10 (depends on 7)

The computer program product of claim 7, wherein the signature is one of SHA-1, SHA-2, and MURMUR.

### Claim 11 (depends on 7)

The computer program product of claim 7, wherein the location is reusable by the one of the client systems over a time period without sending additional requests for the metadata.

### Claim 12 (depends on 7)

The computer program product of claim 7, wherein the data is not subject to a split to different drives.

### Claim 13

A system, comprising:
a memory comprising computer-executable instructions; and
a processor executing the computer-executable instructions, the computer-executable instructions when executed by the processor cause the processor to perform operations comprising:
providing a shared non-volatile memory express over fabric (NVMeF)/remote direct memory access over converged ethernet (RoCE) space among designated client systems;
upon a first read operation for data from one of the client systems to a storage array, receiving metadata with a read response from the storage array, the read response including the data from the storage array, the metadata including a location of the data based on a drive number associated with a drive, an offset for the data on the drive, and a signature for the data;
performing, by the one of the client systems, a second read operation for the data to the storage array, the second read operation using the metadata to perform a direct NVMeF read from the storage array and bypassing a software stack of the storage array; and
upon receiving the data at the one of the client systems, using the signature from the metadata to perform validation on the data;
wherein each of the client systems in the shared NVMeF/RoCE space is provided with its own copy of the metadata that enables the client systems to perform the second read operation bypassing the software stack.

### Claim 14 (depends on 13)

The system of claim 13 further comprising issuing a command to access the metadata without reading the metadata.

### Claim 15 (depends on 13)

The system of claim 13, further comprising:
upon determining the data has moved, receiving an invalid response and a new location of the data.

### Claim 16 (depends on 13)

The system of claim 13, wherein the signature is one of SHA-1, SHA-2, and MURMUR.

### Claim 17 (depends on 13)

The system of claim 13, wherein the location of the data is reusable by the one of the client systems over a time period without sending additional requests for the metadata.

### Claim 18 (depends on 13)

The system of claim 13, wherein the data is not subject to a split to different drives.
