US2012284232A1PendingUtilityA1

Data restoration utilizing forward and backward deltas

Assignee: FISKE ROBERT STEWARTPriority: Feb 24, 2010Filed: Jul 18, 2012Published: Nov 8, 2012
Est. expiryFeb 24, 2030(~3.6 yrs left)· nominal 20-yr term from priority
G06F 11/1469G06F 11/1448
43
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

In an implementation, a set of files are stored into a collection of blocks. The collection of blocks are stored within a storage subsystem that includes a premium storage area and a low-end storage area, wherein the premium storage area has a performance metric that is better than a performance metric of the low-end storage area. The collection of blocks define the set of files at multiple different times within the predefined time window, the collection of blocks include a first baseline of blocks which defines the set of files at a first baseline time within a predefined time window, older blocks which were formed before the first baseline time, and newer blocks which were formed after the first baseline time. The first baseline of blocks and the newer blocks are stored in the premium storage area and the older blocks are stored in the low-end storage area.

Claims

exact text as granted — not AI-modified
1 . A method of storing a set of files into a collection of blocks, the set of files having existed at a particular time within a predefined time window, the method comprising:
 storing, by a processor, the collection of blocks within a storage subsystem that includes (i) a premium storage area and (ii) a low-end storage area, wherein the premium storage area has a performance metric that is better than a performance metric of the low-end storage area, the collection of blocks defining the set of files at multiple different times within the predefined time window, the collection of blocks including (i) a first baseline of blocks which defines the set of files at a first baseline time within the predefined time window, (ii) older blocks which were formed before the first baseline time within the predefined time window, and (iii) newer blocks which were formed after the first baseline time within the predefined time window; and   wherein storing the collection of blocks further comprises storing the first baseline of blocks and the newer blocks in the premium storage area and storing the older blocks in the low-end storage area.   
     
     
         2 . The method according to  claim 1 , further comprising:
 from the collection of blocks stored within the storage subsystem, forming a next baseline of blocks from the first baseline of blocks and additional blocks, the additional blocks being either (i) the older blocks or (ii) the newer blocks.   
     
     
         3 . The method according to  claim 2 , wherein storing the collection of blocks within the storage subsystem further comprises:
 saving, as the older blocks stored within the storage subsystem, blocks that changed between the first baseline and the next baseline.   
     
     
         4 . The method according to  claim 3 , wherein saving the blocks that changed between the first baseline and the next baseline further comprises transferring the blocks that changed from the premium storage area to the low-end storage area. 
     
     
         5 . The method according to  claim 4 , wherein the premium storage area comprises premium storage devices and the low-end storage area comprises low-end storage devices, and wherein transferring the first baseline of blocks to the low-end storage area further comprises:
 spinning up the low-end storage devices, which are slower and less efficient than the premium storage devices, and   writing the blocks that changed between the first baseline and the next baseline to the low-end storage devices and spinning down the low-end storage devices after writing is complete, the low end storage devices being routinely spun-down following a baseline transition.   
     
     
         6 . The method according to  claim 5 , wherein the low-end storage area comprises an optical disk storage, the method further comprising:
 routinely destroying optical disks containing older blocks once ages of the older blocks fall outside of a predetermined time window.   
     
     
         7 . The method according to  claim 5 , wherein the low-end storage area comprises a disk storage having an access time that is slower than that of the premium storage area, the method further comprising:
 routinely erasing the older blocks having ages falling outside of a predetermined time window.   
     
     
         8 . The method according to  claim 3 , further comprising:
 coalescing a first group of newer blocks stored at a first newer version time with a second group of newer blocks stored at a second newer version time to form a coalesced group of newer blocks to enable restoration of the set of files based on (i) the first baseline of blocks, (ii) the coalesced group of newer blocks and (iii) a direction signal pertaining to a restore command.   
     
     
         9 . The method according to  claim 8 , wherein forming the next baseline of blocks from the first baseline of blocks and the additional blocks includes generating the next baseline of blocks from (i) the first baseline, (ii) the coalesced group of newer blocks, and (iii) the direction signal. 
     
     
         10 . The method according to  claim 8 , wherein forming the next baseline of blocks further comprises:
 maintaining an index file which lists blocks of the first baseline which have been modified in the coalesced group of newer blocks,   based on the index file, identifying and saving, as at least some of the older blocks, the blocks of the first baseline which have been modified in the coalesced group of newer blocks, and   constructing a copy of the first baseline of blocks and replacing blocks of the copy of the first baseline with blocks of the coalesced group of newer blocks to form the next baseline of blocks.   
     
     
         11 . The method according to  claim 8 , wherein forming the next baseline of blocks further comprises:
 maintaining an index file which lists blocks of the first baseline which have been modified in the coalesced group of newer blocks,   based on the index file, identifying and saving, as at least some of the older blocks, the blocks of the first baseline which have been modified in the coalesced group of newer blocks, and   overwriting blocks of the first baseline with blocks of the coalesced group of newer blocks to form the next baseline of blocks.   
     
     
         12 . The method according to  claim 2 , further comprising:
 receiving a direction signal in response to receipt of a restore command to restore the set of files at a particular time of the multiple different times within the predefined time window from the collection of blocks stored within the storage subsystem, the direction signal having (i) an older direction value indicating an older direction when the particular time is older than the first baseline time and (ii) a newer direction value indicating a newer direction when the particular time is newer than the first baseline time;   wherein forming the next baseline of blocks from the first baseline of blocks and the additional blocks includes generating the next baseline of blocks from the first baseline and the older blocks when the direction signal has the older direction value; and   wherein forming the next baseline of blocks from the first baseline and the additional blocks includes generating the next baseline of blocks from the first baseline and the newer blocks when the direction signal has the newer direction value.   
     
     
         13 . The method according to  claim 12 , wherein the direction signal has the older direction value and not the newer direction value and wherein generating the next baseline of blocks from the first baseline and the older blocks includes creating the next baseline of blocks from the first baseline, at least one older block, and no newer blocks. 
     
     
         14 . The method according to  claim 12 , wherein the direction signal has the newer direction value and not the older direction value; and
 wherein generating the next baseline of blocks from the first baseline and the newer blocks includes creating the next baseline of blocks from the first baseline, at least one newer block, and no older blocks.   
     
     
         15 . A data storage system comprising:
 an interface;   a storage subsystem to store a collection of blocks, wherein the storage subsystem includes (i) a premium storage area and (ii) a low-end storage area, wherein the premium storage area has a performance metric that is better than a performance metric of the low-end storage area, wherein the collection of blocks define a set of files at multiple different times within a predefined time window, the collection of blocks including (i) a first baseline of blocks which defines the set of files at a first baseline time within the predefined time window, (ii) older blocks which were formed before the first baseline time within the predefined time window, and (iii) newer blocks which were formed after the first baseline time within the predefined time window; and   a control circuit coupled to the interface and to the storage subsystem, wherein the control circuit is to:
 store the first baseline of blocks and the newer blocks in the premium storage area; and 
 store the older blocks in the low-end storage area. 
   
     
     
         16 . The data storage system according to  claim 15 , wherein the control circuit, when storing the collection of blocks within the storage subsystem, is to:
 from the collection of blocks stored within the storage subsystem, form a next baseline of blocks from the first baseline of blocks and additional blocks, the additional blocks being either (i) the older blocks or (ii) the newer blocks.   
     
     
         17 . The data storage system according to  claim 16 , wherein the control circuit, when storing the collection of blocks within the storage subsystem, is to:
 save, as the older blocks stored within the storage subsystem, blocks that changed between the first baseline and the next baseline.   
     
     
         18 . A non-transitory computer readable storage medium having a set of instructions stored thereon; the set of instructions, when executed by a computer, enabling the computer to store a set of files from a collection of blocks, the set of files having existed at a particular time within a predefined time window, the set of instructions comprising code to:
 store the collection of blocks within a storage subsystem that includes (i) a premium storage area and (ii) a low-end storage area, wherein the premium storage area has a performance metric that is better than a performance metric of the low-end storage area, the collection of blocks defining the set of files at multiple different times within the predefined time window, the collection of blocks including (i) a first baseline of blocks which defines the set of files at a first baseline time within the predefined time window, (ii) older blocks which were formed before the first baseline time within the predefined time window, and (iii) newer blocks which were formed after the first baseline time within the predefined time window, wherein the first baseline of blocks and the newer blocks are initially stored in the premium storage area and wherein the older blocks are initially stored in the low-end storage area.   
     
     
         19 . The non-transitory computer readable storage medium as in  claim 18 , wherein the set of instructions further comprise code to:
 from the collection of blocks stored within the storage subsystem, form a next baseline of blocks from the first baseline of blocks and additional blocks, the additional blocks being either (i) the older blocks or (ii) the newer blocks.   
     
     
         20 . The non-transitory computer readable storage medium as in  claim 18 , wherein the set of instructions further comprise code to:
 save, as the older blocks stored within the storage subsystem, blocks that changed between the first baseline and the next baseline.

Join the waitlist — get patent alerts

Track US2012284232A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.