# US 7,613,785 B2 · Decreased response time for peer-to-peer remote copy write operation

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

- Number: US 7,613,785 B2
- Document ID: US7613785B2
- Status: Granted
- Kind: B2
- Application number: 10/719,229
- Filed: 2003-11-20
- Published: 2005-05-26
- Granted: 2009-11-03
- Earliest claimed: 2003-11-20
- Assignees: International Business Machines Corporation
- Inventors: James C. Chen; Minh-Ngoc L. Huynh; Matthew J. Kalos; Chung M. Fung
- Web page: https://patentgrep.com/patent/US7613785B2

## CPC

- G06F 3/065: {Replication mechanisms}
- G06F 3/0611: {in relation to response time}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 3/0689: {Disk arrays, e.g. RAID, JBOD}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Methods, system and computer program product are provided to improve the efficiency of data transfers in a PPRC environment. Any or all of three features may be implemented, each of which reduces the number of round trips required for the exchange of handshaking, data and control information. A first feature includes disabling the “transfer ready” acknowledgment which normally occurs between a primary storage controller and a secondary storage controller. A second feature includes pre-allocating payload and data buffers in the secondary storage controller. A third feature includes packaging write control information with a write command in an extended command descriptor block (CDB). Such a step eliminated the need for a separate transmission of the write control information. The CDB is transmitted along with a data block from the primary storage controller to the secondary storage controller and placed in the respective, pre-allocated buffers. Data may also be pipelined to the secondary. By decreasing the response time for data transfers, the distance separating the primary and secondary storage controllers may be increased.

## Claims

### Claim 1

A method for transferring data in a PPRC environment, comprising:
pre-allocating at least a first payload buffer in a secondary storage control unit;
pre-allocating at least a first data buffer in the secondary storage control unit;
issuing a first write command for the transfer of a first block of data from a primary storage control unit to the secondary storage control unit;
packaging write control information with a fibre channel protocol (FCP) command within a first extended command descriptor block (CDB);
transmitting the first extended CDB from the primary storage control unit to the secondary storage control unit; and
transmitting the first block of data from the primary storage control unit to the secondary storage control unit.

### Claim 2 (depends on 1)

The method of claim 1, further comprising disabling a “transfer ready”command prior to issuing the first write command.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
receiving the first extended CDB in a first payload buffer;
receiving the first block of data in a first data buffer;
completing a first write operation; and
transmitting a first status indicator from the secondary storage control unit to the primary storage control unit acknowledging completion of the first write operation.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
issuing a second write command for the transfer of a second block of data from the primary storage control unit to the secondary storage control unit;
packaging write control information with an FCP command within a second extended CDB;
transmitting the second extended CDB from the primary storage control unit to the secondary storage control unit; and
transmitting the second block of data from the primary storage control unit to the secondary storage control unit.

### Claim 5 (depends on 4)

The method of claim 4, further comprising:
receiving the second extended CDB in a second payload buffer;
receiving the second block of data in a second data buffer;
completing a second write operation; and
transmitting a second status indicator from the secondary storage control unit to the primary storage control unit acknowledging completion of the second write operation.

### Claim 6 (depends on 5)

The method of claim 5, wherein the second payload buffer and the second data buffer are pre-allocated.

### Claim 7 (depends on 5)

The method of claim 5, wherein the second payload buffer and the second data buffer are allocated following receipt of the first extended CDB and the first block of data by the secondary storage control unit.

### Claim 8 (depends on 4)

The method of claim 4, wherein the steps of transmitting the second extended CDB and transmitting the second block of data begin before the first status indicator is received by the primary storage control unit.

### Claim 9 (depends on 1)

The method of claim 1, further comprising:
transferring the first block of data to a storage drive; and
releasing the first payload buffer and the first data buffer, whereby a subsequent extended CDB and block of data are receivable in the first payload buffer and first data buffer, respectively.

### Claim 10

A peer-to-peer remote copy storage system, comprising:
a primary storage control unit;
a secondary storage control unit;
a first pre-allocated payload buffer in the secondary storage control unit;
a first pre-allocated data buffer in the secondary storage control unit;
means for issuing a first write command for the transfer of a first block of data from the primary storage control unit to the secondary storage control unit;
means for packaging write control information with a fibre channel protocol (FCP) command within a first extended command descriptor block (CDB);
means for transmitting the first extended CDB from the primary storage control unit to the secondary storage control unit; and
means for transmitting the first block of data from the primary storage control unit to the secondary storage control unit.

### Claim 11 (depends on 10)

The system of claim 10, further comprising means for disabling a “transfer ready ” command prior to issuing the first write command.

### Claim 12 (depends on 10)

The system of claim 10, further comprising:
means for receiving the first extended CDB in the first payload buffer;
means for receiving the first block of data in the first data buffer;
means for completing a first write operation; and
means for transmitting a first status indicator from the secondary storage control unit to the primary storage control unit acknowledging completion of the first write operation.

### Claim 13 (depends on 10)

The system of claim 10, wherein:
the means for issuing the first write command includes means for issuing a second write command for the transfer of a second block of data from the primary storage control unit to the secondary storage control unit;
the means for packaging write control information includes means for packaging write control information with an FOP command within a second extended CDB;
the means for transmitting the first extended CDB includes means for transmitting the second extended CDB from the primary storage control unit to the secondary storage control unit; and
the means for transmitting the first block of data includes means for transmitting the second block of data from the primary storage control unit to the secondary storage control unit.

### Claim 14 (depends on 13)

The system of claim 13, further comprising:
a second payload buffer for receiving the second extended CDB; and
a second data buffer for receiving the second block of data.

### Claim 15 (depends on 14)

The system of claim 14, wherein:
the means for completing the first write operation includes means for completing a second write operation; and
the means for transmitting a second status indicator includes means for transmitting a second status indicator from the secondary storage control unit to the primary storage control unit acknowledging completion of the second write operation.

### Claim 16 (depends on 15)

The system of claim 15, wherein the second payload buffer and the second data buffer are pre-allocated.

### Claim 17 (depends on 15)

The system of claim 15, wherein the second payload buffer and the second data buffer are allocated following receipt of the first extended CDB and the first block of data by the secondary storage control unit.

### Claim 18 (depends on 13)

The system of claim 13, wherein transmitting the second extended CDB and transmitting the second block of data begin before the first status indicator is received by the primary storage control unit.

### Claim 19

A peer-to-peer remote copy primary storage control unit, comprising:
means for directing that a first payload buffer be pre-allocated in a secondary storage control unit;
means for directing that a first data buffer be pre-allocated in the secondary storage control unit;
means for issuing a first write command for the transfer of a first block of data to the secondary storage control unit;
means for packaging write control information with a fibre channel protocol (FCP) command within a first extended command descriptor block (CDB);
means for transmitting the first extended CDB to the first payload buffer; and
means for transmitting the first block of data to the first data buffer.

### Claim 20 (depends on 19)

The primary storage control unit of claim 19, further comprising means for disabling a “transfer ready” command prior to issuing the first write command.

### Claim 21 (depends on 19)

The primary storage control unit of claim 19, further comprising:
means for receiving a first status indicator from the secondary storage control unit acknowledging completion of a first write operation.

### Claim 22 (depends on 19)

The primary storage control unit of claim 19, wherein:
the means for issuing the first write command includes means for issuing a second write command for the transfer of a second block of data to the secondary storage control unit;
the means for packaging write control information includes means for packaging write control information with an FOP command within a second extended CDB;
the means for transmitting the first extended CDB includes means for transmitting the second extended CDB to the secondary storage control unit; and
the means for transmitting the first block of data includes means for transmitting the second block of data to the secondary storage control unit.

### Claim 23 (depends on 22)

The primary storage control unit of claim 22, wherein:
the means for completing the first write operation includes means for completing a second write operation; and
the means for transmitting a second status indicator includes means for transmitting a second status indicator from the secondary storage control unit to the primary storage control unit acknowledging completion of the second write operation.

### Claim 24 (depends on 23)

The primary storage control unit of claim 23, wherein the second payload buffer and the second data buffer are pre-allocated.

### Claim 25 (depends on 23)

The primary storage control unit of claim 23, wherein the second payload buffer and the second data buffer are allocated following receipt of the first extended CDB and the first block of data by the secondary storage control unit.

### Claim 26 (depends on 22)

The primary storage control unit of claim 22, wherein transmitting the second extended CDB and transmitting the second block of data begin before the first status indicator is received by the primary storage control unit.

### Claim 27

A computer program product of a computer readable medium having computer-readable code embodied therein for transferring data in a PPRC environment, the computer-readable code comprising instructions for:
pre-allocating at least a first payload buffer in a secondary storage control unit;
pre-allocating at least a first data buffer in the secondary storage control unit;
issuing a first write command for the transfer of a first block of data from a primary storage control unit to the secondary storage control unit;
packaging write control information with a fibre channel protocol (FCP) command within a first extended command descriptor block (CDB);
transmitting the first extended CDB from the primary storage control unit to the secondary storage control unit; and
transmitting the first block of data from the primary storage control unit to the secondary storage control unit.

### Claim 28 (depends on 27)

The computer program product of claim 27, further comprising instructions for disabling a “transfer ready” command prior to issuing the first write command.

### Claim 29 (depends on 27)

The computer program product of claim 27, further comprising instructions for:
receiving the first extended CDB in a first payload buffer;
receiving the first block of data in a first data buffer;
completing a first write operation; and
transmitting a first status indicator from the secondary storage control unit to the primary storage control unit acknowledging completion of the first write operation.

### Claim 30 (depends on 27)

The computer program product of claim 27, further comprising instructions for:
issuing a second write command for the transfer of a second block of data from the primary storage control unit to the secondary storage control unit;
packaging write control information with an FCP command within a second extended CDB;
transmitting the second extended CDB from the primary storage control unit to the secondary storage control unit; and
transmitting the second block of data from the primary storage control unit to the secondary storage control unit.

### Claim 31 (depends on 30)

The computer program product of claim 30, further comprising instructions for:
receiving the second extended CDB in a second payload buffer;
receiving the second block of data in a second data buffer;
completing a second write operation; and
transmitting a second status indicator from the secondary storage control unit to the primary storage control unit acknowledging completion of the second write operation.

### Claim 32 (depends on 31)

The computer program product of claim 31, wherein the second payload buffer and the second data buffer are pre-allocated.

### Claim 33 (depends on 31)

The computer program product of claim 31, wherein the second payload buffer and the second data buffer are allocated following receipt of the first extended CDB and the first block of data by the secondary storage control unit.

### Claim 34 (depends on 30)

The computer program product of claim 30, wherein transmitting the second extended CDB and transmitting the second block of data begin before the first status indicator is received by the primary storage control unit.

### Claim 35 (depends on 27)

The computer program product of claim 27, further comprising instructions for:
transferring the first block of data to a storage drive; and
releasing the first payload buffer and the first data buffer, whereby a subsequent extended CDB and block of data are receivable in the first payload buffer and first data buffer, respectively.
