Patent US6397351B1 successfully refreshed from Google Patents.
← Back to Patent Explorer
US6397351B1 Expired / Lapsed US ⏱️ 0.0 years remaining

Method and apparatus for rapid data restoration including on-demand output of sorted logged changes

Assignee: Twitter Inc
•
Filing: 1998-09-28
•
Granted: 2002-05-28
•
Expires: 2018-09-28
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract Data is rapidly restored from a backup copy, and user access of the restored data further expedited by providing on-demand output of logged changes to the backup data. Contents of the backup data are the same as contents of corresponding primary data at a designated time when the backup data was created. If any changes to the primary data are received by the system after creating the backup copy, the changes are stored by the system in a change log. In one embodiment, where the system stores changes in multiple logs, the logs may be consolidated and sorted according to an appropriate schedule. Whenever primary data becomes unavailable, the system starts to apply logged changes to the backup copy right away, using the consolidated and sorted change log. When the system receives user requests to access the primary data, the system determines whether the log contains any changes that have not been applied to the backup data. If the log contains un-applied changes, the storage system provides the requesting user with an output of the most recent logged change from the log. On the other hand, if the log does not contain any un-applied changes, the storage system provides the requesting user with an output of the requested data from the backup data.

Inventors

  • 👤 Donald Lee Miller
  • 👤 Mark Anthony Sovik

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-08 13:53
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/07; G06F11/14; G06F11/1446; G06F11/1448; G06F11/1451; G06F11/1458; G06F11/1469; G06F11/1471

Claims Analysis

Total Claims: 36
Claim 1
Independent Claim 203 words
A method for restoring a backup dataset in a storage system, where contents of the backup dataset comprise contents of a corresponding original dataset upon creation of the backup dataset and where changes to the original dataset received by the system after creating the backup dataset are logged by the system in a change log, the method comprising: in response to unavailability of the original dataset, commencing application of the logged changes to the backup dataset; and during the application of the logged changes to the backup dataset, receiving one or more requests to access one or more subparts of the original dataset, and responsive to each request, for each subpart: determining whether the change log contains any changes not yet applied to the subpart of the backup dataset; and satisfying the request by: if the log contains one or more changes not yet applied to the subpart of the backup dataset, providing an output of the subpart from the log the output comprising a most recent one of the changes not yet applied; if the log does not contain any logged changes not yet applied to the subpart of the backup dataset, providing an output of the subpart from the backup dataset.
Claim 2
Independent Claim 203 words
A method for restoring a backup dataset in a storage system, where contents of the backup dataset comprise contents of a corresponding original dataset upon creation of the backup dataset and where changes to the original dataset received by the system after creating the backup dataset are logged by the system in a change log, the method comprising: in response to unavailability of the original dataset, commencing application of the logged changes to the backup dataset; and during the application of the logged changes to the backup dataset, receiving one or more requests to access one or more subparts of the original dataset, and responsive to each request, for each subpart: determining whether the change log contains any changes not yet applied to the subpart of the backup dataset; and satisfying the request by: if the log contains one or more changes not yet applied to the subpart of the backup dataset, providing an output of the subpart from the log the output comprising a most recent one of the changes not yet applied; if the log does not contain any logged changes not yet applied to the subpart of the backup dataset, providing an output of the subpart from the backup dataset.
Claim 3
Dependent Claim 50 words
The method of claim 1 , the changes being logged into the changed log according to chronological order of receipt, the method further including sorting the logged changes, where the application of the logged changes to the backup dataset comprises updating the backup dataset according to the sorted logged changes.
Claim 4
Dependent Claim 35 words
The method of claim 2 , the sorting of the logged changes comprising sorting the logged changes by subpart and then according to the chronological order of receipt of the changes by the storage system.
Claim 5
Dependent Claim 51 words
The method of claim 1 , the changes being logged into the change log by storage in multiple change logs, the method further including combining the multiple change logs, where the application of the logged changes to the backup dataset comprises updating the backup dataset according to the combined change log.
Claim 6
Dependent Claim 59 words
The method of claim 1 , the changes being logged into the change log according to chronological order of receipt in multiple change logs, the method further including combining and sorting the multiple change logs, where the application of the logged changes to the backup dataset comprises updating the backup dataset according to the combined and sorted change log.
Claim 7
Dependent Claim 33 words
The method of claim 5 , the combining and sorting of the multiple change logs further including storing the combined and sorted multiple change such that each constituent logged change is randomly accessible.
Claim 8
Dependent Claim 21 words
The method of claim 6 , the combined and sorted multiple change logs being stored in key sequence dataset (KSDS) format.
Claim 9
Dependent Claim 34 words
The method of claim 1 , the method further comprising: before applying the logged changes to the backup dataset, performing a second backup operation using the backup dataset to create a second backup dataset.
Claim 10
Dependent Claim 48 words
The method of claim 1 , the operation of providing an output of the subpart from the log comprising applying the changes not yet applied to the subpart of the backup dataset to the backup dataset, and then providing an output of the subpart from the backup dataset.
Claim 11
Dependent Claim 220 words
A signal-bearing medium tangibly embodying a program of machine-readable instructions executable by a digital processing apparatus to perform operations for restoring a backup dataset in a storage system, where contents of the backup dataset comprise contents of a corresponding original dataset upon creation of the backup dataset, and where changes to the original dataset received by the system after creating the backup dataset are logged by the system in a change log, the operations comprising: in response to unavailability of the original dataset, commencing application of the logged changes to the backup dataset; and during the application of the logged changes to the backup dataset, receiving one or more requests to access one or more subparts of the original dataset, and responsive to each request, for each subpart: determining whether the change log contains any changes not yet applied to the subpart of the backup dataset; and satisfying the request by: if the log contains one or more changes not yet applied to the subpart of the backup dataset, providing an output of the subpart from the log, the output comprising a most recent one of the logged changes not yet applied; if the log does not contains change any not yet applied to the subpart of the backup dataset, providing an output of the subpart from the backup dataset.
Claim 12
Dependent Claim 220 words
A signal-bearing medium tangibly embodying a program of machine-readable instructions executable by a digital processing apparatus to perform operations for restoring a backup dataset in a storage system, where contents of the backup dataset comprise contents of a corresponding original dataset upon creation of the backup dataset, and where changes to the original dataset received by the system after creating the backup dataset are logged by the system in a change log, the operations comprising: in response to unavailability of the original dataset, commencing application of the logged changes to the backup dataset; and during the application of the logged changes to the backup dataset, receiving one or more requests to access one or more subparts of the original dataset, and responsive to each request, for each subpart: determining whether the change log contains any changes not yet applied to the subpart of the backup dataset; and satisfying the request by: if the log contains one or more changes not yet applied to the subpart of the backup dataset, providing an output of the subpart from the log, the output comprising a most recent one of the logged changes not yet applied; if the log does not contains change any not yet applied to the subpart of the backup dataset, providing an output of the subpart from the backup dataset.
Claim 13
Dependent Claim 50 words
The medium of claim 10 , the changes being logged into the change log according to chronological order of receipt, the operations further including sorting the logged changes, where the application of the logged changes to the backup dataset comprises updating the backup dataset according to the sorted logged changes.
Claim 14
Dependent Claim 35 words
The medium of claim 11 , the sorting of the logged changes comprising sorting the logged changes by subpart and then according to the chronological order of receipt of the changes by the storage system.
Claim 15
Dependent Claim 51 words
The medium of claim 10 , the changes being logged into the change log by storage in multiple change logs, the operations further including combining the multiple change logs, where the application of the logged changes to the backup dataset comprises updating the backup dataset according to the combined change log.
Claim 16
Dependent Claim 61 words
The medium of claim 10 , the changes being logged into the change log according to chronological order of receipt by storage in multiple change logs, the operations further including combining and sorting the multiple change logs, where the application of the logged changes to the backup dataset comprises updating the backup dataset according to the combined and sorted change log.
Claim 17
Dependent Claim 33 words
The medium of claim 14 , the combining and sorting of the multiple change logs further including storing the combined and sorted multiple change such that each constituent logged change is randomly accessible.
Claim 18
Dependent Claim 22 words
The medium of claim 15 , the combined and sorted multiple change logs being stored in a key sequence dataset (KSDS) format.
Claim 19
Dependent Claim 34 words
The medium of claim 10 , the operations further comprising: before applying the logged changes to the backup dataset, performing a second backup operation using the backup dataset to create a second backup dataset.
Claim 20
Dependent Claim 48 words
The medium of claim 10 , the operation of providing an output of the subpart from the log comprising applying the changes not yet applied to the subpart of the backup dataset to the backup dataset, and then providing an output of the subpart from the backup dataset.
Claim 21
Dependent Claim 213 words
A computer-driven backup system, comprising: a data storage containing a backup dataset having contents that comprise contents of a corresponding original dataset upon creation of the backup dataset, the storage maintaining a change log containing changes to the original dataset received by the system after creating the backup dataset; and a storage controller coupled to the storage and programmed to restore the backup dataset by performing operations comprising: in response to unavailability of the original dataset, commencing application of the logged changes to the backup dataset; and during the application of the logged changes to the backup dataset, receiving one or more requests to access one or more subparts of the original dataset, and responsive to each request, for each subpart: determining whether the change log contains any changes not yet applied to the subpart of the backup dataset; and satisfying the request by: if the log contains one or more changes not yet applied to the subpart of the backup dataset, providing an output of the subpart from the log, the output comprising a most recent one of the logged changes not yet applied; if the log does not contains any changes not yet applied to the subpart of the backup dataset, providing an output of the subpart from the backup dataset.
Claim 22
Dependent Claim 213 words
A computer-driven backup system, comprising: a data storage containing a backup dataset having contents that comprise contents of a corresponding original dataset upon creation of the backup dataset, the storage maintaining a change log containing changes to the original dataset received by the system after creating the backup dataset; and a storage controller coupled to the storage and programmed to restore the backup dataset by performing operations comprising: in response to unavailability of the original dataset, commencing application of the logged changes to the backup dataset; and during the application of the logged changes to the backup dataset, receiving one or more requests to access one or more subparts of the original dataset, and responsive to each request, for each subpart: determining whether the change log contains any changes not yet applied to the subpart of the backup dataset; and satisfying the request by: if the log contains one or more changes not yet applied to the subpart of the backup dataset, providing an output of the subpart from the log, the output comprising a most recent one of the logged changes not yet applied; if the log does not contains any changes not yet applied to the subpart of the backup dataset, providing an output of the subpart from the backup dataset.
Claim 23
Dependent Claim 50 words
The system of claim 19 , the changes being logged into the change log according to chronological order of receipt, the operations further including sorting the logged changes, where the application of the logged changes to the backup dataset comprises updating the backup dataset according to the sorted logged changes.
Claim 24
Dependent Claim 35 words
The system of claim 20 , the sorting of the logged changes comprising sorting the logged changes by subpart and then according to the chronological order of receipt of the changes by the storage system.
Claim 25
Dependent Claim 51 words
The system of claim 19 , the changes being logged into the change log by storage in multiple change logs, the operations further including combining the multiple change logs, where the application of the logged changes to the backup dataset comprises updating the backup dataset according to the combined change log.
Claim 26
Dependent Claim 61 words
The system of claim 19 , the changes being logged into the change log according to chronological order of receipt by storage in multiple change logs, the operations further including combining and sorting the multiple change logs, where the application of the logged changes to the backup dataset comprises updating the backup dataset according to the combined and sorted change log.
Claim 27
Dependent Claim 33 words
The system of claim 23 , the combining and sorting of the multiple change logs further including storing the combined and sorted multiple change such that each constituent logged change is randomly accessible.
Claim 28
Dependent Claim 21 words
The system of claim 24 , the combined and sorted multiple change logs being stored in key sequence dataset (KSDS) format.
Claim 29
Dependent Claim 34 words
The system of claim 19 , the operations further comprising: before applying the logged changes to the backup dataset, performing a second backup operation using the backup dataset to create a second backup dataset.
Claim 30
Dependent Claim 55 words
The system of claim 19 , the storage controller being programmed such that the operation of providing an output of the subpart from the log comprises applying the changes not yet applied to the subpart of the backup dataset to the backup dataset, and then providing an output of the subpart from the backup dataset.
Claim 31
Independent Claim 302 words
A method for restoring a backup dataset in a storage system, where contents of the backup dataset comprise contents of a corresponding original dataset upon creation of the backup dataset and where changes to the original dataset received by the system after creating the backup dataset are logged by the system in a change log, the method comprising: in response to unavailability of the original dataset, commencing application of the logged changes to the backup dataset; and during the application of the logged changes to the backup dataset, receiving one or more requests to access one or more subparts of the original dataset, and responsive to each request, for each subpart: determining whether the change log contains any changes not yet applied to the subpart of the backup dataset; and satisfying the request by: if the log contains one or more changes not yet applied to the subpart of the backup dataset, providing an output of the subpart from the log the output comprising a most recent one of the changes not yet applied; if the log does not contain any logged changes not yet applied to the subpart of the backup dataset, providing an output of the subpart from the backup dataset; responsive to receipt of each change to the original, representing the change in an update map; upon commencing application of the logged changes to the backup dataset, setting an indicator; and responsive to application of a logged change to the backup dataset, removing representation of the logged change from the update map; where the operation of determining of whether the change log contains any changes not yet applied to the subpart of the backup dataset comprises determining whether the indicator is set, and if the indicator is set, determining whether the update map contains a representation of the subpart.
Claim 32
Independent Claim 302 words
A method for restoring a backup dataset in a storage system, where contents of the backup dataset comprise contents of a corresponding original dataset upon creation of the backup dataset and where changes to the original dataset received by the system after creating the backup dataset are logged by the system in a change log, the method comprising: in response to unavailability of the original dataset, commencing application of the logged changes to the backup dataset; and during the application of the logged changes to the backup dataset, receiving one or more requests to access one or more subparts of the original dataset, and responsive to each request, for each subpart: determining whether the change log contains any changes not yet applied to the subpart of the backup dataset; and satisfying the request by: if the log contains one or more changes not yet applied to the subpart of the backup dataset, providing an output of the subpart from the log the output comprising a most recent one of the changes not yet applied; if the log does not contain any logged changes not yet applied to the subpart of the backup dataset, providing an output of the subpart from the backup dataset; responsive to receipt of each change to the original, representing the change in an update map; upon commencing application of the logged changes to the backup dataset, setting an indicator; and responsive to application of a logged change to the backup dataset, removing representation of the logged change from the update map; where the operation of determining of whether the change log contains any changes not yet applied to the subpart of the backup dataset comprises determining whether the indicator is set, and if the indicator is set, determining whether the update map contains a representation of the subpart.
Claim 33
Dependent Claim 320 words
A signal-bearing medium tangibly embodying a program of machine-readable instructions executable by a digital processing apparatus to perform operations for restoring a backup dataset in a storage system, where contents of the backup dataset comprise contents of a corresponding original dataset upon creation of the backup dataset, and where changes to the original dataset received by the system after creating the backup dataset are logged by the system in a change log, the operations comprising: in response to unavailability of the original dataset, commencing application of the logged changes to the backup dataset; and during the application of the logged changes to the backup dataset, receiving one or more requests to access one or more subparts of the original dataset, and responsive to each request, for each subpart: determining whether the change log contains any changes not yet applied to the subpart of the backup dataset; and satisfying the request by: if the log contains one or more changes not yet applied to the subpart of the backup dataset, providing an output of the subpart from the log, the output comprising a most recent one of the logged changes not yet applied; if the log does not contains change any not yet applied to the subpart of the backup dataset, providing an output of the subpart from the backup dataset; responsive to receipt of each change to the original dataset, representing the change in an update map; upon commencing application of the logged changes to the backup dataset, setting an indicator; and responsive to application of a logged change to the backup dataset, removing representation of the logged change from the update map; where the operation of determining of whether the change log contains any changes not yet applied to the subpart of the backup dataset comprises determining whether the indicator is set, and if the indicator is set, determining whether the update map contains a representation of the subpart.
Claim 34
Dependent Claim 320 words
A signal-bearing medium tangibly embodying a program of machine-readable instructions executable by a digital processing apparatus to perform operations for restoring a backup dataset in a storage system, where contents of the backup dataset comprise contents of a corresponding original dataset upon creation of the backup dataset, and where changes to the original dataset received by the system after creating the backup dataset are logged by the system in a change log, the operations comprising: in response to unavailability of the original dataset, commencing application of the logged changes to the backup dataset; and during the application of the logged changes to the backup dataset, receiving one or more requests to access one or more subparts of the original dataset, and responsive to each request, for each subpart: determining whether the change log contains any changes not yet applied to the subpart of the backup dataset; and satisfying the request by: if the log contains one or more changes not yet applied to the subpart of the backup dataset, providing an output of the subpart from the log, the output comprising a most recent one of the logged changes not yet applied; if the log does not contains change any not yet applied to the subpart of the backup dataset, providing an output of the subpart from the backup dataset; responsive to receipt of each change to the original dataset, representing the change in an update map; upon commencing application of the logged changes to the backup dataset, setting an indicator; and responsive to application of a logged change to the backup dataset, removing representation of the logged change from the update map; where the operation of determining of whether the change log contains any changes not yet applied to the subpart of the backup dataset comprises determining whether the indicator is set, and if the indicator is set, determining whether the update map contains a representation of the subpart.
Claim 35
Dependent Claim 316 words
A computer-driven backup system, comprising: a data storage containing a backup dataset having contents that comprise contents of a corresponding original dataset upon creation of the backup dataset, the storage maintaining a change log containing changes to the original dataset received by the system after creating the backup dataset; and a digital data processing apparatus coupled to the storage and programmed to restore the backup dataset by performing operations comprising: in response to unavailability of the original dataset, commencing application of the logged changes to the backup dataset; and during the application of the logged changes to the backup dataset, receiving one or more requests to access one or more subparts of the original dataset, and responsive to each request, for each subpart: determining whether the change log contains any changes not yet applied to the subpart of the backup dataset; and satisfying the request by: if the log contains one or more changes not yet applied to the subpart of the backup dataset, providing an output of the subpart from the log, the output comprising a most recent one of the logged changes not yet applied; if the log does not contains any changes not yet applied to the subpart of the backup dataset, providing an output of the subpart from the backup dataset; responsive to receipt of each change to the original dataset, representing the change in an update map; upon commencing application of the logged changes to the backup dataset, setting an indicator; and responsive to application of a logged change to the backup dataset, removing representation of the logged change from the update map; and where the operation of determining of whether the change log contains any changes not yet applied to the subpart of the backup dataset comprises determining whether the indicator is set, and if the indicator is set, determining whether the update map contains a representation of the subpart.
Claim 36
Dependent Claim 316 words
A computer-driven backup system, comprising: a data storage containing a backup dataset having contents that comprise contents of a corresponding original dataset upon creation of the backup dataset, the storage maintaining a change log containing changes to the original dataset received by the system after creating the backup dataset; and a digital data processing apparatus coupled to the storage and programmed to restore the backup dataset by performing operations comprising: in response to unavailability of the original dataset, commencing application of the logged changes to the backup dataset; and during the application of the logged changes to the backup dataset, receiving one or more requests to access one or more subparts of the original dataset, and responsive to each request, for each subpart: determining whether the change log contains any changes not yet applied to the subpart of the backup dataset; and satisfying the request by: if the log contains one or more changes not yet applied to the subpart of the backup dataset, providing an output of the subpart from the log, the output comprising a most recent one of the logged changes not yet applied; if the log does not contains any changes not yet applied to the subpart of the backup dataset, providing an output of the subpart from the backup dataset; responsive to receipt of each change to the original dataset, representing the change in an update map; upon commencing application of the logged changes to the backup dataset, setting an indicator; and responsive to application of a logged change to the backup dataset, removing representation of the logged change from the update map; and where the operation of determining of whether the change log contains any changes not yet applied to the subpart of the backup dataset comprises determining whether the indicator is set, and if the indicator is set, determining whether the update map contains a representation of the subpart.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2005-05-27 2005-11-26 2006-05-28 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2009-05-27 2009-11-26 2010-05-28 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2013-05-27 2013-11-26 2014-05-28 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag