Methods and infrastructure for performing repetitive data protection and a corresponding restore of data
First Claim
1. A method for performing repetitive data protection for data stored in a block oriented data object comprising several indexed segments, the method comprising:
- setting a set of timestamps tk for a first undo-log journal j0 by a timer k;
recording each first data modification of a segment that occurs after a timestamp tk has been set by storing old data contents of said segment together with a segment index j and a timestamp tk as an undo-log block in the first undo-log journal j0 before overwriting said segment with modified new data such that the first undo-log journal j0 comprises sequential undo-log blocks corresponding to each timestamp tk;
transmitting an undo-log block to one or more additional undo-log journals ji based on a timestamp tk and storing redundant undo-log information in the one or more additional undo-log journals, the redundant undo-log information comprising a subset of undo-log blocks from the first undo-log journal j0, such that each additional undo-log journal comprises sequential undo-log blocks written for a different set of timestamps tk/i, a granularity of timestamps and corresponding undo-log blocks in an additional undo-log journal decreasing such that each additional undo-log journal comprises fewer undo-log blocks than a previous undo-log journal; and
restoring data contents of the segment from a state of the data contents at a start time to a state of the data contents at a target time using a sequence of undo-log blocks from two or more undo-log journals, the two or more undo-log journals selected from the first undo-log journal j0 and the one or more additional undo-log journals ji, each undo-log block in the sequence selected from one of the two or more undo-log journals with a coarsest available granularity for the undo-log block such that the undo-log blocks in the sequence are selected from each of the two or more undo-log journals.
2 Assignments
0 Petitions
Accused Products
Abstract
The present invention provides methods and an infrastructure for performing repetitive data protection and a corresponding restore of data for block oriented data objects comprising several indexed segments. For implementing the invention, timestamps tk are set by a timer k. Only the first data modification of a segment is recorded, after a timestamp tk has been set, by storing the old data contents of said segment together with the segment index j and said timestamp tk as undo-log block in a first journal j0, before overwriting said segment with the modified new data. Besides, said undo-log blocks are transmitted to N journals ji for storing redundant undo-log information, with N>1 and i=0, . . . , N−1. According to the present invention for each journal ji journal-specific timestamps tk/i are generated, so that each journal ji is written for a different set of timestamps tk/i.
-
Citations
21 Claims
-
1. A method for performing repetitive data protection for data stored in a block oriented data object comprising several indexed segments, the method comprising:
-
setting a set of timestamps tk for a first undo-log journal j0 by a timer k; recording each first data modification of a segment that occurs after a timestamp tk has been set by storing old data contents of said segment together with a segment index j and a timestamp tk as an undo-log block in the first undo-log journal j0 before overwriting said segment with modified new data such that the first undo-log journal j0 comprises sequential undo-log blocks corresponding to each timestamp tk; transmitting an undo-log block to one or more additional undo-log journals ji based on a timestamp tk and storing redundant undo-log information in the one or more additional undo-log journals, the redundant undo-log information comprising a subset of undo-log blocks from the first undo-log journal j0, such that each additional undo-log journal comprises sequential undo-log blocks written for a different set of timestamps tk/i, a granularity of timestamps and corresponding undo-log blocks in an additional undo-log journal decreasing such that each additional undo-log journal comprises fewer undo-log blocks than a previous undo-log journal; and restoring data contents of the segment from a state of the data contents at a start time to a state of the data contents at a target time using a sequence of undo-log blocks from two or more undo-log journals, the two or more undo-log journals selected from the first undo-log journal j0 and the one or more additional undo-log journals ji, each undo-log block in the sequence selected from one of the two or more undo-log journals with a coarsest available granularity for the undo-log block such that the undo-log blocks in the sequence are selected from each of the two or more undo-log journals. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method for restoring data of a block oriented data object comprising several indexed segments by using undo-log information generated and stored as described by:
-
setting a set of timestamps tk for a first undo-log journal j0 by a timer k; recording each first data modification of a segment that occurs after a timestamp tk has been set by storing old data contents of said segment together with a segment index j and a timestamp tk as an undo-log block in the first undo-log journal j0 before overwriting said segment with modified new data such that the first undo-log journal j0 comprises sequential undo-log blocks corresponding to each timestamp tk; transmitting an undo-log block to one or more additional undo-log journals ji based on a timestamp tk and storing redundant undo-log information in the one or more additional undo-log journals, the redundant undo-log information comprising a subset of undo-log blocks from the first undo-log journal, such that each additional undo-log journal comprises sequential undo-log blocks written for a different set of timestamps tk/i, a granularity of timestamps and corresponding undo-log blocks in an additional undo-log journal decreasing such that each additional undo-log journal comprises fewer undo-log blocks than a previous undo-log journal, wherein each undo-log journal ji represents a different time graining of undo-log information and wherein the density of the corresponding timestamps tk/i decreases with increasing i; and restoring data contents of the segment to a state before a timestamp t using a sequence of undo-log blocks each selected from an undo-log journal with a coarsest available granularity for the undo-log block such that the undo-log blocks in the sequence are selected from multiple undo-log journals, the restoring comprising, reading a last undo-log journal jN-1, the last undo-log journal jN-1 having the fewest number of undo-log blocks relative to the first undo-log journal j0 and the other additional undo-log journals ji, starting from the first undo-log block comprising a first timestamp tk/N-1 which is the same as or occurs after a time for undo-log journal jN-1 which corresponds to timestamp t, till the end of undo-log journal jN-1, reading the next journal ji in decreasing order starting from the first undo-log block, comprising the first timestamp tk/i which is the same as or occurs after the time for undo-log journal ji which corresponds to timestamp t, till the undo-log block comprising the first timestamp tk/i which is the same as or occurs after the first timestamp for undo-log journal ji which corresponds to the timestamp tk/i+1 of undo-log journal ji+1 having been read of the preceding undo-log journal ji+1; repeating the preceding step of reading for all next journals ji−
1 such that the data stored in an undo-log block read from an undo-log journal is only written to the corresponding segment of the data object, if said segment has not been re-written before, initiated by an undo-log block read before from the same undo-log journal. - View Dependent Claims (11, 12, 13, 14)
-
-
15. A method for restoring data of a block oriented data object comprising several indexed segments by using undo-log information generated and stored as described by:
-
setting a set of timestamps tk for a first undo-log journal j0 by a timer k; recording each first data modification of a segment that occurs after a timestamp tk has been set by storing old data contents of said segment together with a segment index j and a timestamp tk as an undo-log block in the first undo-log journal j0 before overwriting said segment with modified new data such that the first undo-log journal j0 comprises sequential undo-log blocks corresponding to each timestamp tk; transmitting an undo-log block to one or more additional undo-log journals ji based on a timestamp tk storing redundant undo-log information in the one or more additional undo-log journals, the redundant undo-log information comprising a subset of undo-log blocks from the first undo-log journal, such that each additional undo-log journal comprises sequential undo-log blocks written for a different set of timestamps tk/i, a granularity of timestamps and corresponding undo-log blocks in an additional undo-log journal decreasing such that each additional undo-log journal comprises fewer undo-log blocks than a previous undo-log journal, wherein each undo-log journal ji represents a different time graining of undo-log information, wherein the density of the corresponding timestamps tk/i decreases with increasing i; and restoring data contents of the segment to a state before a timestamp t using a sequence of undo-log blocks each selected from an undo-log journal with a coarsest available granularity for the undo-log block such that the undo-log blocks in the sequence are selected from multiple undo-log journals, the restoring comprising; reading the first undo-log journal j0, the first undo-log journal j0 having the highest number of undo-log blocks relative to the additional undo-log journals ji starting from a first undo-log block, comprising a first timestamp tk/i which is the same as or occurs after timestamp t, till the first undo-log block comprising a timestamp tk/i which is the same as or occurs after a first timestamp tk/i+1 of a next undo-log journal ji+1, with timestamp tk/i+1 which is the same as or occurs after timestamp t; repeating the preceding step of reading for all next undo-log journals ji+1 with i=1, . . . , N−
2;reading a last undo-log journal jN-1 starting from the first undo-log block comprising the first timestamp tk/N-1 which is the same as or occurs after timestamp t, till the end of undo-log journal jN-1, such that the data stored in an undo-log block read from an undo-log journal is only written to the corresponding segment of the data object, if said segment has not been re-written before, initiated by an undo-log block read before from the same undo-log journal. - View Dependent Claims (16, 17, 18)
-
-
19. A method for performing repetitive data protection for data stored in a block oriented data object comprising several indexed segments, the method comprising:
-
setting a different granularity of timestamps for each of a plurality of undo-log journals such that the granularity of the timestamps decreases for each undo-log journal between a first undo-log journal and a last undo-log journal; recording, for each undo-log journal from the plurality of undo-log journals, each first data modification of a segment that occurs after a timestamp for the undo-log journal by storing old data contents of the segment, a segment index of the segment, and the timestamp as an undo-log block in the undo-log journal such that each undo-log journal from the plurality of undo-log journals comprises sequential undo-log blocks corresponding to the granularity of timestamps for the undo-log journal, each undo-log journal between the first undo-log journal and the last undo-log journal comprising fewer undo-log blocks than a previous undo-log journal based on the different granularity of timestamps for each undo-log journal; and restoring data contents of the segment from a state of the data contents at a start time to a state of the data contents at a target time using a sequence of undo-log blocks from two or more of the plurality of undo-log journals, the undo-log blocks in the sequence selected from one of the two or more undo-log journals with a coarsest available granularity for the undo-log block such that the undo-log blocks in the sequence are selected from each of the two or more undo-log journals. - View Dependent Claims (20, 21)
-
Specification