# US 2014/0195759 A1 · Increasing Efficiency of Block-Level Processes Using Data Relocation Awareness

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

- Number: US 2014/0195759 A1
- Document ID: US20140195759A1
- Status: Published application
- Kind: A1
- Application number: 13/735,151
- Filed: 2013-01-07
- Published: 2014-07-10
- Earliest claimed: 2013-01-07
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Alex Gantman; Eli Shahaf; Eran Raichstein; Asaf Yeger
- Web page: https://patentgrep.com/patent/US20140195759A1

## CPC

- G06F 3/061: {Improving I/O performance}
- G06F 3/0608: {Saving storage space on storage systems}
- G06F 3/0641: {De-duplication techniques}
- 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: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A mechanism is provided for increasing the efficiency of block-level processes. Responsive to detecting an I/O write to a storage volume, a determination is made as to whether the I/O write matches one or more suspicious I/O reads in a plurality of suspicious I/O reads previously recorded in a memory. Responsive to the I/O write matching one or more suspicious I/O reads in the plurality of suspicious I/O reads, an identification is made that there is a data relocation associated with the sector associated with the I/O write. A data relocation application is informed of the data relocation of the sector associated with the one or more suspicious I/O reads associated with the sector indicated by the I/O write. Each sector associated with the one or more suspicious I/O reads is then released in a file system for reuse.

## Claims

### Claim 1

A method, in a data processing system, for increasing the efficiency of block-level processes, the method comprising:
responsive to detecting an I/O write to a storage volume, determining whether the I/O write matches one or more suspicious I/O reads in a plurality of suspicious I/O reads previously recorded in a memory;
responsive to the I/O write matching one or more suspicious I/O reads in the plurality of suspicious I/O reads, identifying that there is a data relocation associated with the sector associated with the I/O write;
informing a data relocation application of the data relocation of the sector associated with the one or more suspicious I/O reads associated with the sector indicated by the I/O write; and
releasing each sector associated with the one or more suspicious I/O reads in a file system for reuse.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
continuing with the I/O write operation.

### Claim 3 (depends on 1)

The method of claim 1, wherein the determination of whether the I/O write matches the one or more suspicious I/O reads, further comprises:
determining whether a sector associated with the I/O write matches a sector associated with the one or more suspicious I/O reads;
responsive to the sector associated with the I/O write matching the sector associated with the one or more suspicious I/O reads forming a first subset of suspicious I/O reads, determining whether the file name associated with the I/O write matches a file name of one or more suspicious I/O reads in the first subset of suspicious I/O reads;
responsive to the file name associated with the I/O write matching the file name of one or more suspicious I/O reads in the first subset of suspicious I/O reads forming a second subset of suspicious I/O reads, determining whether an access time associated with the I/O write matches a file access time of one or more suspicious I/O reads in the second subset of suspicious I/O reads; and
responsive to the access time associated with the I/O write matching the file access time of one or more suspicious I/O reads in the second subset of suspicious L/O reads forming a third subset of suspicious I/O reads, identifying that there is a data relocation associated with the sector associated with the I/O write.

### Claim 4 (depends on 3)

The method of claim 3, further comprising:
responsive to the sector associated with the I/O write failing to match the sector associated with the one or more suspicious I/O reads forming a first subset of suspicious I/O reads, continuing with the I/O write operation;
responsive to the file name associated with the I/O write failing to match the file name of one or more suspicious I/O reads in the first subset of suspicious L/O reads forming a second subset of suspicious I/O reads, continuing with the I/O write operation; and
responsive to the access time associated with the I/O write failing to match the file access time of one or more suspicious I/O reads in the second subset of suspicious I/O reads forming a third subset of suspicious I/O reads, continuing with the I/O write operation.

### Claim 5 (depends on 1)

The method of claim 1, wherein the plurality of suspicious I/O reads are identified by the method comprising:
responsive to determining that a data relocation process has been initiated, determining whether an I/O read has been detected;
responsive to an I/O read being detected, querying the file system to determine whether there is an open handle on a sector associated with the L/O read; and
responsive to determining that there is no open handle on the sector associated with the I/O read, recording the I/O read along with an offset in the storage volume, a file name of a file read by the I/O read, and a file last access associated with the I/O read.

### Claim 6 (depends on 5)

The method of claim 5, further comprising:
responsive to determining that there is the open handle on the sector associated with the I/O read, identifying the I/O read as a non-suspicious I/O read.

### Claim 7 (depends on 5)

The method of claim 5, wherein the recording of the I/O read, the offset in the storage volume, the file name of the file read by the I/O read, and the file last access associated with the I/O read is performed upon completion of the I/O read.

### Claim 8

A computer program product comprising a computer readable storage medium having a computer readable program stored therein, wherein the computer readable program, when executed on a computing device, causes the computing device to:
responsive to detecting an I/O write to a storage volume, determine whether the I/O write matches one or more suspicious I/O reads in a plurality of suspicious I/O reads previously recorded in a memory;
responsive to the I/O write matching one or more suspicious I/O reads in the plurality of suspicious I/O reads, identify that there is a data relocation associated with the sector associated with the I/O write;
inform a data relocation application of the data relocation of the sector associated with the one or more suspicious I/O reads associated with the sector indicated by the I/O write; and
release each sector associated with the one or more suspicious I/O reads in a file system for reuse.

### Claim 9 (depends on 8)

The computer program product of claim 8, wherein the computer readable program further causes the computing device to:
continue with the I/O write operation.

### Claim 10 (depends on 8)

The computer program product of claim 8, wherein the computer readable program to determine whether the I/O write matches the one or more suspicious I/O reads further causes the computing device to:
determine whether a sector associated with the I/O write matches a sector associated with the one or more suspicious I/O reads;
responsive to the sector associated with the I/O write matching the sector associated with the one or more suspicious I/O reads forming a first subset of suspicious I/O reads, determine whether the file name associated with the I/O write matches a file name of one or more suspicious I/O reads in the first subset of suspicious I/O reads;
responsive to the file name associated with the I/O write matching the file name of one or more suspicious I/O reads in the first subset of suspicious I/O reads forming a second subset of suspicious I/O reads, determine whether an access time associated with the I/O write matches a file access time of one or more suspicious I/O reads in the second subset of suspicious I/O reads; and
responsive to the access time associated with the I/O write matching the file access time of one or more suspicious I/O reads in the second subset of suspicious I/O reads forming a third subset of suspicious I/O reads, identify that there is a data relocation associated with the sector associated with the I/O write.

### Claim 11 (depends on 10)

The computer program product of claim 10, wherein the computer readable program further causes the computing device to:
responsive to the sector associated with the I/O write failing to match the sector associated with the one or more suspicious I/O reads forming a first subset of suspicious I/O reads, continue with the I/O write operation;
responsive to the file name associated with the I/O write failing to match the file name of one or more suspicious I/O reads in the first subset of suspicious I/O reads forming a second subset of suspicious I/O reads, continue with the I/O write operation; and
responsive to the access time associated with the I/O write failing to match the file access time of one or more suspicious I/O reads in the second subset of suspicious I/O reads forming a third subset of suspicious I/O reads, continue with the I/O write operation.

### Claim 12 (depends on 8)

The computer program product of claim 8, wherein the plurality of suspicious I/O reads are identified by the computer readable program further causing the computing device to:
responsive to determining that a data relocation process has been initiated, determining whether an I/O read has been detected;
responsive to an I/O read being detected, querying the file system to determine whether there is an open handle on a sector associated with the I/O read; and
responsive to determining that there is no open handle on the sector associated with the I/O read, recording the I/O read along with an offset in the storage volume, a file name of a file read by the I/O read, and a file last access associated with the I/O read.

### Claim 13 (depends on 12)

The computer program product of claim 12, wherein the computer readable program further causes the computing device to:
responsive to determining that there is the open handle on the sector associated with the I/O read, identify the I/O read as a non-suspicious I/O read.

### Claim 14 (depends on 12)

The computer program product of claim 12, wherein the recording of the I/O read, the offset in the storage volume, the file name of the file read by the I/O read, and the file last access associated with the I/O read is performed upon completion of the I/O read.

### Claim 15

An apparatus, comprising:
a processor; and
a memory coupled to the processor, wherein the memory comprises instructions which, when executed by the processor, cause the processor to:
responsive to detecting an I/O write to a storage volume, determine whether the I/O write matches one or more suspicious L/O reads in a plurality of suspicious I/O reads previously recorded in a memory;
responsive to the I/O write matching one or more suspicious I/O reads in the plurality of suspicious I/O reads, identify that there is a data relocation associated with the sector associated with the I/O write;
inform a data relocation application of the data relocation of the sector associated with the one or more suspicious I/O reads associated with the sector indicated by the I/O write; and
release each sector associated with the one or more suspicious I/O reads in a file system for reuse.

### Claim 16 (depends on 15)

The apparatus of claim 15, wherein the instructions to determine whether the I/O write matches the one or more suspicious I/O reads further cause the processor to:
determine whether a sector associated with the I/O write matches a sector associated with the one or more suspicious I/O reads;
responsive to the sector associated with the I/O write matching the sector associated with the one or more suspicious I/O reads forming a first subset of suspicious I/O reads, determine whether the file name associated with the I/O write matches a file name of one or more suspicious I/O reads in the first subset of suspicious I/O reads;
responsive to the file name associated with the I/O write matching the file name of one or more suspicious I/O reads in the first subset of suspicious I/O reads forming a second subset of suspicious I/O reads, determine whether an access time associated with the I/O write matches a file access time of one or more suspicious I/O reads in the second subset of suspicious I/O reads; and
responsive to the access time associated with the I/O write matching the file access time of one or more suspicious I/O reads in the second subset of suspicious I/O reads forming a third subset of suspicious I/O reads, identify that there is a data relocation associated with the sector associated with the I/O write.

### Claim 17 (depends on 16)

The apparatus of claim 16, wherein the instructions further cause the processor to:
responsive to the sector associated with the I/O write failing to match the sector associated with the one or more suspicious I/O reads forming a first subset of suspicious I/O reads, continue with the I/O write operation;
responsive to the file name associated with the I/O write failing to match the file name of one or more suspicious I/O reads in the first subset of suspicious I/O reads forming a second subset of suspicious I/O reads, continue with the I/O write operation; and
responsive to the access time associated with the I/O write failing to match the file access time of one or more suspicious I/O reads in the second subset of suspicious I/O reads forming a third subset of suspicious I/O reads, continue with the I/O write operation.

### Claim 18 (depends on 15)

The apparatus of claim 15, wherein the plurality of suspicious I/O reads are identified by the instructions further causing the processor to:
responsive to determining that a data relocation process has been initiated, determining whether an I/O read has been detected;
responsive to an I/O read being detected, querying the file system to determine whether there is an open handle on a sector associated with the I/O read; and
responsive to determining that there is no open handle on the sector associated with the I/O read, recording the I/O read along with an offset in the storage volume, a file name of a file read by the I/O read, and a file last access associated with the I/O read.

### Claim 19 (depends on 18)

The apparatus of claim 18, wherein the instructions further cause the processor to:
responsive to determining that there is the open handle on the sector associated with the I/O read, identify the I/O read as a non-suspicious I/O read.

### Claim 20 (depends on 18)

The apparatus of claim 18, wherein the recording of the I/O read, the offset in the storage volume, the file name of the file read by the I/O read, and the file last access associated with the I/O read is performed upon completion of the I/O read.
