IP Library Granted Patent US 7,203,732
Granted Patent B2
US 7,203,732 · App. 09/873,977 · Granted Apr 10, 2007

Flexible remote data mirroring

Assignee: Miralink 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 7,203,732
App. No.
09/873,977
Granted
Apr 10, 2007
Kind
B2
Abstract

Methods, systems, and configured storage media are provided for flexible data mirroring. In particular, the invention provides local-remote role reversal, implementation of hot standby server status through a “media not ready” signal, several alternate buffer contents and buffering schemes, transactioning, many-to-one mirroring through use of “virtual” remote mirroring units, identification of frequently accessed data without application-specific knowledge but based instead on an application's logged and analyzed behavior, and use of the secondary server in a non-authoritative manner.

Claims (37)

1. A computer storage apparatus, comprising:

means for receiving change data from a source, the change data received in a mirroring unit; and

means for storing a changed logical block number in a buffer in the mirroring unit, the changed logical block number indicating a logical block on the source corresponding to the change data, the means for storing the changed logical block number including a data structure including block checksums corresponding to the change data; and

means for transmitting the block checksums across a journey link to a mirroring unit rather than transmitting change data across the journey link during a resynchronization of the mirroring unit and the computer storage apparatus.

2. A method for data mirroring, comprising:

receiving change data;

reading a block of data from a mirror, wherein a first logical block number corresponding to a first logical block on the mirror storing the block of data is already a part of an existing entry in a queue;

writing the block of data to a second logical block on a temporary storage;

changing the existing entry in the queue to reference a second logical block number corresponding to the second logical block on the temporary storage;

writing the change data to the first logical block on the mirror; and

adding a new entry to the queue, the new entry including the first logical block number.

3. The method of claim 2 , wherein:

receiving the change data further comprises receiving the change data from a host; and

reading the block of data from the mirror further comprises reading the block of data from a full mirror of a storage volume on the host.

4. A computer storage apparatus comprising:

means for receiving change data;

means for reading a block of data from a mirror, wherein a first logical block number corresponding to a first logical block on the mirror storing the block of data is already a part of an existing entry in a queue;

means for writing the block of data to a second logical block on a temporary storage;

means for changing the existing entry in the queue to reference a second logical block number corresponding to the second logical block on the temporary storage;

means for writing the change data to the first logical block on the mirror; and

means for adding a new entry to the queue, the new entry including the first logical block number.

5. A method for data mirroring, comprising:

receiving change data from a source, the change data received in a mirroring unit;

storing a changed logical block number in a buffer in the mirroring unit, the changed logical block number indicating a logical block on the source corresponding to the change data; and

storing change data in the buffer if a remaining storage in the buffer is greater than a threshold;

wherein storing the changed logical block number in the buffer further comprises storing the changed logical block number in the buffer instead of the change data if the remaining storage in the buffer is less than the threshold.

6. The method of claim 5 , wherein receiving the change data from the source further comprises receiving the change data from a local mirror, the local mirror including a mirror of a storage volume of a host.

7. The method of claim 5 , wherein receiving the change data from the source further comprises receiving the change data from a host, the change data corresponding to a data change on a storage volume of the host.

8. The method of claim 5 , wherein storing the changed logical block number in the buffer further comprises storing the changed logical block number in the buffer without storing the change data.

9. A method for data mirroring, comprising:

receiving change data from a source, the change data received in a mirroring unit; and

storing a changed logical block number in a buffer in the mirroring unit, the changed logical block number indicating a logical block on the source corresponding to the change data; wherein:

receiving the change data further comprises receiving the change data corresponding to a change in a block referenced by a changed logical block number entry already in the buffer; and

storing the changed logical block number in the buffer further comprises changing the changed logical block number entry from the changed logical block number to another logical block number, data in the block before the change stored in a location referenced by the other logical block number.

10. The method of claim 9 , wherein receiving the change data from the source further comprises receiving the change data from a local mirror, the local mirror including a mirror of a storage volume of a host.

11. The method of claim 9 , wherein receiving the change data from the source further comprises receiving the change data from a host, the change data corresponding to a data change on a storage volume of the host.

12. The method of claim 9 , wherein storing the changed logical block number in the buffer further comprises storing the changed logical block number in the buffer without storing the change data.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 5, 2018
From: INTELLECTUAL VENTURES II LLC
To: INTELLECTUAL VENTURES ASSETS 78 LLC
Reel/Frame 045994/0273 →
MERGER Recorded Jun 18, 2013
From: SO. PAK PTE., LLC
To: INTELLECTUAL VENTURES II LLC
Reel/Frame 030638/0043 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2011
From: CARD, STUART W.; SCHROEDER, DAVID J.
To: MIRALINK CORPORATION
Reel/Frame 026456/0111 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 14, 2011
From: MIRALINK CORPORATION
To: SO. PAK PTE., LLC
Reel/Frame 026445/0912 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 5, 2006
From: MCCABE, RON
To: MIRALINK CORPORATION
Reel/Frame 018586/0596 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2005
From: CAMP, TRACY
To: MIRALINK CORPORATION
Reel/Frame 016370/0545 →
Continuity (5)
Continuation In Part 0943818400 · Nov 11, 1999
Provisional Application 6026214300 · Jan 16, 2001
Provisional Application 6020946900 · Jun 5, 2000
Provisional Application 6022393400 · Aug 9, 2000
Related Publication 20020016827A1 · Feb 7, 2002