METHOD AND APPARATUS FOR EFFICIENTLY MERGING, STORING AND RETRIEVING INCREMENTAL DATA
First Claim
1. A method for identifying the latest data for a plurality of pages in a set of incrementally stored data as of a desired time, the incrementally stored data including a base archive and a plurality of snapshots, each snapshot including a copy of each page of data that was changed in a corresponding epoch and an index that indicates an identity of each page that was changed during the corresponding epoch and a location of the copy, the method comprising the steps of:
- processing an index of a snapshot for each epoch corresponding to a time period later than creation of the base archive and no later than the desired time to identify a location of a most recent copy of each page of data in the plurality of pages that was changed during the time period; and
storing a location of each most recent copy identified in the searching step in a memory.
21 Assignments
0 Petitions
Accused Products
Abstract
In a method and apparatus for retrieving data from a snapshot data storage system, for each epoch, a snapshot including (i) all changed data, and (ii) an index is created. The index includes an entry for each page that has changed during the epoch. For rapidly retrieving the data as of any given time, the method creates a hash table that includes an entry for each data page that has changed since the baseline was created. The hash table entry indicates the epoch in which the data most recently changed and an offset corresponding to the location of the changed data in the corresponding snapshot. The hash table is created by inserting an entry for each page in the most recent index, and then examining the remaining indices for all other snapshots from the most recent to the oldest snapshot and adding any non-duplicate entries into the table.
66 Citations
22 Claims
-
1. A method for identifying the latest data for a plurality of pages in a set of incrementally stored data as of a desired time, the incrementally stored data including a base archive and a plurality of snapshots, each snapshot including a copy of each page of data that was changed in a corresponding epoch and an index that indicates an identity of each page that was changed during the corresponding epoch and a location of the copy, the method comprising the steps of:
-
processing an index of a snapshot for each epoch corresponding to a time period later than creation of the base archive and no later than the desired time to identify a location of a most recent copy of each page of data in the plurality of pages that was changed during the time period; and storing a location of each most recent copy identified in the searching step in a memory. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A device for identifying the latest data for a plurality of pages in a set of incrementally stored data as of a desired time, the device comprising:
-
a processor; a memory connected to the processor; and an interface connected to the processor, the interface being operable to communicate on a storage device on which the incrementally stored data is stored, the incrementally stored data including a base archive and a plurality of snapshots, each of the snapshots including a copy of each page of data that was changed in a corresponding epoch and an index that includes an identifier and a location for each page in the plurality of pages that was changed during the corresponding epoch, the incrementally stored data including a base archive and a plurality of snapshots, each of the snapshots including a copy of each page of data that was changed in a corresponding epoch and an index that includes an identifier and a location for each page that was changed during the corresponding epoch; wherein the processor is configured to perform the steps of processing a index of a snapshot for each epoch corresponding to a time period later than creation of the base archive and no later than the desired time to identify a location of a most recent copy of each page of data in the plurality of pages that was changed during the time period; and storing a location of each most recent copy identified in the searching step in a memory. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
Specification