# US 10,503,437 B2 · Distributed service level management with performance resilience objectives

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

- Number: US 10,503,437 B2
- Document ID: US10503437B2
- Status: Granted
- Kind: B2
- Application number: 15/966,542
- Filed: 2018-04-30
- Published: 2019-10-31
- Granted: 2019-12-10
- Earliest claimed: 2018-04-30
- Assignees: EMC IP Holding Company LLC
- Applicants: EMC IP Holding Company LLC
- Inventors: Owen Martin; Arieh Don; Vinay G. Rao
- Web page: https://patentgrep.com/patent/US10503437B2

## CPC

- 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/0604: {Improving or facilitating administration, e.g. storage management}
- G06F 3/061: {Improving I/O performance}
- G06F 3/0611: {in relation to response time}
- G06F 3/0683: {Plurality of storage devices}
- G06F 3/0689: {Disk arrays, e.g. RAID, JBOD}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Execution of I/O operations for an application is managed to improve consistency of performance for an I/O performance metric for the application. Such control may be achieved by defining a value for a performance resilience objective (PRO) parameter, and applying the PRO value to I/O requests of the application. The PRO value may define a value indicative of an extent to which I/O performance can deviate from a performance objective (e.g., as defined by a service level) over time; i.e., a tolerance for such deviation. Components of a computer network may be configured to apply PRO values to I/O requests for one or more applications. The PRO values of applications may be distributed to one or more components of a data storage system and one or more components of a host system, and these components may be configured to apply the PRO values to I/O requests of the subject applications.

## Claims

### Claim 1

A method of managing an I/O request for a storage system, the method comprising:
receiving the I/O request specifying an I/O operation to perform for an application having data stored on the data storage system, the application having an associated first value indicative of a performance objective for a performance metric; and
controlling execution of the I/O operation based on the first value associated with the application and a second value indicative of a tolerance of deviation of actual performance from the first value over time,
wherein the first value specifies an average response time, and wherein the second value specifies an extent to which an actual response time is allowed to deviate over time from the average response time.

### Claim 2 (depends on 1)

The method of claim 1, wherein controlling execution of the I/O operation includes causing a delay in the performance of the I/O operation based at least in part on the second value.

### Claim 3 (depends on 2)

The method of claim 2, wherein controlling execution of the I/O operation includes determining a current status of the I/O operation, and causing the delay based at least on the first value, the second value and the current status.

### Claim 4 (depends on 1)

The method of claim 1, wherein controlling execution includes accelerating the performance of the I/O operation based at least in part on the second value.

### Claim 5 (depends on 1)

The method of claim 1, wherein controlling execution includes applying the second value on a host system prior to sending the I/O request to the storage system.

### Claim 6 (depends on 1)

The method of claim 1, wherein controlling execution includes applying the second value on the storage system prior to performing the I/O operation on the storage system.

### Claim 7 (depends on 1)

The method of claim 1, wherein controlling execution includes applying the second value on the storage system after performing the I/O operation on the storage system and prior to sending a response to the host system regarding the performing of the I/O operation.

### Claim 8 (depends on 1)

The method of claim 1, further comprising:
providing the second value to the storage system and a host system from which the I/O request originates,
wherein controlling execution includes applying the second value on the host system and the storage system.

### Claim 9 (depends on 1)

The method of claim 1, wherein the first value corresponds to a service level associated with the application.

### Claim 10

A system for managing an I/O request for a storage system, the system comprising:
one or more processors; and
a memory comprising code stored thereon that, when executed, performs a method comprising:
receiving an I/O request specifying an I/O operation to perform for an application having data stored on the data storage system, the application having an associated first value indicative of a performance objective for a performance metric; and
controlling a performance of the I/O operation based on the first value associated with the application and a second value indicative of a tolerance of deviation of actual performance from the first value over time,
wherein the first value specifies an average response time, and wherein the second value specifies an extent to which an actual response time is allowed to deviate over time from the average response time.

### Claim 11 (depends on 10)

The system of claim 10, wherein controlling execution of the I/O operation includes causing a delay in the performance of the I/O operation based at least in part on the second value.

### Claim 12 (depends on 11)

The system of claim 11, wherein controlling execution of the I/O operation includes determining a current status of the I/O operation, and causing the delay based at least on the first value, the second value and the current status.

### Claim 13 (depends on 10)

The system of claim 10, wherein controlling execution includes accelerating the performance of the I/O operation based at least in part on the second value.

### Claim 14 (depends on 10)

The system of claim 10, wherein the method further comprises providing the second value to the storage system and a host system from which the I/O request originates, and
wherein controlling execution includes applying the second value on the host system and the storage system.

### Claim 15 (depends on 10)

The system of claim 10, wherein the first value corresponds to a service level associated with the application.

### Claim 16

A non-transitory computer-readable medium having software stored thereon for managing an I/O request for a storage system, the software comprising:
executable code that receives an I/O request specifying an I/O operation to perform for an application having data stored on the data storage system, the application having an associated first value indicative of a performance objective for a performance metric; and
executable code that controls a performance of the I/O operation based on the first value associated with the application and a second value indicative of a tolerance of deviation of actual performance from the first value over time,
wherein the first value specifies an average response time, and wherein the second value specifies an extent to which an actual response time is allowed to deviate over time from the average response time.

### Claim 17 (depends on 16)

The non-transitory computer-readable medium of claim 16, wherein the executable code that controls execution of the I/O operation includes executable code that causes a delay in the performance of the I/O operation based at least in part on the second value.

### Claim 18 (depends on 16)

The non-transitory computer-readable medium of claim 16, wherein the executable code that controls execution includes executable code that accelerates the performance of the I/O operation based at least in part on the second value.

### Claim 19 (depends on 16)

The non-transitory computer-readable medium of claim 16, wherein the software further comprises:
executable code that provides the second value to the storage system and a host system from which the I/O request originates,
wherein the executable code that controls execution includes executable code that applies the second value on the host system and the storage system.

### Claim 20 (depends on 16)

The non-transitory computer-readable medium of claim 16, wherein the first value corresponds to a service level associated with the application.
