# US 2014/0195738 A1 · I/O Write Request Handling in a Storage System

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

- Number: US 2014/0195738 A1
- Document ID: US20140195738A1
- Status: Published application
- Kind: A1
- Application number: 14/132,087
- Filed: 2013-12-18
- Published: 2014-07-10
- Earliest claimed: 2013-01-04
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Michael Diederich; Erik Rueger; Rainer Wolafka
- Web page: https://patentgrep.com/patent/US20140195738A1

## CPC

- G06F 12/0888: using selective caching, e.g. bypass
- G06F 3/0601: {Interfaces specially adapted for storage systems}
- G06F 3/0607: {by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device}
- G06F 13/122: {where hardware performs an I/O function other than control of data transfer}
- G06F 13/124: {where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine}
- G06F 13/385: {for adaptation of a particular data processing system to different peripheral devices}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

An improved method for I/O write request handling in a storage system comprising at least one normal storage device and at least one cache device. An I/O write request created by an external device is received. Two parallel threads are created for each write operation. A first thread attempts to execute the write operation using the at least one normal storage device without using the at least one cache device. A second thread monitors the first thread and is triggered to execute the write operation using the at least on cache device if the first thread has not finished the write operation within a given time threshold. In either case, an I/O write completion response is provided to the external device in order to avoid timing out of the write operation. The at least one cache device is freed from data written by the second thread if the first thread completes the write operation after the given time threshold.

## Claims

### Claim 1

A method for I/O write request handling in a storage system comprising at least one normal storage device and at least one cache device, the method comprising:
receiving an I/O write request created by an external device;
creating two parallel threads (T1, T2) for the write operation associated with the I/O write request;
wherein the first thread (T1) attempts to execute a write operation associated with the I/O write request using the at least one normal storage device without using the at least one cache device, and
wherein the second thread (T2) monitors the first thread (T1), and is triggered to execute the write operation associated with the I/O write request using the at least on cache device, if the first thread (T1) has not finished the write operation within a given time threshold (T(CacheActivate));
providing an I/O write completion response to the external device in order to avoid timing out of the write operation; and
freeing the at least one cache device from data written by the second thread (T2), if the first thread (T1) completes the write operation after the given time threshold (T(CacheActivate)).

### Claim 2 (depends on 1)

The method according to claim 1, wherein the I/O write completion response to the external device is provided by the first thread (T1), if the first thread (T1) completes the write operation within the given time threshold (T(CacheActivate)), and wherein the I/O write completion response to the external device is provided by the second thread (T2) if the first thread (T1) fails to complete the write operation within the given time threshold (T(CacheActivate)).

### Claim 3 (depends on 1)

The method according to claim 1, wherein the given time threshold (T(CacheActivate)) depends on a response time (T(CacheResponse)) of the at least one cache device and a timeout threshold (T(Timeout)).

### Claim 4 (depends on 3)

The method according to claim 3, wherein the timeout threshold (T(Timeout)) represents an acceptable response time for external devices accessing the storage system.

### Claim 5 (depends on 3)

The method according to claim 3, wherein the given time threshold (T(CacheActivate)) is chosen in a way, that a sum of the given time threshold (T(CacheActivate)) and the response time (T(CacheResponse)) of the at least one cache device is less than the timeout threshold (T(Timeout)).

### Claim 6 (depends on 5)

The method according to claim 5, wherein the given time threshold (T(CacheActivate)) is dynamic depending on a response time analysis of the storage system and the timeout threshold (T(Timeout)) of the external device currently accessing the storage system.

### Claim at position 7

7-12. (canceled)

### Claim 13

A system comprising:
a processor; and
a memory coupled to the processor, wherein the memory comprise instructions which, when executed by the processor, cause the processor to:
receive an I/O write re nest created by an external device;
create two parallel threads (T1, T2) for the write operation associated with the I/O write request:
wherein the first thread (T1) attempts to execute a write operation associated with the I/O write request using the at least one normal storage device without using the at least one cache device, and
wherein the second thread (T2) monitors the first thread (T1), and is triggered to execute the write operation associated with the I/O write request using the at least on cache device, if the first thread (T1) has not finished the write operation within a given time threshold (T(CacheActivate));
provide an I/O write completion response to the external device in order to avoid timing out of the write operation; and
free the at least one cache device from data written by the second thread (T2), if the first thread (T1) completes the write operation after the given time threshold (T(CacheActivate)).

### Claim 14

A computer program product comprising a computer-readable storage medium having computer-readable program stored therein, wherein the computer-readable program, executed on a computing device, causes the computing device to:
receive an I/O write request created by an external device;
create two parallel threads (T1, T2) for the write operation associated with the I/O write request;
wherein the first thread (T1) attempts to execute a write operation associated with the I/O write request using the at least one normal storage device without using the at least one cache device, and
wherein the second thread (T2) monitors the first thread (T1), and is triggered to execute the write operation associated with the I/O write request using the at least on cache device, if the first thread (T1) has not finished the write operation within a given time threshold (T(CacheActivate));
provide an I/O write completion response to the external device in order to avoid timing out of the write operation; and
free the at east one cache device from data written by the second thread (T2), if the first thread (T1) completes the write operation after the given time threshold (T(CacheActivate)).

### Claim 15 (depends on 14)

The computer program product according to claim 14, wherein the I/O write completion response to the external device is provided by the first thread (T1), if the first thread (T1) completes the write operation within the given time threshold (T(CacheActivate)), and wherein the I/O write completion response to the external device is provided by the second thread (T2) if the first thread (T1) fails to complete the write operation within the given time threshold (T(CacheActivate)).

### Claim 16 (depends on 14)

The computer program product according to claim 14, wherein the given time threshold (T(CacheActivate)) depends on a response time (T(CacheResponse)) of the at least one cache device and a timeout threshold (T(Timeout)).

### Claim 17 (depends on 16)

The computer program product according to claim 16, wherein the timeout threshold (T(Timeout)) represents an acceptable response time for external devices accessing the storage system.

### Claim 18 (depends on 16)

The computer program product according to claim 16, wherein the given time threshold (T(CacheActivate)) is chosen in a way, that a sum of the given time threshold (T(CacheActivate)) and the response time (T(CacheResponse)) of the at least one cache device is less than the timeout threshold (T(Timeout)).

### Claim 19 (depends on 18)

The computer program product according to claim 18, wherein the given time threshold (T(CacheActivate)) is dynamic depending on a response time analysis of the storage system and the timeout threshold T(Timeout)) of the external device currently accessing the storage system.

### Claim 20 (depends on 13)

The system according to claim 13, wherein the I/O write completion response to the external device is provided by the first thread (T1), if the first thread (T1) completes the write operation within the given time threshold (T(CacheActivate)), and wherein the I/O write completion response to the external device is provided by the second thread (T2) if the first thread (T1) fails to complete the write operation within the given time threshold (T(CacheActivate)).

### Claim 21 (depends on 13)

The system according to claim 13, wherein the given time threshold (T(CacheActivate)) depends on a response time (T(CacheResponse)) of the at least one cache device and a timeout threshold (T(Timeout)).

### Claim 22 (depends on 21)

The system according to claim 21, wherein the timeout threshold (T(Timeout)) represents an acceptable response time for external devices accessing the storage system.

### Claim 23 (depends on 21)

The system according to claim 21, wherein the given time threshold (T(CacheActivate)) is chosen in a way, that a sum of the given time threshold (T(CacheActivate)) and the response time (T(CacheResponse)) of the at least one cache device is less than the timeout threshold (T(Timeout)).

### Claim 24 (depends on 23)

The system according to claim 23, wherein the given time threshold (T(CacheActivate)) is dynamic depending on a response time analysis of the storage system and the timeout threshold (T(Timeout)) of the external device currently accessing the storage system.
