# US 10,481,806 B2 · Method of enhancing the performance of storage system through optimization in compressed volume migration

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

- Number: US 10,481,806 B2
- Document ID: US10481806B2
- Status: Granted
- Kind: B2
- Application number: 15/465,469
- Filed: 2017-03-21
- Published: 2018-09-27
- Granted: 2019-11-19
- Earliest claimed: 2017-03-21
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Sumit Mehrotra; Kushal S. Patel; Sarvesh S. Patel
- Web page: https://patentgrep.com/patent/US10481806B2

## CPC

- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/0617: {in relation to availability}
- G06F 3/0647: {Migration mechanisms}
- G06F 3/0665: {at area level, e.g. provisioning of virtual or logical volumes}
- G06F 3/0689: {Disk arrays, e.g. RAID, JBOD}
- G06F 11/1662: {the resynchronized component or unit being a persistent storage device (re-synchronization of failed mirror storage G06F11/2082; rebuild or reconstruction of parity RAID storage G06F11/1008)}
- G06F 11/20: using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A data migration management apparatus includes a data migration module, a decompression module, and a consolidation module. The data migration module determines a plurality of compressed extents on a source controller are subject to a data migration process to a target controller. The decompression module receives an input/output request at a storage virtualization controller, from a host application, after the data migration process has begun. A response to the input/output request includes decompressing one of the plurality of compressed extents on the source controller not yet migrated. The consolidation module executes the response to the input/output request and writes to the target controller from a single decompressed extent.

## Claims

### Claim 1

A method for managing data migration, comprising:
determining that a plurality of compressed extents, that have been compressed by a first compression algorithm, on a source controller are subject to a data migration process to a target controller, and executing the data migration process, where the data migration process comprises performing sequentially, for each of the plurality of compressed extents:
determining if a current extent of the plurality of compressed extents has already been migrated;
skipping, in response to a determination that the current extent has already been migrated, the current extent;
decompressing, in response to a determination that the current extent has not already been migrated, the current extent to form a decompressed extent;
migrating, in response to the decompressing, the decompressed extent to the target controller;
updating a bitmap of migrated extents to include an indicator that the current extent has been migrated; and
recompressing the decompressed extent utilizing a second compression algorithm;
concurrent with the execution of the data migration process, and in response to receiving an input/output request from a host application for a requested one of the plurality of compressed extents on the source controller, where the requested one has not yet been migrated by the data migration process, inserting an out-of sequence response to the input/output request into the data migration process, where the out-of-sequence response comprises:
decompressing the requested one to form a requested decompressed extent;
migrating the requested decompressed extent to the target controller;
updating the bitmap of migrated extents to include an indicator that the requested one has been migrated;
recompressing the requested one utilizing a second compression algorithm; and
resuming, sequentially, the data migration process.

### Claim 2 (depends on 1)

The method of claim 1, wherein the input/output request comprises a read request, and wherein the executing the response to the input/output request comprises providing a read response to the host application.

### Claim 3 (depends on 1)

The method of claim 1, wherein the input/output request comprises a write request, and wherein the executing the response to the input/output request comprises providing a write response to the target controller and wherein the writing to the target controller and the executing the response to the input/output request occur simultaneously.

### Claim 4 (depends on 1)

The method of claim 1, further comprising determining a predetermined sequence of migration of the plurality of compressed extents on the source controller.

### Claim 5 (depends on 4)

The method of claim 4, further comprising resuming the predetermined sequence of migration of the plurality of compressed extents in response to a determination that the out-of-sequence response has completed.

### Claim 6

A data migration management apparatus, comprising:
a data migration module that determines that a plurality of compressed extents, that have been compressed by a first compression algorithm, on a source controller are subject to a data migration process to a target controller, and executes the data migration process, where the data migration process comprises performing sequentially, for each of the plurality of compressed extents:
determining if a current extent of the plurality of compressed extents has already been migrated;
skipping, in response to a determination that the current extent has already been migrated, the current extent;
decompressing, in response to a determination that the current extent has not already been migrated, the current extent to form a decompressed extent;
migrating, in response to the decompressing, the decompressed extent to the target controller;
updating a bitmap of migrated extents to include an indicator that the current extent has been migrated; and
recompressing the decompressed extent utilizing a second compression algorithm;
a decompression module that, concurrent with the execution of the data migration process, receives an input/output request from a host application for a requested one of the plurality of compressed extents on the source controller not yet migrated by the data migration process; and
a consolidation module that, in response to receiving the input/output request, inserts an out-of-sequence response to the input/output request into the data migration process, where the out-of-sequence response comprises:
decompressing the requested one to form a requested decompressed extent;
migrating the requested decompressed extent to the target controller;
updating the bitmap of migrated extents to include an indicator that the requested one has been migrated;
recompressing the requested one utilizing a second compression algorithm;
resuming, sequentially, the data migration process.

### Claim 7 (depends on 6)

The apparatus of claim 6, wherein the input/output request comprises a read request, and wherein executing the response to the input/output request comprises providing a read response to the host application.

### Claim 8 (depends on 6)

The apparatus of claim 6, wherein the input/output request comprises a write request, and wherein executing the response to the input/output request comprises providing a write response to the target controller.

### Claim 9 (depends on 6)

The apparatus of claim 6, wherein the data migration module determines a predetermined sequence of migration of the plurality of compressed extents on the source controller.

### Claim 10 (depends on 9)

The apparatus of claim 9, wherein the data migration module resumes the predetermined sequence of migration of the plurality of compressed extents in response to a determination that the out-of-sequence response has completed.

### Claim 11

A computer program product for providing data migration management, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions readable/executable by a processor to cause the processor to:
determine that a plurality of compressed extents, that have been compressed by a first compression algorithm, on a source controller are subject to a data migration process to a target controller, and execute the data migration process, where the data migration process comprises performing sequentially, for each of the plurality of compressed extents:
determining if a current extent of the plurality of compressed extents has already been migrated;
skipping, in response to a determination that the current extent has already been migrated, the current extent;
decompressing, in response to a determination that the current extent has not already been migrated, the current extent to form a decompressed extent;
migrating, in response to the decompressing, the decompressed extent to the target controller;
updating a bitmap of migrated extents to include an indicator that the current extent has been migrated; and
recompressing the decompressed extent utilizing a second compression algorithm;
concurrent with the execution of the data migration process, and in response to receiving an input/output request from a host application for a requested one of the plurality of compressed extents on the source controller not yet migrated by the data migration process, inserting an out-of-sequence response to the input/output request into the data migration process, where the out-of-sequence response comprises:
decompressing the requested one to form a requested decompressed extent;
migrating the requested decompressed extent to the target controller;
updating the bitmap of migrated extents to include an indicator that the requested one has been migrated;
recompressing the requested one utilizing a second compression algorithm;
resuming, sequentially, the data migration process.

### Claim 12 (depends on 11)

The computer program product of claim 11, the program instructions readable/executable by the processor to further cause the processor to determine a predetermined sequence of migration of the plurality of compressed extents on the source controller.

### Claim 13 (depends on 12)

The computer program product of claim 12, the program instructions readable/executable by the processor to further cause the processor to resume the predetermined sequence of migration of the plurality of compressed extents in response to a determination that the out-of-sequence response has completed.
