# US 11,122,123 B1 · Method for a network of storage devices

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

- Number: US 11,122,123 B1
- Document ID: US11122123B1
- Status: Granted
- Kind: B1
- Application number: 16/812,512
- Filed: 2020-03-09
- Published: 2021-09-09
- Granted: 2021-09-14
- Earliest claimed: 2020-03-09
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Grzegorz Piotr Szczepanik; Kushal Patel; Lukasz Jakub Palus; Sarvesh S. Patel
- Web page: https://patentgrep.com/patent/US11122123B1

## CPC

- 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]
- G06F 9/547: {Remote procedure calls [RPC]; Web services}
- H03M 7/30: Compression (speech analysis-synthesis for redundancy reduction G10L19/00; for image communication H04N); Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H04L 47/115: {using a dedicated packet}
- H04L 47/127: by using congestion prediction
- H04L 47/33: using forward notification
- H04L 69/324: in the data link layer [OSI layer 2], e.g. HDLC
- H04L 69/04: Protocols for data compression, e.g. ROHC
- 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)
- H03M: CODING; DECODING; CODE CONVERSION IN GENERAL (using fluidic means F15C4/00; optical analogue/digital converters G02F7/00; coding, decoding or code conversion, specially adapted for particular applications, see the relevant subclasses, e.g. G01D, G01R, G06F, G06T, G09G, G10L, G11B, G11C, H04B, H04L, H04M, H04N; ciphering or deciphering for cryptography or other purposes involving the need for secrecy G09C)

## Abstract

The present disclosure relates to a method for data communication between nodes and storage devices via a networking device of a network, wherein data access to a storage device of the network by a node is performed in accordance with a data access mode being a normal data access mode. The networking device is configured to share available resources of the networking device between the data links. The method comprises: determining that a network congestion may occur in the network. At least one data link defined by a node and a storage device may be identified. The data access mode may be switched for the identified data link from the normal data access mode to a compressed data access mode. The compressed data access mode enables exchange of compressed data via the identified data link, thereby increasing available resources of the networking device.

## Claims

### Claim 1

A method comprising:
determining, by one or more processors, that a network congestion occurs in a network, wherein determining the network congestion occurs in the network comprises responsive to receiving a congestion signal of a data link control protocol, determining, by the one or more processors, the network congestion occurs in the network, wherein the congestion signal includes at least one of a receive not ready (RNR) signal or an Ethernet Flow control signal, wherein the network enables data communication between a plurality of nodes and a plurality of storage devices via a networking device of the network, and wherein the network congestion involves the networking device;
identifying, by the one or more processors, at least one data link defined by a node and a storage device each of which having a defined amount of available processing resources; and
switching, by the one or more processors, a data access mode for the at least one data link from a normal data access mode to a compressed data access mode, wherein the compressed data access mode enables exchange of compressed data via the at least one data link, wherein the switching is selectively performed for a predefined type of data to be communicated between the node and the storage device of the at least one data link, and wherein the predefined type of data is at least one of a data format and an age of the data.

### Claim 2 (depends on 1)

The method of claim 1, wherein determining the network congestion occurs in the network further comprises:
detecting, by the one or more processors, the network congestion using at least one of in-bound and out-of-bound application programming interfaces (APIs) to the networking device, the APIs being configured to collect information on data traffic through the networking device, wherein the network congestion is determined using the collected information.

### Claim 3 (depends on 1)

The method of claim 1, wherein determining the network congestion occurs in the network comprises:
predicting, by the one or more processors, the occurrence of the network congestion in a future time period.

### Claim 4 (depends on 1)

The method of claim 1, wherein switching the data access mode for the at least one data link from the normal data access mode to the compressed data access mode further comprises:
performing, by the one or more processors, a handshake between the storage device and the node of the at least one data link for triggering a compression protocol execution at the node and the storage device of the at least one data link, wherein the compression protocol execution at the node and the storage device comprises decompressing received compressed data and compressing data to be submitted.

### Claim 5 (depends on 4)

The method of claim 4, wherein switching the data access mode for the at least one data link from the normal data access mode to the compressed data access mode further comprises:
sending, by the one or more processors, a protocol command signal to the storage device of the at least one data link and performing the handshaking by the storage device upon receiving the protocol command signal.

### Claim 6 (depends on 1)

The method of claim 1, wherein identifying the at least one data link defined by the node and the storage device is performed using an in-bound or out-of-bound API between the storage device and the node.

### Claim 7 (depends on 1)

The method of claim 1, wherein the predefined type of data is user defined.

### Claim 8 (depends on 1)

The method of claim 1, wherein switching the data access mode for the at least one data link from the normal data access mode to a compressed data access mode is selectively performed for a respective distinct type of data to be communicated between the node and the storage device of the data link.

### Claim 9 (depends on 1)

The method of claim 1, wherein identifying the at least one data link defined by the node and the storage device comprises:
identifying, by the one or more processors, a plurality of data links involving respective pairs of node and storage device each of which having the defined amount of available processing resources; and
selecting, by the one or more processors, from the plurality of the data links the at least one data link based on a user defined selection criterion.

### Claim 10 (depends on 9)

The method of claim 9, wherein the user defined selection criterion excludes predefined storage devices and nodes.

### Claim 11 (depends on 1)

The method of claim 1, wherein the defined amount of available processing resources comprises at least one of: an amount of CPU, an amount of system memory, a number of hardware-based compression accelerators, software or hardware-based compression algorithm features being selected from a name; and a compression technique of the compression algorithm.

### Claim 12 (depends on 1)

The method of claim 1, further comprising:
switching back, by the one or more processors, the data access mode for the identified data link from the compressed data access mode to the normal data access mode in response to determining at least one of: (1) the node or the storage device of the identified data link does not have the defined amount of available processing resources, (2) the network congestion is resolved, and (3) a user switching request is received.

### Claim 13 (depends on 1)

The method of claim 1, wherein the network is a storage area network (SAN).

### Claim 14 (depends on 13)

The method of claim 13, wherein the node of the network is configured to perform the data access to the storage device on behalf of one or more hosts of the network.

### Claim 15 (depends on 1)

The method of claim 1, wherein the at least one data link is a congested link.

### Claim 16 (depends on 1)

The method of claim 1, wherein the switching being selectively performed for the predefined type of data enables a selective in-flight data compression for a set of objects.

### Claim 17

A computer program product comprising:
one or more computer readable storage media and program instructions stored on the one or more computer readable storage media, the program instructions comprising:
program instructions to determine that a network congestion occurs in a network, wherein determining the network congestion occurs in the network comprises responsive to receiving, a congestion signal of a data link control protocol, program instructions to determine the network congestion occurs in the network, wherein the congestion signal includes at least one of a receive not ready (RNR) signal or an Ethernet Flow control signal, wherein the network enables data communication between nodes and storage devices via a networking device of the network, and wherein the network congestion involves the networking device;
program instructions to identify at least one data link defined by a node and a storage device each of which having a defined amount of available processing resources; and
program instructions to switch a data access mode for the at least one data link from a normal data access mode to a compressed data access mode, wherein the compressed data access mode enables exchange of compressed data via the at least one data link, wherein the switching is selectively performed for a predefined type of data to be communicated between the node and the storage device of the at least one data link, and wherein the predefined type of data is at least one of a data format and an age of the data.

### Claim 18

A computer system comprising:
one or more computer processors;
one or more computer readable storage media;
program instructions stored on the computer readable storage media for execution by at least one of the one or more processors, the program instructions comprising:
program instructions to determine that a network congestion occurs in a network, wherein determining the network congestion occurs in the network comprises responsive to receiving a congestion signal of a data link control protocol, program instructions to determine the network congestion occurs in the network, wherein the congestion signal includes at least one of a receive not ready (RNR) signal or an Ethernet Flow control signal, wherein the network enables data communication between nodes and storage devices via a networking device of the network, and wherein the network congestion involves the networking device;
program instructions to identify at least one data link defined by a node and a storage device each of which having a defined amount of available processing resources; and
program instructions to switch a data access mode for the at least one data link from a normal data access mode to a compressed data access mode, wherein the compressed data access mode enables exchange of compressed data via the at least one data link, wherein the switching is selectively performed for a predefined type of data to be communicated between the node and the storage device of the at least one data link, and wherein the predefined type of data is at least one of a data format and an age of the data.
