# US 10,503,672 B2 · Time dependent service level 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,672 B2
- Document ID: US10503672B2
- Status: Granted
- Kind: B2
- Application number: 15/963,398
- Filed: 2018-04-26
- Published: 2019-10-31
- Granted: 2019-12-10
- Earliest claimed: 2018-04-26
- Assignees: EMC IP Holding Company LLC
- Applicants: EMC IP Holding Company LLC
- Inventors: Thomas F. O'Neill; Sanjib Mallick; Arieh Don; Vinay G. Rao
- Web page: https://patentgrep.com/patent/US10503672B2

## CPC

- G06F 13/1668: {Details of memory controller}
- G06F 3/061: {Improving I/O performance}
- G06F 3/0635: {by changing the path, e.g. traffic rerouting, path reconfiguration}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 11/3034: {where the computing system component is a storage system, e.g. DASD based or network based (digital input from or digital output to record carriers G06F3/06; digital recording or reproducing G11B20/18; 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], H04L67/1097)}
- G06F 11/3419: {by assessing time}
- G06F 11/3476: {Data logging (G06F11/14, G06F11/2205 take precedence)}
- G06F 13/18: based on priority control (G06F13/1605 takes precedence)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Described are techniques for processing I/O operations that may include: issuing, by a process of an application on a host, an I/O operation; tagging the I/O operation with a tag value in accordance with a process name associated with the process that issued the I/O operation; sending the I/O operation from the host to a data storage system; and determining, on the data storage system, an service level objective (SLO) for the I/O operation in accordance with the tag value of the I/O operation. The process name may include a first portion and a second customizable or configurable portion used to distinguish between different instance of the same application process. It may be determined which of multiple time-dependent SLOs for the process name is active and used with the I/O operation based on a receipt or processing time associated with the I/O operation.

## Claims

### Claim 1

A method of processing I/O operations comprising:
issuing, by a process of an application on a host, an I/O operation;
tagging the I/O operation with a tag value, wherein the tag value is determined in accordance with a process name associated with the process that issued the I/O operation, and wherein said tagging includes storing the tag value in the I/O operation;
sending the I/O operation including the tag value from the host to a data storage system; and
determining, on the data storage system, a service level objective for the I/O operation in accordance with the tag value included in the I/O operation.

### Claim 2 (depends on 1)

The method of claim 1, wherein said tagging is performed by a multi-path I/O driver of the host.

### Claim 3 (depends on 1)

The method of claim 1, wherein the tag value is used to distinguish between different processes.

### Claim 4 (depends on 1)

The method of claim 1, wherein the tag value is used to distinguish between different instances of a same process.

### Claim 5 (depends on 1)

The method of claim 1, wherein the process name includes a first portion and a second portion, and wherein the first portion denotes a particular process of the application and the second portion is a customized portion denoting a particular instance of the application.

### Claim 6 (depends on 5)

The method of claim 5, wherein the host includes two instances of the application and two different instances of a same process, the process, executing on the host, and wherein the second portion of the process name is used to distinguish between the two different instances of the same process of the application.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
receiving the I/O operation at the data storage system; and
responsive to receiving the I/O operation, performing first processing that determines the service level objective for the I/O operation in accordance with the tag value of the I/O operation.

### Claim 8 (depends on 7)

The method of claim 7, wherein a table includes entries of process names and, for each process name, an associated tag value and one or more associated service level objective-time frame pairs.

### Claim 9

A method of processing I/O operations comprising:
issuing, by a process of an application on a host, an I/O operation;
tagging the I/O operation with a tag value in accordance with a process name associated with the process that issued the I/O operation;
sending the I/O operation from the host to a data storage system; and
determining, on the data storage system, a service level objective for the I/O operation in accordance with the tag value of the I/O operation;
receiving the I/O operation at the data storage system; and
responsive to receiving the I/O operation, performing first processing that determines the service level objective for the I/O operation in accordance with the tag value of the I/O operation, wherein a table includes entries of process names and, for each process name, an associated tag value and one or more associated service level objective-time frame pairs, and wherein the table includes a first entry for the process name and the first processing further comprises:
determining, using the table and the tag value of the I/O operation, at least one associated service level objective-time frame pair, wherein the at least one associated service level object-time frame pair specifies a service level that is active or effective or the process name at particular points in time in accordance with time-specific criteria.

### Claim 10 (depends on 9)

The method of claim 9, wherein the time-specific criteria includes any of: a particular day of a week, a particular date, a particular time of day, and a particular calendar day.

### Claim 11 (depends on 9)

The method of claim 9, wherein the first processing includes:
determining that the at least one associated service level objective-time frame pair is currently not active or effective for the I/O operation whereby the I/O operation is received at the data storage system at a time which does not meet the time-specific criteria of the at least one associated service level objective-time frame pair; and
responsive to determining that the at least one associated service level objective-time frame pair is currently not active or effective for the I/O operation, using a default service level objective for processing the I/O operation.

### Claim 12 (depends on 11)

The method of claim 11, wherein the at least one associated service level objective-time frame pair specifies a higher service level objective than the default service level objective, and wherein the higher service level objective is active or effective when the time-specific criteria is met by the I/O operation.

### Claim 13 (depends on 11)

The method of claim 11, wherein the at least one associated service level objective-time frame pair specifies a lower service level objective than the default service level objective, and wherein the lower service level objective is active or effective when the time-specific criteria is met by the I/O operation.

### Claim 14

A system comprising:
at least one processor; and
a memory comprising code stored therein that, when executed by the at least one processor, performs a method of processing I/O operations comprising:
issuing, by a process of an application on a host, an I/O operation;
tagging the I/O operation with a tag value, wherein the tag value is determined in accordance with a process name associated with the process that issued the I/O operation, and wherein said tagging includes storing the tag value in the I/O operation;
sending the I/O operation including the tag value from the host to a data storage system; and
determining, on the data storage system, a service level objective for the I/O operation in accordance with the tag value included in the I/O operation.

### Claim 15

A computer readable medium comprising code stored thereon that, when executed, performs a method of processing I/O operations comprising:
issuing, by a process of an application on a host, an I/O operation;
tagging the I/O operation with a tag value, wherein the tag value is determined in accordance with a process name associated with the process that issued the I/O operation, and wherein said tagging includes storing the tag value in the I/O operation;
sending the I/O operation including the tag value from the host to a data storage system; and
determining, on the data storage system, a service level objective for the I/O operation in accordance with the tag value included in the I/O operation.

### Claim 16 (depends on 15)

The computer readable medium of claim 15, wherein said tagging is performed by a multi-path I/O driver of the host.

### Claim 17 (depends on 15)

The computer readable medium of claim 15, wherein the tag value is used to distinguish between different processes.

### Claim 18 (depends on 15)

The computer readable medium of claim 15, wherein the tag value is used to distinguish between different instances of a same process.

### Claim 19 (depends on 15)

The computer readable medium of claim 15, wherein the process name includes a first portion and a second portion, and wherein the first portion denotes a particular process of the application and the second portion is a customized portion denoting a particular instance of the application.

### Claim 20 (depends on 19)

The computer readable medium of claim 19, wherein the host includes two instances of the application and two different instances of a same process, the process, executing on the host, and wherein the second portion of the process name is used to distinguish between the two different instances of the same process of the application.
