IP Library › Granted Patent US 8,566,281
Granted Patent B2
US 8,566,281 · App. 13/139,462 · Granted Oct 22, 2013

Method for implementing multi-array consistency groups using a write queuing mechanism

Inventor: Martin Jess (Erie, CO)
Assignee: LSI Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,566,281
App. No.
13/139,462
Granted
Oct 22, 2013
Kind
B2
Abstract

A method includes applying a write Input/Output (I/O) queue interval to a Logical Unit (LU) member of a consistency group (CG). The method also includes marking each write I/O with a timestamp and suspending I/O from the participating storage array to the LU member of the CG upon the participating storage array receiving a snapshot request from a master storage array. The method further includes determining whether the snapshot request timestamp is within the write I/O queue interval of the participating storage array.

Claims (55)

1. A method for implementing multi-array consistency groups using a write queuing mechanism, comprising:

applying a write Input/Output (I/O) queue interval to a Logical Unit (LU) member of a consistency group (CG), wherein a storage array where the LU member of the CG resides being a participating storage array, wherein the applying includes queuing write I/Os in a First-In-First-Out (FIFO) order;

marking each write I/O with a timestamp;

suspending I/O from the participating storage array to the LU member of the CG upon the participating storage array receiving a snapshot request from a master storage array, the snapshot request having a snapshot request timestamp;

determining a roundtrip latency between at least two participating storage arrays of the CG through an exchange of a pair of test messages;

determining a minimum time interval of the write I/O queue interval using the roundtrip latency; and

determining whether the snapshot request timestamp is within the write I/O queue interval of the participating storage array based at least on the minimum time interval of the write I/O queue interval, wherein when the snapshot request timestamp is determined to be within the write I/O queue interval of the participating storage array, the participating storage array performs at least one of:

(a) completing each write I/O older than the snapshot request timestamp,

(b) creating a local snapshot for the LU member of the CG, or

(c) resuming I/O to the LU member of the CG.

2. The method of claim 1 , wherein the marking each write I/O with the timestamp includes:

synchronizing each participating storage array of the CG according to a distributed clock synchronization mechanism.

3. The method of claim 2 , where the distributed clock synchronization mechanism is a network time protocol (NTP).

4. The method of claim 1 , wherein the applying the write I/O queue interval to the LU member of the CG includes:

representing the write I/O queue interval as a time interval from a current time to a timestamp of an oldest write I/O in the queue.

5. A method for implementing multi-array consistency groups using a write queuing mechanism, comprising:

initiating a consistency group (CG) snapshot on a controller of a CG storage array, wherein the CG storage array with the controller associated with the initiated CG snapshot being defined as a master, and a storage array where a Logical Unit (LU) member of the CG resides being a participating storage array;

recording a timestamp for the initiated CG snapshot;

sending a PREPARE request from the master to each controller of each participating storage array, each participating storage array to receive the PREPARE request being defined as a slave;

determining a roundtrip latency between at least two participating storage arrays through an exchange of a pair of test messages;

suspending I/O to the LU member of a particular slave, and determining whether the timestamp fits within a write Input/Output (I/O) queue interval of the particular slave, when the particular slave receives the PREPARE request,

wherein the write I/O queue interval represents write I/O transactions queued in a First-In-First-Out (FIFO) order;

flushing each write I/O in the write I/O queue interval that is older than the timestamp when the timestamp fits in the write I/O queue interval, wherein when the timestamp does not fit in the write I/O queue interval, the slave logs an ABORT message to a persistent memory of the particular slave and the particular slave sends the ABORT message to the master;

performing, by the particular slave, at least one of:

(a) creating the initiated snapshot of the LU member,

(b) resuming the suspended I/O,

(c) logging a PREPARED state to the persistent memory of the particular slave, or

(d) sending a PREPARE-ACK message to the master; and

issuing a ROLLBACK message from the master to each slave when the master receives the ABORT message from the particular slave,

wherein when each slave receives the ROLLBACK message from the master, each slave performs at least one of:

(a) logging a new state to a persistent memory of each slave,

(b) releasing a lock held on behalf of a global transaction,

(c) deleting any snapshot of the corresponding LU member, or

(d) sending a ROLLBACK-ACK message to the master.

6. The method of claim 5 , further including issuing a COMMIT request from the master to each slave when the master receives the PREPARE-ACK message from each slave.

7. The method of claim of claim 6 , wherein when each slave receives the COMMIT request from the master, each slave performs at least one of:

(a) logging the new state to the persistent memory of each slave,

(b) releasing a the lock held on behalf of the global transaction,

(c) deleting the snapshot of the corresponding LU member, or

(d) sending a COMMIT-ACK message to the master.

8. The method of claim 5 , further including initiating a timer, the timer initiated upon the step of sending the PREPARE request from the master to each controller of each participating storage array.

9. The method of claim 8 , further including sending a first ROLLBACK message to each slave when the timer expires prior to the master receiving a response from each slave.

10. The method of claim 9 , further including sending a second ROLLBACK message to a slave when the slave sends a PREPARE-ACK message after the first ROLLBACK message was sent.

11. A non-transitory computer-readable storage medium having computer-executable instructions for performing a method of implementing multi-array consistency groups using a write queuing mechanism, said method comprising:

applying a write Input/Output (I/O) queue interval to a Logical Unit (LU) member of a consistency group (CG), wherein a storage array where the LU member of the CG resides being a participating storage array, wherein the applying includes queuing write I/Os in a First-In-First-Out (FIFO) order;

marking each write I/O with a timestamp;

suspending I/O from the participating storage array to the LU member of the CG upon the participating storage array receiving a snapshot request from a master storage array, the snapshot request having a snapshot request timestamp;

determining a roundtrip latency between at least two participating storage arrays of the CG through an exchange of a pair of test messages;

determining a minimum time interval of the write I/O queue interval using the roundtrip latency; and

determining whether the snapshot request timestamp is within the write I/O queue interval of the participating storage array based at least on the minimum time interval of the write I/O queue interval, wherein when the snapshot request timestamp is determined to be within the write I/O queue interval of the participating storage array, the participating storage array performs at least one of:

(a) completing each write I/O older than the snapshot request timestamp,

(b) creating a local snapshot for the LU member of the CG, or

(c) resuming I/O to the LU member of the CG.

12. The non-transitory computer-readable storage medium of claim 11 , wherein the applying the write I/O queue interval to the LU member of the CG includes:

representing the write I/O queue interval as a time interval from a current time to a timestamp of an oldest write I/O in the queue.

Assignments (9)
CORRECTIVE ASSIGNMENT TO CORRECT THE ERROR IN RECORDING THE MERGER IN THE INCORRECT US PATENT NO. 8,876,094 PREVIOUSLY RECORDED ON REEL 047351 FRAME 0384. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 8, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 049248/0558 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE OF THE MERGER PREVIOUSLY RECORDED AT REEL: 047230 FRAME: 0910. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Oct 29, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047351/0384 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047230/0910 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041710/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037808/0001 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031) Recorded Feb 2, 2016
From: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
To: LSI CORPORATION; AGERE SYSTEMS LLC
Reel/Frame 037684/0039 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 3, 2015
From: LSI CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 035390/0388 →
PATENT SECURITY AGREEMENT Recorded May 8, 2014
From: LSI CORPORATION; AGERE SYSTEMS LLC
To: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
Reel/Frame 032856/0031 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 13, 2011
From: JESS, MARTIN
To: LSI CORPORATION
Reel/Frame 026434/0322 →
Continuity (2)
Provisional Application 61203023 · Dec 18, 2008
Related Publication 20110246423A1 · Oct 6, 2011