System, method and computer program product for managing data
First Claim
1. A computer-implemented method for managing data, comprising the steps of:
- under control of instructions residing in a computer-readable storage medium performing respective data update operations comprising writing updated data into a storage unit, the storage unit comprising a continuous data protection system (CDP) for maintaining multiple versions of the updated data;
establishing first entries in a first data structure that describe the update operations, the first entries comprising a timestamp that indicates an update time of the update operations, and being indexed by a key comprising a logical block address;
establishing second entries in a second data structure comprising a table, each second entry having a start time, an end time, a revert-to time, and a time interval that is defined by the start time and end time, the second entries including parent entries and child entries, wherein for each of the child entries, the revert-to time thereof falls within the time interval of its parent entry, each second entry corresponding to a set of update operations occurring during the time interval thereof, the second entries including an initial parent entry;
defining an initial sequence of update operations that defines a first evolution of the updated data over time, wherein the update time thereof occurs during the time interval of the initial parent entry;
responsively to a reversion request to update the initial sequence beginning at a given point in time, adding an initial child entry to the table, wherein the revert-to time thereof is set at the given point and falls within the time interval of the initial parent entry;
reverting the initial sequence to a reverted sequence of update operations by recursively scanning the first data structure, wherein update times in the reverted sequence occur during a first reverted time interval beginning at the start time of the initial parent entry and ending at the revert-to time of the initial child entry or during a second reverted time interval beginning at the start time of the initial child entry;
defining a relevancy window of time wherein it is possible to establish a new child entry in the table, wherein the revert-to time thereof falls in the relevancy window;
determining data accessibility in the storage unit by identifying first update operations, wherein update times thereof fall within the relevancy window and identifying second update operations in the reverted sequence; and
designating the undated data of the first update operations and the second update operations as accessible data;
deleting the undated data other than the accessible data from the storage unit; and
accessing updated data in the reverted sequence in the storage unit.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and computer readable product for managing data, the method includes: providing a first data structure representative of insert or update operations to entries identified by keys and providing a second data structure representative of branch creation operations wherein the second data structure stores branch identifiers and branch timing information; receiving a request to lookup a version of data at a read timestamp; scanning the first and the second data structures to locate that version of data; and receiving a request to create a branch that starts by a version of data at a requested timestamp and updating the second data structure accordingly.
29 Citations
21 Claims
-
1. A computer-implemented method for managing data, comprising the steps of:
-
under control of instructions residing in a computer-readable storage medium performing respective data update operations comprising writing updated data into a storage unit, the storage unit comprising a continuous data protection system (CDP) for maintaining multiple versions of the updated data; establishing first entries in a first data structure that describe the update operations, the first entries comprising a timestamp that indicates an update time of the update operations, and being indexed by a key comprising a logical block address; establishing second entries in a second data structure comprising a table, each second entry having a start time, an end time, a revert-to time, and a time interval that is defined by the start time and end time, the second entries including parent entries and child entries, wherein for each of the child entries, the revert-to time thereof falls within the time interval of its parent entry, each second entry corresponding to a set of update operations occurring during the time interval thereof, the second entries including an initial parent entry; defining an initial sequence of update operations that defines a first evolution of the updated data over time, wherein the update time thereof occurs during the time interval of the initial parent entry; responsively to a reversion request to update the initial sequence beginning at a given point in time, adding an initial child entry to the table, wherein the revert-to time thereof is set at the given point and falls within the time interval of the initial parent entry; reverting the initial sequence to a reverted sequence of update operations by recursively scanning the first data structure, wherein update times in the reverted sequence occur during a first reverted time interval beginning at the start time of the initial parent entry and ending at the revert-to time of the initial child entry or during a second reverted time interval beginning at the start time of the initial child entry; defining a relevancy window of time wherein it is possible to establish a new child entry in the table, wherein the revert-to time thereof falls in the relevancy window; determining data accessibility in the storage unit by identifying first update operations, wherein update times thereof fall within the relevancy window and identifying second update operations in the reverted sequence; and designating the undated data of the first update operations and the second update operations as accessible data; deleting the undated data other than the accessible data from the storage unit; and accessing updated data in the reverted sequence in the storage unit. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A computer software product for managing data, including a computer-readable storage medium in which computer program instructions are stored, which instructions, when executed by a computer, cause the computer to perform a method comprising the steps of:
-
performing respective data update operations comprising writing updated data into a storage unit, the storage unit comprising a continuous data protection system (CDP) for maintaining multiple versions of the updated data; establishing first entries in a first data structure that describe the update operations, the first entries comprising a timestamp that indicates an update time of the update operations, and being indexed by a key comprising a logical block address; establishing second entries in a second data structure comprising a table, each second entry having a start time, an end time, a revert-to time, and a time interval that is defined by the start time and end time, the second entries including parent entries and child entries, wherein for each of the child entries, the revert-to time thereof falls within the time interval of its parent entry, each second entry corresponding to a set of update operations occurring during the time interval thereof, the second entries including an initial parent entry; defining an initial sequence of update operations that defines a first evolution of the updated data over time, wherein the update time thereof occurs during the time interval of the initial parent entry; responsively to a reversion request to update the initial sequence beginning at a given point in time, adding an initial child entry to the table, wherein the revert-to time thereof is set at the given point and falls within the time interval of the initial parent entry; reverting the initial sequence to a reverted sequence of update operations by recursively scanning the first data structure, wherein update times in the reverted sequence occur during a first reverted time interval beginning at the start time of the initial parent entry and ending at the revert-to time of the initial child entry or during a second reverted time interval beginning at the start time of the initial child entry; defining a relevancy window of time wherein it is possible to establish a new child entry in the table, wherein the revert-to time thereof falls in the relevancy window; determining data accessibility in the storage unit by identifying first update operations, wherein update times thereof fall within the relevancy window and identifying second update operations in the reverted sequence; and designating the undated data of the first update operations and the second update operations as accessible data; deleting the updated data other than the accessible data from the storage unit; and accessing updated data in the reverted sequence in the storage unit. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A data processing system for managing data, comprising:
-
a controller; a memory accessible by the controller; a storage unit accessible by the controller, the storage unit comprising a continuous data protection system (CDP) for maintaining multiple versions of data being managed, wherein the controller is operative to perform the steps of; performing respective data update operations comprising writing updated data into the storage unit; establishing first entries in a first data structure that describe the update operations, the first entries comprising a timestamp that indicates an update time of the update operations, and being indexed by a key comprising a logical block address; establishing second entries in a second data structure comprising a table, each second entry having a start time, an end time, a revert-to time, and a time interval that is defined by the start time and end time, the second entries including parent entries and child entries, wherein for each of the child entries, the revert-to time thereof falls within the time interval of its parent entry, each second entry corresponding to a set of update operations occurring during the time interval thereof, the second entries including an initial parent entry; defining an initial sequence of update operations that defines a first evolution of the updated data over time, wherein the update time thereof occurs during the time interval of the initial parent entry; responsively to a reversion request to update the initial sequence beginning at a given point in time, adding an initial child entry to the table, wherein the revert-to time thereof is set at the given point and falls within the time interval of the initial parent entry; reverting the initial sequence to a reverted sequence of update operations by recursively scanning the first data structure, wherein update times in the reverted sequence occur during a first reverted time interval beginning at the start time of the initial parent entry and ending at the revert-to time of the initial child entry or during a second reverted time interval beginning at the start time of the initial child entry; defining a relevancy window of time wherein it is possible to establish a new child entry in the table, wherein the revert-to time thereof falls in the relevancy window; determining data accessibility in the storage unit by identifying first update operations, wherein update times thereof fall within the relevancy window and identifying second update operations in the reverted sequence; and designating the undated data of the first update operations and the second update operations as accessible data; deleting the undated data other than the accessible data from the storage unit; and accessing updated data in the reverted sequence in the storage unit. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
Specification