# US 10,481,802 B1 · Balancing Mapped RAID background I/O with user I/O via dynamically changing background credits on Mapped RAID system and method

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

- Number: US 10,481,802 B1
- Document ID: US10481802B1
- Status: Granted
- Kind: B1
- Application number: 15/784,657
- Filed: 2017-10-16
- Granted: 2019-11-19
- Earliest claimed: 2017-10-16
- Assignees: EMC IP Holding Company LLC
- Applicants: EMC IP Holding Company, LLC
- Inventors: Jian Gao; Geng Han; Jibing Dong; Shaoqin Gong; Ree Sun; Naizhong Chiu; Xinlei Xu; Jamin Kang
- Web page: https://patentgrep.com/patent/US10481802B1

## CPC

- G06F 3/061: {Improving I/O performance}
- G06F 3/0611: {in relation to response time}
- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 3/0665: {at area level, e.g. provisioning of virtual or logical volumes}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 3/0689: {Disk arrays, e.g. RAID, JBOD}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method, computer program product, and computer system for receiving, by a computing device, an I/O request for data. A number of storage devices of a plurality of storage devices in a Mapped RAID group that will be used to process the I/O request may be determined. It may be determined that an amount of I/O credits available for the number of storage devices is insufficient. The amount of I/O credits available for the number of storage devices to process the I/O request may be tuned dynamically based upon, at least in part, determining that the amount of I/O credits available for the number of storage devices is insufficient.

## Claims

### Claim 1

A computing system including one or more processors and one or more memories configured to perform operations comprising:
receiving an I/O request for data, wherein the I/O request includes at least one of a user I/O request and a background operation I/O request;
determining a number of storage devices of a plurality of storage devices in a Mapped RAID group that will be used to process the I/O request;
determining that an amount of I/O credits available for the number of storage devices is insufficient, wherein each I/O credit represents an I/O operation on a storage device of the plurality of storage devices in the Mapped RAID group, wherein the amount of I/O credits available for the number of storage devices includes an amount of user I/O credits and an amount of background I/O credits; and
tuning, dynamically, the amount of I/O credits available for the number of storage devices to process the I/O request based upon, at least in part, determining that the amount of I/O credits available for the number of storage devices is insufficient, wherein tuning, dynamically, the amount of I/O credits available for the number of storage devices includes balancing the amount of user I/O credits and the amount of background I/O credits for the number of storage devices.

### Claim 2 (depends on 1)

The computing system of claim 1 wherein a first tuning technique for tuning, dynamically, the amount of I/O credits available for the number of storage devices is triggered when a first condition occurs.

### Claim 3 (depends on 1)

The computing system of claim 1 wherein a second tuning technique for tuning, dynamically, the amount of I/O credits available for the number of storage devices includes a +delta credits technique.

### Claim 4 (depends on 1)

The computing system of claim 1 wherein a third tuning technique for tuning, dynamically, the amount of I/O credits available for the number of storage devices includes a −delta credits technique.

### Claim 5 (depends on 1)

The computing system of claim 1 wherein the operations further comprise returning one or more I/O credits used to process the I/O request.

### Claim 6

A computer-implemented method comprising:
receiving, by a computing device, an I/O request for data, wherein the I/O request includes at least one of a user I/O request and a background operation I/O request;
determining a number of storage devices of a plurality of storage devices in a Mapped RAID group that will be used to process the I/O request;
determining that an amount of I/O credits available for the number of storage devices is insufficient, wherein each I/O credit represents an I/O operation on a storage device of the plurality of storage devices in the Mapped RAID group, wherein the amount of I/O credits available for the number of storage devices includes an amount of user I/O credits and an amount of background I/O credits; and
tuning, dynamically, the amount of I/O credits available for the number of storage devices to process the I/O request based upon, at least in part, determining that the amount of I/O credits available for the number of storage devices is insufficient, wherein tuning, dynamically, the amount of I/O credits available for the number of storage devices includes balancing the amount of user I/O credits and the amount of background I/O credits for the number of storage devices.

### Claim 7 (depends on 6)

The computer-implemented method of claim 6 wherein a first tuning technique for tuning, dynamically, the amount of I/O credits available for the number of storage devices is triggered when a first condition occurs.

### Claim 8 (depends on 6)

The computer-implemented method of claim 6 wherein a second tuning technique for tuning, dynamically, the amount of I/O credits available for the number of storage devices includes a +delta credits technique.

### Claim 9 (depends on 6)

The computer-implemented method of claim 6 wherein a third tuning technique for tuning, dynamically, the amount of I/O credits available for the number of storage devices includes a −delta credits technique.

### Claim 10 (depends on 6)

The computer-implemented method of claim 6 wherein the amount of I/O credits available for the number of storage devices for processing the I/O request includes at least one of a number of user I/O credits in an extent pool and a number of background I/O credits in the extent pool.

### Claim 11 (depends on 6)

The computer-implemented method of claim 6 further comprising returning one or more I/O credits used to process the I/O request.

### Claim 12

A computer program product residing on a non-transitory computer readable storage medium having a plurality of instructions stored thereon which, when executed across one or more processors, causes at least a portion of the one or more processors to perform operations comprising:
receiving an I/O request for data, wherein the I/O request includes at least one of a user I/O request and a background operation I/O request;
determining a number of storage devices of a plurality of storage devices in a Mapped RAID group that will be used to process the I/O request;
determining that an amount of I/O credits available for the number of storage devices is insufficient, wherein each I/O credit represents an I/O operation on a storage device of the plurality of storage devices in the Mapped RAID group, wherein the amount of I/O credits available for the number of storage devices includes an amount of user I/O credits and an amount of background I/O credits; and
tuning, dynamically, the amount of I/O credits available for the number of storage devices to process the I/O request based upon, at least in part, determining that the amount of I/O credits available for the number of storage devices is insufficient, wherein tuning, dynamically, the amount of I/O credits available for the number of storage devices includes balancing the amount of user I/O credits and the amount of background I/O credits for the number of storage devices.

### Claim 13 (depends on 12)

The computer program product of claim 12 wherein a first tuning technique for tuning, dynamically, the amount of I/O credits available for the number of storage devices is triggered when a first condition occurs.

### Claim 14 (depends on 12)

The computer program product of claim 12 wherein a second tuning technique for tuning, dynamically, the amount of I/O credits available for the number of storage devices includes a +delta credits technique.

### Claim 15 (depends on 12)

The computer program product of claim 12 wherein a third tuning technique for tuning, dynamically, the amount of I/O credits available for the number of storage devices includes a −delta credits technique.

### Claim 16 (depends on 12)

The computer program product of claim 12 wherein the amount of I/O credits available for the number of storage devices for processing the I/O request includes at least one of a number of user I/O credits in an extent pool and a number of background I/O credits in the extent pool.

### Claim 17 (depends on 12)

The computer program product of claim 12 wherein the operations further comprise returning one or more I/O credits used to process the I/O request.
