IP Library Granted Patent US 8,095,510
Granted Patent B2
US 8,095,510 · App. 12/177,787 · Granted Jan 10, 2012

Data restoration in a storage system using multiple restore points

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,095,510
App. No.
12/177,787
Granted
Jan 10, 2012
Kind
B2
Abstract

A data restoration method comprising determining whether a restoration process is in progress, in response to receiving a read request to read contents from a track on a source volume (ST[i]); reading data from ST[i], in response to determining that the restoration process is not in progress; determining whether the read request was originated from a host, in response to determining the restoration process is in progress; reading the data directly from ST[i], in response to determining the read request was not originated from a host; determining whether ST[i] is designated as remote with respect to the restore operation, in response to determining the read request was originated from a host; reading the data directly from ST[i], in response to determining ST[i] is designated as local; and reading the data from a track on a target volume (TT[i]), in response to determining ST[i] is designated as remote.

Claims (54)

1. A method for restoring data, the method comprising:

restoring first data on a source volume from second data on a target volume,

wherein the second data is a snapshot of the first data taken at time T 1 , such that each track on the target volume corresponds to a track on the source volume,

wherein a track on the target volume includes a local copy of data that existed on a corresponding track on the source volume prior to T 1 , if data stored on the corresponding track on the source volume was modified since T 1 ,

wherein the second data does not contain a comprehensive copy of all of the first data on the source volume,

wherein during the restoring:

a read operation from a track on the source volume results in a read operation from the corresponding track on the target volume, if said read operation from the source volume was originated from a host system, and if the track on the source volume was not written to after the restoring started; and

a read operation from a track on the source volume results in a local read from said track on the source volume, if said read operation from the source volume is a result of a read operation from a track on the target volume corresponding to the track in the source volume.

2. The method of claim 1 , wherein a track on the target volume refers to a corresponding track on the source volume, if data stored on the corresponding track on the source volume has not been modified since T 1 .

3. The method of claim 2 , wherein during the restoring, a track on the source volume refers to a corresponding track on the target volume, if data stored on the track on the source volume has been modified since T 1 .

4. The method of claim 3 , further comprising removing references from tracks on the source volume to tracks on the target volume, in response

to the restoring being completed, wherein the second data does not contain a comprehensive copy of all of the first data on the source volume.

5. The method of claim 1 where restoring comprises writing data to a track after T 1 .

6. A data restoration method comprising:

determining whether a restoration process is in progress, in response to receiving a read request to read contents from a track on a source volume (ST[i]);

reading data directly from ST[i], in response to determining that the restoration process is not in progress;

determining whether the read request was originated from a host, in response to determining that the restoration process is in progress;

reading the data directly from ST[i], in response to determining that the read request was not originated from a host;

determining whether ST[i] is designated as remote or local with respect to the restore operation, in response to determining that the read request was originated from a host;

reading the data directly from ST[i], in response to determining that ST[i] is designated as local; and

reading the data from a track on a target volume (TT[i]), in response to determining that ST[i] is designated as remote.

7. The method of claim 6 , wherein ST[i] is designated as remote when ST[i] refers to TT[i], such that a read request for content stored on ST[i] is redirected to TT[i].

8. The method of claim 7 , wherein the remote or local designation for each track on the source or the target volume is implemented in a data structure.

9. The method of claim 8 , wherein the data structure is a bitmap wherein each bit in the bitmap is associated with a track on the source volume, such that a first value associated with a bit designates the corresponding track as local, and a second value associated with a bit designates the corresponding track as remote.

10. The method of claim 9 , wherein the first value is 0 and the second value is 1, and wherein the data is read directly from ST[i] is in response to determining that the read request was not originated from a host and the restoration process is in progress.

11. A data restoration method comprising:

determining whether data stored on a first volume track (TT[i]) is remote, in response to receiving a write request to write first data to a track on a second volume ST[i];

copying second data stored on ST[i] to TT[i], in response to determining that TT[i] data is remote;

designating TT[i] data as local;

writing the first data to ST[i]; and

designating the first data written to ST[i] as local so that future reads from ST[i] are not redirected to TT[i].

12. A data restoration system comprising:

a processor coupled to one or more computer readable media or memory elements;

a logic unit for determining whether a restoration process is in progress, in response to receiving a read request to read contents from a track on a source volume (ST[i]);

a logic unit for reading data directly from ST[i], in response to determining that the restoration process is not in progress;

a logic unit for determining whether the read request was originated from a host, in response to determining that the restoration process is in progress;

a logic unit for reading the data directly from ST[i], in response to determining that the read request was not originated from a host and that the restoration process is in progress;

a logic unit for determining whether ST[i] is designated as remote or local with respect to the restore operation, in response to determining that the read request was originated from a host;

a logic unit for reading the data directly from ST[i], in response to determining that ST[i] is designated as local; and

reading the data from a track on a target volume (TT[i]), in response to determining that ST[i] is designated as remote.

13. The system of claim 12 , wherein ST[i] is designated as remote when ST[i] refers to TT[i], such that a read request for content stored on ST[i] is redirected to TT[i].

14. The system of claim 13 , wherein the remote or local designation for each track on the source or the target volume is implemented in a data structure.

15. The system of claim 14 , wherein the data structure is a bitmap wherein each bit in the bitmap is associated with a track on the source volume, such that a first value associated with a bit designates the corresponding track as local, and a second value associated with a bit designates the corresponding track as remote.

16. The method of claim 15 , wherein the first value is 0 and the second value is 1.

17. A data restoration system comprising:

a processor coupled to one or more computer readable media or memory elements;

a logic unit for determining whether data stored on a first volume track (TT[i]) is remote, in response to receiving a write request to write first data to a track on a second volume ST[i];

a logic unit for copying second data stored on ST[i] to TT[i], in response to determining that TT[i] data is remote;

a logic unit for designating TT[i] data as local;

a logic unit for writing the first data to ST[i]; and

a logic unit for designating the first data written to ST[i] as local so that future reads from ST[i] are not redirected to TT[i].

18. The system of claim 17 , wherein ST[i] is designated as remote when ST[i] refers to TT[i], such that a read request for content stored on ST[i] is redirected to TT[i].

19. The system of claim 18 , wherein the remote or local designation for each track on the source or the target volume is implemented in a data structure.

20. The system of claim 19 , wherein the data structure is a bitmap wherein each bit in the bitmap is associated with a track on the source volume, such that a first value associated with a bit designates the corresponding track as local, and a second value associated with a bit designates the corresponding track as remote.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 7, 2026
From: HULU, LLC
To: ADEIA MEDIA HOLDINGS INC.
Reel/Frame 075567/0854 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 17, 2016
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: HULU, LLC
Reel/Frame 039071/0323 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 23, 2008
From: ZLOTNICK, AVIAD
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 021320/0641 →