US20150154234A1 - Using versioning to back up multiple versions of a stored object - Google Patents

Using versioning to back up multiple versions of a stored object Download PDF

Info

Publication number
US20150154234A1
US20150154234A1 US14/579,996 US201414579996A US2015154234A1 US 20150154234 A1 US20150154234 A1 US 20150154234A1 US 201414579996 A US201414579996 A US 201414579996A US 2015154234 A1 US2015154234 A1 US 2015154234A1
Authority
US
United States
Prior art keywords
backup
storage location
stored
authoring application
application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US14/579,996
Inventor
Sachhin Sreedharan
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
EMC Corp
Original Assignee
EMC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by EMC Corp filed Critical EMC Corp
Priority to US14/579,996 priority Critical patent/US20150154234A1/en
Assigned to EMC CORPORATION reassignment EMC CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: SREEDHARAN, SACHHIN
Publication of US20150154234A1 publication Critical patent/US20150154234A1/en
Assigned to THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT reassignment THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT SECURITY AGREEMENT Assignors: ASAP SOFTWARE EXPRESS, INC., AVENTAIL LLC, CREDANT TECHNOLOGIES, INC., DELL INTERNATIONAL L.L.C., DELL MARKETING L.P., DELL PRODUCTS L.P., DELL SOFTWARE INC., DELL SYSTEMS CORPORATION, DELL USA L.P., EMC CORPORATION, EMC IP Holding Company LLC, FORCE10 NETWORKS, INC., MAGINATICS LLC, MOZY, INC., SCALEIO LLC, SPANNING CLOUD APPS LLC, WYSE TECHNOLOGY L.L.C.
Assigned to CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT reassignment CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT SECURITY AGREEMENT Assignors: ASAP SOFTWARE EXPRESS, INC., AVENTAIL LLC, CREDANT TECHNOLOGIES, INC., DELL INTERNATIONAL L.L.C., DELL MARKETING L.P., DELL PRODUCTS L.P., DELL SOFTWARE INC., DELL SYSTEMS CORPORATION, DELL USA L.P., EMC CORPORATION, EMC IP Holding Company LLC, FORCE10 NETWORKS, INC., MAGINATICS LLC, MOZY, INC., SCALEIO LLC, SPANNING CLOUD APPS LLC, WYSE TECHNOLOGY L.L.C.
Assigned to EMC IP Holding Company LLC reassignment EMC IP Holding Company LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: EMC CORPORATION
Assigned to MAGINATICS LLC, DELL USA L.P., AVENTAIL LLC, EMC CORPORATION, DELL SYSTEMS CORPORATION, EMC IP Holding Company LLC, DELL INTERNATIONAL, L.L.C., SCALEIO LLC, FORCE10 NETWORKS, INC., ASAP SOFTWARE EXPRESS, INC., DELL PRODUCTS L.P., MOZY, INC., DELL MARKETING L.P., WYSE TECHNOLOGY L.L.C., DELL SOFTWARE INC., CREDANT TECHNOLOGIES, INC. reassignment MAGINATICS LLC RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS). Assignors: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Assigned to DELL USA L.P., DELL INTERNATIONAL L.L.C., DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.), EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC), DELL PRODUCTS L.P., EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.), DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.), DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.), SCALEIO LLC reassignment DELL USA L.P. RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Assignors: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Assigned to SCALEIO LLC, EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC), DELL INTERNATIONAL L.L.C., DELL PRODUCTS L.P., EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.), DELL USA L.P., DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.), DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.), DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.) reassignment SCALEIO LLC RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Assignors: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/219Managing data history or versioning
    • G06F17/30309
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1412
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99954Version management

Definitions

  • an incremental or differential backup by an object (e.g., file) based backup system and/or application has involved storing to backup media (e.g., a secondary disk) a backup copy of any object that has been newly created or modified since a last backup.
  • backup media e.g., a secondary disk
  • the backup software creates and maintains for every new version of an object that gets backed up an index entry and/or other metadata corresponding to the version.
  • the presence on backup media of many version of the same object, each potentially stored in a different location, may also result in a long “recovery window”, i.e., the time it takes to locate, retrieve, and restore a desired version, due to the fact that the appropriate tape/disk must be searched to retrieve the desired version.
  • FIG. 1 shows the initial backup cycle, under a prior art approach, when an object gets created.
  • FIG. 2 shows the backup cycle, under a prior art approach, when a previously backed up object is updated.
  • FIGS. 3 a , 3 b , 3 c and 3 d illustrate an embodiment of an initial backup of a newly created (i.e., not previously backed up) object.
  • FIG. 4 shows a flow diagram of an embodiment of a process for performing an initial backup of a newly created (i.e., not previously backed up) object.
  • FIGS. 5 a , 5 b , 5 c and 5 d illustrate an embodiment of a process for performing a backup of a previously backed up object that has been updated.
  • FIGS. 6 a and 6 b show a flow diagram of an embodiment of a process for performing a backup of a previously backed up object that has been updated.
  • FIG. 7 shows a flow diagram illustrating an embodiment of a process for recovery of a desired version of an object.
  • FIG. 8 shows a flow diagram illustrating an embodiment of a process for applying a retention policy.
  • the invention can be implemented in numerous ways, including as a process, an apparatus, a system, a composition of matter, a computer readable medium such as a computer readable storage medium or a computer network wherein program instructions are sent over optical or communication links.
  • these implementations, or any other form that the invention may take, may be referred to as techniques.
  • a component such as a processor or a memory described as being configured to perform a task includes both a general component that is temporarily configured to perform the task at a given time or a specific component that is manufactured to perform the task.
  • the order of the steps of disclosed processes may be altered within the scope of the invention.
  • An application that creates and/or updates stored objects is sometimes referred to herein as an “authoring application”.
  • the term “authoring application” is not limited to word processing applications and instead refers to any application that creates or updates stored objects, such as files or other file system objects.
  • a version control and/or tracking mechanism of the authoring application software is used to store in a backup location (e.g., a secondary server and/or disk) a single instance of an object stored on a production server or other primary storage location, in which single instance all backed up versions of the object are included, without requiring that the version control mechanism be used to include/track all such versions in the object as stored in the primary location.
  • the term “instance” refers to a copy of an object or the object itself, and may contain multiple versions of the object within itself.
  • an object created or updated on a first or “production” server by an authoring application is exported to a specific folder.
  • the specific folder is on the first server.
  • the object is exported at least in part by invoking a version control mechanism of and/or an API or other interface exposed or otherwise implemented by the authoring application software.
  • a backup software or other process is run, e.g., as per a scheduled program for backing up data.
  • the object placed in the specific folder by the authoring application which may be an original version that has not been backed up previously or an updated version of an object an original version of which was placed in the specific folder and/or backed up previously, is moved (for example, by a backup application or other process) to a specific folder on a second or backup server and/or disk.
  • the version control mechanism of the application software that created or updated the object is used to import the object as placed in the specific folder of the second or backup server to a backup location on said second or backup server. If an instance of the object is not already present at the backup location, the application software creates a base instance of the object at said backup location on the second or backup server by exporting the original instance to the backup location. If an instance of the object is not already present at the backup location, the application software imports the object into the existing instance as a new version. In some embodiments, only the latest version of the object resides on the first or production server.
  • a computer program product embodied in a computer readable medium comprises computer instructions to back up an object by leveraging a version control feature of the application software used to create or update said object in a manner so that the latest version of the object resides on a production server where it is created or updated and all the versions of the object including the original are included in a single instance of the object as stored at a backup location on a backup server.
  • recovery of an object backed up as described herein is performed at least in part by browsing a list of objects available for recovery; retrieving an instance of an object of interest from the backup server; and selecting a version of interest from said retrieved instance of the object.
  • a backup software maintains an index comprising the names of objects for which it has performed backup and the application software maintains an index for all versions of the object within the instance of said object as present on the backup server.
  • a retention policy is applied to backed up objects, so that older versions of objects beyond a retention period set by the policy are deleted automatically from the object as stored on backup media.
  • the retention period is set by default, user input, etc.
  • the user first creates a set of objects on the production server.
  • the objects are assumed to be MS word objects having names Doc1.doc and Doc2.doc, with object sizes of 1 MB each.
  • the backup software which is configured to run at a specific time gets triggered and picks both of these objects and performs a backup of the same, e.g., to a secondary or backup disk. In this process, the backup software transfers 2 MB of data on the whole for both the said objects.
  • FIG. 1 illustrates the initial backup cycle when Doc1 gets created, according to the traditional backup technique.
  • the backup software which is configured to perform an incremental backup, picks up the object Doc1.doc as soon as it detects that Doc1.doc has undergone a change, and performs a backup of the said object onto the backup disk. In this process, a total of 1.1 MB of data is transferred by the backup software and the updated version of the object is stored onto the backup disk.
  • the backup destination (disk in this case) now contains two versions of the object Doc1.doc, one which has the latest updates and the other one which is the first instance.
  • FIG. 2 illustrates the backup cycle when Doc1 undergoes an update, according to the traditional backup technique. Similarly, for each subsequent backup period during which an update is performed on the objects Doc1.doc or Doc2.doc, a new complete copy of the object as updated will be stored to the backup disk.
  • the application software is adapted to maintain, within a single instance of an object as stored on backup media, different versions of the object (or maintain the history of the object changes), rather than the backup software maintaining multiple copies of the object.
  • the amount of disk space used to store data required to be able to restore the object to a version of interest is relatively very less when compared to storing each version as a separate copy of the object.
  • the MicrosoftTM Word word processing application can be configured to create a new version of an object anytime a save operation is performed, whereby all versions of the object are contained within the same instance of the object. Being configured in such a way, for an object that has an initial size of 1 Mb and which has undergone a change of 100 kb, MS word stores both the versions of the said object within the same instance, and in that consumes a disk space of around 1.1 Mb. On the contrary, if there are two copies of the object maintained separately that contain updates independently, the total amount of disk space that is consumed to store both versions of the object is 2.1 MB (1 Mb for the base version, and 1.1 Mb for the version that has undergone modifications).
  • only the latest version of an object resides on the primary disk/production server while a version control enabled copy resides on the secondary/backup disk. This helps in keeping the object size on the primary disk manageable as well as having the advantage of using the version control mechanism of the application software to store and keep track of the various versions of the object, instead of requiring the backup application to track the version information, e.g., in an index.
  • a new object is first created by an authoring application in a location ⁇ Primary on the primary disk/production server.
  • An initial backup of the object is performed, resulting in an initial instance being saved to a backup disk or other storage media, e.g., to a location ⁇ Secondary.
  • the application software exports the changes to a shared location, e.g., ⁇ Primary ⁇ share, on the primary disk/production server.
  • the changes are exported by storing in the shared location on the primary disk/production server a copy of the object as modified and/or corresponding version information or metadata.
  • the application software uses its own version control mechanism to export the changes.
  • a backup application or other process moves the new version from the shared location on the primary disk/production server to a shared location on the secondary disk and/or server, e.g., ⁇ Secondary ⁇ share.
  • the backup application or other process then prompts the authoring application to import the object as a new version to the existing instance of the object present in an ultimate backup destination, e.g., ⁇ Secondary.
  • the import of the new version of the object leverages the version control feature of the authoring application to achieve efficient storage on backup media of the current and prior versions of the object while at the same time relieving the backup application of the responsibility for keeping track of the various versions and where each is stored.
  • the backup application is also used to perform recover operations on request.
  • the backup application maintains an object level index, does not maintain an object level index, or can be configured, e.g., at the option of an administrator or other authorized user, to maintain or not maintain an object level index, as desired.
  • the authoring application is invoked, e.g., programmatically by the backup application or other recover process, to retrieve a desired object.
  • the authoring application is invoked, e.g., programmatically by the backup application or other recover process, to identify and restore a desired version of an object, e.g., by saving to a primary storage location a recovered copy of the version of interest.
  • the authoring application stores within a version-enabled object as stored in backup media version information for that object.
  • the version information is maintained in some embodiments in the same manner as for versioning-enabled objects stored on the production server or other primary storage location.
  • MicrosoftTM Word maintains the different versions of an object within a single instance of the object.
  • the authoring application provides and/or is configured and/or modified to provide a mechanism to enforce a retention policy for the versions of an object that it creates.
  • an API or other interface is defined that enables a backup application or process to interact programmatically with the authoring application to configure the authoring application to enforce with respect to the respective versions within a multi-versioned object stored on backup media an applicable retention policy and/or period, e.g., to ensure that versions that are older than the applicable retention period are purged.
  • the backup application or process is relieved of the responsibility for tracking each version and its corresponding date of creation, and enforcing retention by deleting a version when it is no longer required and/or permitted to be retained. Instead, the retention mechanism of the authoring application is relied on to enforce proper retention.
  • the authoring application is adapted to expose or otherwise implement an API or other interface that is used by the backup software to trigger programmatically import commands, such as a request that a new version that has been moved to a shared location on a backup (secondary) storage be incorporated as a new version into a corresponding existing base or versioned instance of the object as stored in the backup storage.
  • a backup as described herein is performed in the context of a D2D2T backup scheme.
  • An object (and/or subsequent versions thereof) is backed up initially to a secondary disk and is later moved onto tape.
  • the primary disk holds only the latest version of the object and does not hold the history of versions.
  • the object will continue to reside on the location ⁇ Primary. However, a copy of the latest version of the object will reside on the location ⁇ Primary ⁇ share until the backup software puts it onto ⁇ Secondary ⁇ share.
  • the export mechanism will only have a new version of the object in ⁇ Primary ⁇ share. It does not remove or move the version present in ⁇ Primary to ⁇ Primary ⁇ share.
  • the application software makes a copy of the object rather than performing a move.
  • multiple successive versions of an object may be present in the shared location ⁇ Primary ⁇ share, for example if the same object has been modified and saved multiple times between successive scheduled backups.
  • version numbers and/or other metadata are used to ensure that successive versions are handled, e.g., imported as versions into an instance of the object as stored on backup media, in the correct order and/or manner.
  • FIGS. 3 a - 3 d and 4 illustrate an embodiment of a process for performing an initial backup when a new object is created, e.g., by and/or using an authoring application.
  • a user invokes an authoring application to create a new object in the primary disk ( FIGS. 3 a and 41 in FIG. 4 ).
  • the user performs operations on the object and then saves all the changes of the object.
  • the authoring application exports the latest version of the object Doc1, in this case the newly created initial version, from the location ⁇ Primary onto the folder ⁇ Primary ⁇ share.
  • the authoring application makes a copy of the object in ⁇ Primary ⁇ share, as this is the first time the object is created ( FIGS. 3 b and 42 in FIG. 4 ).
  • the export performed at 42 of FIG. 4 comprises a copy of the latest version that contains the most recent changes.
  • the authoring application stores the object Doc1 in the name of Doc1-1 in the ⁇ Primary ⁇ share location. It also designates the version of the object that is present in location ⁇ Primary with the number “1”. The version number of the object is stored with the object as stored on ⁇ Primary.
  • the application software internally maintains the version number “1” inside the same instance of the object and then exports the object in the name of Doc1-1 to the location ⁇ Primary ⁇ share.
  • the application software internally maintains the version number “1” inside the same instance of the object and then exports the object in the name of Doc1-1 to the location ⁇ Primary ⁇ share.
  • the backup software which is scheduled to run for example at a specified time, is configured to look into the folder ⁇ Primary ⁇ share for changed objects ( FIGS. 3 c and 43 in FIG. 4 ).
  • the scheduled backup when run looks into ⁇ Primary ⁇ share and finds Doc1-1 present therein. It then performs a backup of this object to the secondary disk.
  • the backup software places the object Doc1-1 from ⁇ Primary ⁇ share to ⁇ Secondary ⁇ share ( FIGS. 3 c and 44 in FIG. 4 ).
  • the backup software After successful copy of Doc1-1 from ⁇ Primary ⁇ share to ⁇ Secondary ⁇ share, the backup software interfaces with the authoring application and requests that the authoring application import the object(s) (in this example object Doc1-1) present on ⁇ Secondary ⁇ share ( FIGS. 3 d and 45 in FIG. 4 ).
  • the backup software uses an API or other interface that the authoring application exposes to interact programmatically with the authoring application to request the import operation.
  • the authoring application scans for all available objects present under ⁇ Secondary ⁇ share. It finds the object (in this example object Doc1-1) present under location ⁇ Secondary ⁇ share.
  • the application software picks Doc1-1 from ⁇ Secondary ⁇ share and searches for an instance of said object in ⁇ Secondary. Since in this example the object is just created and is being backed up for the first time, the application software fails to find an instance of the object Doc1. Hence, it merely copies the object from ⁇ Secondary ⁇ share onto the location ⁇ Secondary ( FIGS. 3 d and 46 in FIG. 4 ) in the name of Doc1. In the example shown the authoring application removes the “-1” portion of the name of the object such that the object is stored at ⁇ Secondary with its original name.
  • the backup software that is scheduled to run for performing the backup from ⁇ Secondary to tape eventually picks the instance of Doc1 and performs a backup onto tape.
  • the procedure described above comprises one single cycle of backup of objects which have been created.
  • the resulting state of the system is that there is one object Doc1 which has been created on the disk ⁇ Primary and which has a backup on the disk ⁇ Secondary.
  • FIGS. 5 a - 5 d and 6 a - 6 b illustrate an embodiment of a backup procedure for an update of an object an instance of which has already been stored on backup media.
  • a user accesses the object Doc1 existing in the location ⁇ Primary (that has been backed up once in this example), updates the object and then saves the changes in the object ( FIGS. 5 a and 61 in FIG. 6 a ).
  • the size of the object after update is assumed as 1.1 Mb in this example.
  • the authoring application recognizes that an update has been made to the object Doc1 that resides in the location ⁇ Primary and exports the object to ⁇ Primary ⁇ share ( FIGS. 5 b and 62 in FIG.
  • the application software In performing the export, the application software first reads the existing version of the object that is maintained internally. It discovers the current version number of Doc1 to be “1”. The application software alters this version number initially by incrementing the version number to “2”, stores the new version number “2” within the object and then performs an export of the changes that has occurred to the object to the location ⁇ Primary ⁇ share in the form of a new version having the name Doc1-2, as shown in FIG. 5 b . The version number is set to “2” as it is the second version of the object Doc1 that has been saved since its creation. In some embodiments, the application software only performs an export of the changes in the object. It efficiently backs up new content and updated operational data. It does not delete the object from the location ⁇ Primary.
  • the backup software which in some embodiments runs at a scheduled time, looks into the folder ⁇ Primary ⁇ share for new or changed objects ( 63 in FIG. 6 a ). On locating any object therein, the object is moved from ⁇ Primary ⁇ share to the shared location, ⁇ Secondary ⁇ share in this example, on the secondary/backup drive ( FIGS. 5 c and 64 in FIG. 6 a ). In this case, the backup software finds Doc1-2 in the folder ⁇ Primary ⁇ share and copies it to the location ⁇ Secondary ⁇ share. After a successful transfer of the objects from ⁇ Primary ⁇ share to ⁇ Secondary ⁇ share on completion of the backup, the backup software deletes the objects present on ⁇ Primary ⁇ share.
  • the backup software after moving the object(s) from ⁇ Primary ⁇ share to ⁇ Secondary ⁇ share, invokes the application software ( 65 in FIG. 6 a ).
  • the authoring application scans the location ⁇ Secondary ⁇ share and finds the object Doc1-2.
  • the application software checks the location ⁇ Secondary for base version ( 66 in FIG. 6 b ). From the name of the object, the application software determines that an instance of Doc1 is present in the disk location ⁇ Secondary. It then imports the object into the existing instance as a new version ( FIGS. 5 d and 67 in FIG. 6 b ).
  • the authoring application reads the current version number of the object (Doc1) which is present under ⁇ Secondary, and finds that the version is “1”. It increments the version number to “2” and then performs an import of the object Doc1-2 from ⁇ Secondary ⁇ share onto the instance of Doc1 present in the disk ⁇ Secondary, as shown in FIG. 5 d .
  • the authoring application removes the object version (Doc1-2) that is present under the location ⁇ Secondary ⁇ share ( 68 in FIG. 6 b ).
  • the instance of the object Doc1 present in the disk ⁇ Secondary now contains 2 versions.
  • objects that are present in the location ⁇ Secondary that have had more than one version backed up maintain object versions within them.
  • FIGS. 3 a - 6 b The processes illustrated in FIGS. 3 a - 6 b are repeated, in various embodiments, as new objects are created and/or existed objects updated and successive periodic or other backups are performed.
  • a typical prior art approach to restoring a specific version of an object from backup is to search among backups to locate the tape(s) on which data associated with a date associated with the desired version has been backed up, and then to locate the object within the tape(s).
  • the recover window is reduced due to the fact that the backup instance of the object which is maintained on the secondary disk has within it previous versions of the object that were created and saved.
  • the entire object is recovered from disk with all previous versions in it. The user can choose from the object versions according to his needs. A desired version may be restored to the primary storage.
  • the backup software will have reduced indexing requirements, as compared to traditional backups, when the techniques described herein are used.
  • the backup software only maintains an index or other record indicating which objects were backed up in a particular backup operation, e.g., one performed at a particular scheduled time.
  • the traditional backup software maintains indexes for all objects backed up and also the details on the history/versions of each object. For example, if there exists a object Doc1 that has been updated three times in a span of three days (e.g., an update once a day), traditional backup software would maintain a record of the object and each backed up version, e.g., to enable a user to select which version of the object is required to be recovered.
  • the backup software does not maintain version data in its index and instead relies on the authoring application to store such information within the instance of an object as stored on backup media.
  • the user can select which version of the object he requires from within a user interface of the authoring application software itself, rather than having to go through the backup software.
  • FIG. 7 shows a flow diagram illustrating an embodiment of an operation to restore, using backup data, a desired version of an object.
  • a user browses a list of objects which is available to be recovered and selects an object.
  • the single instance of the object recovered at 74 in some embodiments contains all versions still under retention of the object ( 75 ). The user can select the version of the object he requires to recover.
  • the authoring application is used to determine and display to the user at 75 which versions are embodied in the instance of the object that was recovered at 74 .
  • the authoring application is used to receive from the user at 75 a selection of a version to be restored and to store on the primary disk, e.g., in a restore location, an instance of the object that comprises just the version that the user has indicated the user desires to recover.
  • a selection of a version to be restored e.g., in a restore location
  • an instance of the object that comprises just the version that the user has indicated the user desires to recover e.g., a restore location.
  • an error message is presented to the user ( 73 ) indicating an error in the process.
  • the objects that are stored on the disk ⁇ Secondary are version control enabled, hence, they will tend to store the entire history of the object within themselves.
  • the history gets backed up every time the backup runs from the secondary disk to tape.
  • the history and prior version data also uses disk space on the secondary disk.
  • retention policies are applied to version enabled objects as stored on backup media to ensure that versions created prior to a current retention period are not retained.
  • the authoring application is configured to delete from instances of objects as stored on the secondary disk versions that are older than a prescribed retention period.
  • the retention policy is configured at the authoring application software.
  • retention policies are determined by the application software at the time of creation of an object.
  • the retention policy is configured once on the authoring application software and it will be applied to all objects or data stores that get created once the policy is set.
  • the user may configure a retention policy on the application software to delete all versions of the object or data store that have been retained within the object that are older than 2 years from the date of creation of that version.
  • FIG. 8 is a flow diagram depicting an embodiment of a process for applying a retention policy to version enabled instances of objects stored on backup media.
  • an applicable retention policy is determined by the authoring application software at the time of creation of the object.
  • the retention policy is enabled or gets activated on creation of any object ( 82 ).
  • the application software continuously checks for the expiry of retention policy of versions of objects within an instance of the object as stored on backup media ( 83 ). Once the application software detects that a particular version of an object is no longer to be retained in the secondary disk according to the retention policy, it deletes that version from the instance of the object as stored on the secondary disk ( 84 ).
  • the application is or may be configured to check, e.g., periodically, the objects as stored on the secondary disk and delete versions whose retention periods have expired.
  • the space on the disk ⁇ Secondary can be reduced in many cases if older and no longer relevant versions of objects are removed.
  • a version of an object that has been removed from an instance of the object as stored on a secondary disk can be recovered using data backed up from the secondary disk to tape prior to the version being deleted from the instance as stored on the secondary disk.
  • a default retention policy/period that an authoring application and/or backup software are configured to use by default can be altered by a user.
  • Retention policies can be modified in some embodiments by the user configuring the retention policy, including the option to retain all versions of an object on the secondary disk (i.e., unlimited retention period).
  • the user will be able to retain for longer periods versions of such objects by having retention policies that are configured for longer periods of time or even have the option of maintaining the objects perpetually.
  • protection of key data is ensured with policy-based management of information retention/deletion.
  • checksum validation is used in connection with the techniques described herein.
  • the authoring application adds the checksum when it exports a changed version of an object to the ⁇ Primary ⁇ share location.
  • the checksum is embedded within the object version itself.
  • the authoring application imports the new version of the object onto the base version present on ⁇ Secondary, it validates the checksum against the value that is embedded within the version of the object. If the value that the application software generates during the import matches the one that is present in the version of the object, the import is considered to be successful.
  • Data compression techniques are applied in some embodiments.
  • the compression technique can be best applied when the data gets exported into the ⁇ Primary ⁇ share location.
  • the application software can first export the data onto a new version and then call a compression algorithm. This will ensure that the data that gets backed up will be in the compressed format leading to further reduction in the backup window.
  • the data can be uncompressed to regular form on the secondary disk or the application software can maintain the data in the compressed format and then decide to uncompress it during the time of recovery.
  • While certain embodiments have been described taking objects that are generated using MicrosoftTM Word as the authoring application, the techniques described herein are not limited to MicrosoftTM Word and may be applied in connection with other authoring applications as well.
  • the backup techniques described herein are applicable to any authoring application software and database store that implements version control for the data that it generates.
  • the application software can be anything from databases to object generators.

Abstract

Using a versioning feature of an authoring application to back up multiple versions of a stored object in single, version-enabled instance stored on backup media is disclosed. In some embodiments, an indication is received that a subsequent version data associated with an object an existing instance of which is stored in a backup storage location is to be backed up. A version control mechanism of an authoring application that created or updated the object as stored in a primary storage location is invoked to incorporate the subsequent version data into the existing instance of the object as stored in the backup storage location.

Description

    CROSS REFERENCE TO OTHER APPLICATIONS
  • This application is a continuation of co-pending U.S. patent application Ser. No. 13/688,068, entitled USING VERSIONING TO BACK UP MULTIPLE VERSIONS OF A STORED OBJECT filed Nov. 28, 2012, which is a continuation of U.S. patent application Ser. No. 13/358,859, now U.S. Pat. No. 8,370,311, entitled USING VERSIONING TO BACK UP MULTIPLE VERSIONS OF A STORED OBJECT filed Jan. 26, 2012, which is a continuation of U.S. patent application Ser. No. 11/714,714, now U.S. Pat. No. 8,126,854, entitled USING VERSIONING TO BACK UP MULTIPLE VERSIONS OF A STORED OBJECT filed Mar. 5, 2007 all of which are incorporated herein by reference for all purposes.
  • BACKGROUND OF THE INVENTION
  • Traditionally, an incremental or differential backup by an object (e.g., file) based backup system and/or application has involved storing to backup media (e.g., a secondary disk) a backup copy of any object that has been newly created or modified since a last backup. Typically, every time an object is modified, the entire object is stored to backup media again. This leads to two copies of the same object on the backup media (e.g., tape or secondary disk), resulting in data redundancy. In addition, under the traditional approach, the backup software creates and maintains for every new version of an object that gets backed up an index entry and/or other metadata corresponding to the version. The presence on backup media of many version of the same object, each potentially stored in a different location, may also result in a long “recovery window”, i.e., the time it takes to locate, retrieve, and restore a desired version, due to the fact that the appropriate tape/disk must be searched to retrieve the desired version.
  • Therefore, a solution is needed that provides faster and more reliable backup and restore while saving costly storage space by avoiding data redundancy.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • Various embodiments of the invention are disclosed in the following detailed description and the accompanying drawings.
  • FIG. 1 shows the initial backup cycle, under a prior art approach, when an object gets created.
  • FIG. 2 shows the backup cycle, under a prior art approach, when a previously backed up object is updated.
  • FIGS. 3 a, 3 b, 3 c and 3 d illustrate an embodiment of an initial backup of a newly created (i.e., not previously backed up) object.
  • FIG. 4 shows a flow diagram of an embodiment of a process for performing an initial backup of a newly created (i.e., not previously backed up) object.
  • FIGS. 5 a, 5 b, 5 c and 5 d illustrate an embodiment of a process for performing a backup of a previously backed up object that has been updated.
  • FIGS. 6 a and 6 b show a flow diagram of an embodiment of a process for performing a backup of a previously backed up object that has been updated.
  • FIG. 7 shows a flow diagram illustrating an embodiment of a process for recovery of a desired version of an object.
  • FIG. 8 shows a flow diagram illustrating an embodiment of a process for applying a retention policy.
  • DETAILED DESCRIPTION
  • The invention can be implemented in numerous ways, including as a process, an apparatus, a system, a composition of matter, a computer readable medium such as a computer readable storage medium or a computer network wherein program instructions are sent over optical or communication links. In this specification, these implementations, or any other form that the invention may take, may be referred to as techniques. A component such as a processor or a memory described as being configured to perform a task includes both a general component that is temporarily configured to perform the task at a given time or a specific component that is manufactured to perform the task. In general, the order of the steps of disclosed processes may be altered within the scope of the invention.
  • A detailed description of one or more embodiments of the invention is provided below along with accompanying figures that illustrate the principles of the invention. The invention is described in connection with such embodiments, but the invention is not limited to any embodiment. The scope of the invention is limited only by the claims and the invention encompasses numerous alternatives, modifications and equivalents. Numerous specific details are set forth in the following description in order to provide a thorough understanding of the invention. These details are provided for the purpose of example and the invention may be practiced according to the claims without some or all of these specific details. For the purpose of clarity, technical material that is known in the technical fields related to the invention has not been described in detail so that the invention is not unnecessarily obscured.
  • Performing a backup of objects created or updated by an application equipped with a version control mechanism is disclosed. An application that creates and/or updates stored objects is sometimes referred to herein as an “authoring application”. The term “authoring application” is not limited to word processing applications and instead refers to any application that creates or updates stored objects, such as files or other file system objects. In various embodiments, a version control and/or tracking mechanism of the authoring application software is used to store in a backup location (e.g., a secondary server and/or disk) a single instance of an object stored on a production server or other primary storage location, in which single instance all backed up versions of the object are included, without requiring that the version control mechanism be used to include/track all such versions in the object as stored in the primary location. As used herein, the term “instance” refers to a copy of an object or the object itself, and may contain multiple versions of the object within itself.
  • In some embodiments, an object created or updated on a first or “production” server by an authoring application is exported to a specific folder. In some embodiments, the specific folder is on the first server. In some embodiments, the object is exported at least in part by invoking a version control mechanism of and/or an API or other interface exposed or otherwise implemented by the authoring application software. A backup software or other process is run, e.g., as per a scheduled program for backing up data. The object placed in the specific folder by the authoring application, which may be an original version that has not been backed up previously or an updated version of an object an original version of which was placed in the specific folder and/or backed up previously, is moved (for example, by a backup application or other process) to a specific folder on a second or backup server and/or disk. The version control mechanism of the application software that created or updated the object is used to import the object as placed in the specific folder of the second or backup server to a backup location on said second or backup server. If an instance of the object is not already present at the backup location, the application software creates a base instance of the object at said backup location on the second or backup server by exporting the original instance to the backup location. If an instance of the object is not already present at the backup location, the application software imports the object into the existing instance as a new version. In some embodiments, only the latest version of the object resides on the first or production server.
  • In some embodiments, a computer program product embodied in a computer readable medium comprises computer instructions to back up an object by leveraging a version control feature of the application software used to create or update said object in a manner so that the latest version of the object resides on a production server where it is created or updated and all the versions of the object including the original are included in a single instance of the object as stored at a backup location on a backup server.
  • In some embodiments, recovery of an object backed up as described herein is performed at least in part by browsing a list of objects available for recovery; retrieving an instance of an object of interest from the backup server; and selecting a version of interest from said retrieved instance of the object. In some embodiments, a backup software maintains an index comprising the names of objects for which it has performed backup and the application software maintains an index for all versions of the object within the instance of said object as present on the backup server.
  • In some embodiments, a retention policy is applied to backed up objects, so that older versions of objects beyond a retention period set by the policy are deleted automatically from the object as stored on backup media. In various embodiments, the retention period is set by default, user input, etc.
  • In a traditional backup scenario of the disk-to-disk-to-tape (D2D2T) type, in which a backup copy of an object is kept on a disk first and later is rolled onto a tape, the requirement to perform backup of set of objects is presently met by the following procedure:
  • The user first creates a set of objects on the production server. For purpose of explanation only, the objects are assumed to be MS word objects having names Doc1.doc and Doc2.doc, with object sizes of 1 MB each. Once the objects are created, the user closes the objects. The backup software which is configured to run at a specific time gets triggered and picks both of these objects and performs a backup of the same, e.g., to a secondary or backup disk. In this process, the backup software transfers 2 MB of data on the whole for both the said objects. FIG. 1 illustrates the initial backup cycle when Doc1 gets created, according to the traditional backup technique.
  • On the second day, the user opens the object Doc1.doc, alters its contents and then saves the changes. The changes made to the object Doc1.doc may be assumed to be 100 Kb in size. The backup software, which is configured to perform an incremental backup, picks up the object Doc1.doc as soon as it detects that Doc1.doc has undergone a change, and performs a backup of the said object onto the backup disk. In this process, a total of 1.1 MB of data is transferred by the backup software and the updated version of the object is stored onto the backup disk. The backup destination (disk in this case) now contains two versions of the object Doc1.doc, one which has the latest updates and the other one which is the first instance. The total size of the object Doc1.doc on the backup destination (disk) is 2.1 Mb (1 MB of the first instance and 1.1 MB of the second version). FIG. 2 illustrates the backup cycle when Doc1 undergoes an update, according to the traditional backup technique. Similarly, for each subsequent backup period during which an update is performed on the objects Doc1.doc or Doc2.doc, a new complete copy of the object as updated will be stored to the backup disk.
  • Even though there is only 100 Kb or 0.1 Mb of data difference between the first and second versions of the object Doc1.doc in the example described above, the entire object is saved twice. This leads to approximately 1 MB of redundant data being stored with every backup instance of the object onto the backup device any time the object is modified (in case of addition of content to the object, as opposed to deletion or modification of previously existing content). Thus, with every instance of the object that gets backed up, under the traditional approach typically there is some redundant data that gets stored.
  • Saving space on backup storage by making the application software participate to a greater extent in the backup is disclosed. In some embodiments, the application software is adapted to maintain, within a single instance of an object as stored on backup media, different versions of the object (or maintain the history of the object changes), rather than the backup software maintaining multiple copies of the object.
  • When application software maintains versions of a given object within a single instance stored on backup media, the amount of disk space used to store data required to be able to restore the object to a version of interest is relatively very less when compared to storing each version as a separate copy of the object.
  • The Microsoft™ Word word processing application, for example, can be configured to create a new version of an object anytime a save operation is performed, whereby all versions of the object are contained within the same instance of the object. Being configured in such a way, for an object that has an initial size of 1 Mb and which has undergone a change of 100 kb, MS word stores both the versions of the said object within the same instance, and in that consumes a disk space of around 1.1 Mb. On the contrary, if there are two copies of the object maintained separately that contain updates independently, the total amount of disk space that is consumed to store both versions of the object is 2.1 MB (1 Mb for the base version, and 1.1 Mb for the version that has undergone modifications).
  • In some embodiments, only the latest version of an object resides on the primary disk/production server while a version control enabled copy resides on the secondary/backup disk. This helps in keeping the object size on the primary disk manageable as well as having the advantage of using the version control mechanism of the application software to store and keep track of the various versions of the object, instead of requiring the backup application to track the version information, e.g., in an index.
  • In some embodiments, a new object is first created by an authoring application in a location \\Primary on the primary disk/production server. An initial backup of the object is performed, resulting in an initial instance being saved to a backup disk or other storage media, e.g., to a location \\Secondary. When the object undergoes modification, the application software exports the changes to a shared location, e.g., \\Primary\share, on the primary disk/production server. In some embodiments, the changes are exported by storing in the shared location on the primary disk/production server a copy of the object as modified and/or corresponding version information or metadata. In some embodiments, the application software uses its own version control mechanism to export the changes. After the object has been exported to the shared location, \\Primary\share in this example, in some embodiments a backup application or other process moves the new version from the shared location on the primary disk/production server to a shared location on the secondary disk and/or server, e.g., \\Secondary\share. The backup application or other process then prompts the authoring application to import the object as a new version to the existing instance of the object present in an ultimate backup destination, e.g., \\Secondary. The import of the new version of the object leverages the version control feature of the authoring application to achieve efficient storage on backup media of the current and prior versions of the object while at the same time relieving the backup application of the responsibility for keeping track of the various versions and where each is stored.
  • In some embodiments, the backup application is also used to perform recover operations on request. In various embodiments, the backup application maintains an object level index, does not maintain an object level index, or can be configured, e.g., at the option of an administrator or other authorized user, to maintain or not maintain an object level index, as desired. In some embodiments, to perform a recover operation the authoring application is invoked, e.g., programmatically by the backup application or other recover process, to retrieve a desired object. In some embodiments, once an instance of an object to be restored has been retrieved from backup storage, the authoring application is invoked, e.g., programmatically by the backup application or other recover process, to identify and restore a desired version of an object, e.g., by saving to a primary storage location a recovered copy of the version of interest.
  • In some embodiments, the authoring application stores within a version-enabled object as stored in backup media version information for that object. The version information is maintained in some embodiments in the same manner as for versioning-enabled objects stored on the production server or other primary storage location. For example, Microsoft™ Word maintains the different versions of an object within a single instance of the object.
  • In various embodiments, the authoring application provides and/or is configured and/or modified to provide a mechanism to enforce a retention policy for the versions of an object that it creates. In some embodiments, an API or other interface is defined that enables a backup application or process to interact programmatically with the authoring application to configure the authoring application to enforce with respect to the respective versions within a multi-versioned object stored on backup media an applicable retention policy and/or period, e.g., to ensure that versions that are older than the applicable retention period are purged. In such embodiments, the backup application or process is relieved of the responsibility for tracking each version and its corresponding date of creation, and enforcing retention by deleting a version when it is no longer required and/or permitted to be retained. Instead, the retention mechanism of the authoring application is relied on to enforce proper retention.
  • In some embodiments, the authoring application is adapted to expose or otherwise implement an API or other interface that is used by the backup software to trigger programmatically import commands, such as a request that a new version that has been moved to a shared location on a backup (secondary) storage be incorporated as a new version into a corresponding existing base or versioned instance of the object as stored in the backup storage.
  • In some embodiments, a backup as described herein is performed in the context of a D2D2T backup scheme. An object (and/or subsequent versions thereof) is backed up initially to a secondary disk and is later moved onto tape.
  • In some embodiments, the primary disk holds only the latest version of the object and does not hold the history of versions. When modifications are made to the object, the object will continue to reside on the location \\Primary. However, a copy of the latest version of the object will reside on the location \\Primary\share until the backup software puts it onto \\Secondary\share. During the entire process, the object that is present under \\Primary will continue to exist. The export mechanism will only have a new version of the object in \\Primary\share. It does not remove or move the version present in \\Primary to \\Primary\share. The application software makes a copy of the object rather than performing a move. In some embodiments, multiple successive versions of an object may be present in the shared location \\Primary\share, for example if the same object has been modified and saved multiple times between successive scheduled backups. In some embodiments, version numbers and/or other metadata are used to ensure that successive versions are handled, e.g., imported as versions into an instance of the object as stored on backup media, in the correct order and/or manner.
  • FIGS. 3 a-3 d and 4 illustrate an embodiment of a process for performing an initial backup when a new object is created, e.g., by and/or using an authoring application. In the example shown, a user invokes an authoring application to create a new object in the primary disk (FIGS. 3 a and 41 in FIG. 4). The user performs operations on the object and then saves all the changes of the object. On invoking the save command, the authoring application exports the latest version of the object Doc1, in this case the newly created initial version, from the location \\Primary onto the folder \\Primary\share. In this case, the authoring application makes a copy of the object in \\Primary\share, as this is the first time the object is created (FIGS. 3 b and 42 in FIG. 4). In some embodiments, the export performed at 42 of FIG. 4 comprises a copy of the latest version that contains the most recent changes. In the example shown, the authoring application stores the object Doc1 in the name of Doc1-1 in the \\Primary\share location. It also designates the version of the object that is present in location \\Primary with the number “1”. The version number of the object is stored with the object as stored on \\Primary. In other words, when the user saves the changes to the object Doc1 on the disk \\Primary, the application software internally maintains the version number “1” inside the same instance of the object and then exports the object in the name of Doc1-1 to the location \\Primary\share. At this stage, there are two copies of the object that are currently available. The first one is present in \\Primary and the second one is present in \\Primary\share.
  • The backup software, which is scheduled to run for example at a specified time, is configured to look into the folder \\Primary\share for changed objects (FIGS. 3 c and 43 in FIG. 4). In the example shown, the scheduled backup when run looks into \\Primary\share and finds Doc1-1 present therein. It then performs a backup of this object to the secondary disk. In the example shown, the backup software places the object Doc1-1 from \\Primary\share to \\Secondary\share (FIGS. 3 c and 44 in FIG. 4).
  • After successful copy of Doc1-1 from \\Primary\share to \\Secondary\share, the backup software interfaces with the authoring application and requests that the authoring application import the object(s) (in this example object Doc1-1) present on \\Secondary\share (FIGS. 3 d and 45 in FIG. 4). In some embodiments, the backup software uses an API or other interface that the authoring application exposes to interact programmatically with the authoring application to request the import operation. On receiving the request to import, the authoring application scans for all available objects present under \\Secondary\share. It finds the object (in this example object Doc1-1) present under location \\Secondary\share. The application software picks Doc1-1 from \\Secondary\share and searches for an instance of said object in \\Secondary. Since in this example the object is just created and is being backed up for the first time, the application software fails to find an instance of the object Doc1. Hence, it merely copies the object from \\Secondary\share onto the location \\Secondary (FIGS. 3 d and 46 in FIG. 4) in the name of Doc1. In the example shown the authoring application removes the “-1” portion of the name of the object such that the object is stored at \\Secondary with its original name.
  • In some embodiments, the backup software that is scheduled to run for performing the backup from \\Secondary to tape eventually picks the instance of Doc1 and performs a backup onto tape.
  • The procedure described above comprises one single cycle of backup of objects which have been created. The resulting state of the system is that there is one object Doc1 which has been created on the disk \\Primary and which has a backup on the disk \\Secondary.
  • FIGS. 5 a-5 d and 6 a-6 b illustrate an embodiment of a backup procedure for an update of an object an instance of which has already been stored on backup media. In the example shown, a user accesses the object Doc1 existing in the location \\Primary (that has been backed up once in this example), updates the object and then saves the changes in the object (FIGS. 5 a and 61 in FIG. 6 a). The size of the object after update is assumed as 1.1 Mb in this example. On receiving the save notification, the authoring application recognizes that an update has been made to the object Doc1 that resides in the location \\Primary and exports the object to \\Primary \share (FIGS. 5 b and 62 in FIG. 6 a). In performing the export, the application software first reads the existing version of the object that is maintained internally. It discovers the current version number of Doc1 to be “1”. The application software alters this version number initially by incrementing the version number to “2”, stores the new version number “2” within the object and then performs an export of the changes that has occurred to the object to the location \\Primary\share in the form of a new version having the name Doc1-2, as shown in FIG. 5 b. The version number is set to “2” as it is the second version of the object Doc1 that has been saved since its creation. In some embodiments, the application software only performs an export of the changes in the object. It efficiently backs up new content and updated operational data. It does not delete the object from the location \\Primary.
  • The backup software, which in some embodiments runs at a scheduled time, looks into the folder \\Primary\share for new or changed objects (63 in FIG. 6 a). On locating any object therein, the object is moved from \\Primary\share to the shared location, \\Secondary\share in this example, on the secondary/backup drive (FIGS. 5 c and 64 in FIG. 6 a). In this case, the backup software finds Doc1-2 in the folder \\Primary\share and copies it to the location\\Secondary\share. After a successful transfer of the objects from \\Primary\share to \\Secondary\share on completion of the backup, the backup software deletes the objects present on \\Primary\share.
  • The backup software, after moving the object(s) from \\Primary\share to \\Secondary\share, invokes the application software (65 in FIG. 6 a). On receiving the notification from the backup software, e.g., through an API such as described above, to perform an import, the authoring application scans the location \\Secondary\share and finds the object Doc1-2. The application software checks the location \\Secondary for base version (66 in FIG. 6 b). From the name of the object, the application software determines that an instance of Doc1 is present in the disk location \\Secondary. It then imports the object into the existing instance as a new version (FIGS. 5 d and 67 in FIG. 6 b). In some embodiments, the authoring application reads the current version number of the object (Doc1) which is present under \\Secondary, and finds that the version is “1”. It increments the version number to “2” and then performs an import of the object Doc1-2 from \\Secondary \share onto the instance of Doc1 present in the disk \\Secondary, as shown in FIG. 5 d. After successful import, in some embodiments the authoring application removes the object version (Doc1-2) that is present under the location \\Secondary\share (68 in FIG. 6 b). The instance of the object Doc1 present in the disk \\Secondary now contains 2 versions. In some embodiments, objects that are present in the location \\Secondary that have had more than one version backed up maintain object versions within them.
  • The processes illustrated in FIGS. 3 a-6 b are repeated, in various embodiments, as new objects are created and/or existed objects updated and successive periodic or other backups are performed.
  • A typical prior art approach to restoring a specific version of an object from backup is to search among backups to locate the tape(s) on which data associated with a date associated with the desired version has been backed up, and then to locate the object within the tape(s). In some embodiments, by using the techniques described herein, the recover window is reduced due to the fact that the backup instance of the object which is maintained on the secondary disk has within it previous versions of the object that were created and saved. On a recover request, in some embodiments the entire object is recovered from disk with all previous versions in it. The user can choose from the object versions according to his needs. A desired version may be restored to the primary storage.
  • In some embodiments, the backup software will have reduced indexing requirements, as compared to traditional backups, when the techniques described herein are used. In some embodiments, the backup software only maintains an index or other record indicating which objects were backed up in a particular backup operation, e.g., one performed at a particular scheduled time. The traditional backup software maintains indexes for all objects backed up and also the details on the history/versions of each object. For example, if there exists a object Doc1 that has been updated three times in a span of three days (e.g., an update once a day), traditional backup software would maintain a record of the object and each backed up version, e.g., to enable a user to select which version of the object is required to be recovered. In some embodiments, the backup software does not maintain version data in its index and instead relies on the authoring application to store such information within the instance of an object as stored on backup media. In some embodiments, the user can select which version of the object he requires from within a user interface of the authoring application software itself, rather than having to go through the backup software.
  • FIG. 7 shows a flow diagram illustrating an embodiment of an operation to restore, using backup data, a desired version of an object. At 71, a user browses a list of objects which is available to be recovered and selects an object. At 72, it is determined whether the selected object is present in the \\Secondary disk. If so, the object is recovered (74) and provided to the user. The single instance of the object recovered at 74 in some embodiments contains all versions still under retention of the object (75). The user can select the version of the object he requires to recover. In some embodiments, the authoring application is used to determine and display to the user at 75 which versions are embodied in the instance of the object that was recovered at 74. In some embodiments, the authoring application is used to receive from the user at 75 a selection of a version to be restored and to store on the primary disk, e.g., in a restore location, an instance of the object that comprises just the version that the user has indicated the user desires to recover. Referring further to FIG. 7, if it is determined at 72 that an object selected at 71 is not present on the \\Secondary disk, an error message is presented to the user (73) indicating an error in the process.
  • In a typical case, use of the techniques described herein will result in a reduction in the recover time window, since it is only necessary to find and retrieve a single instance of the object, rather than sift through multiple separate instances (e.g., versions) each potentially stored in a different location.
  • In some embodiments, the objects that are stored on the disk \\Secondary are version control enabled, hence, they will tend to store the entire history of the object within themselves. In some embodiments, the history gets backed up every time the backup runs from the secondary disk to tape. The history and prior version data also uses disk space on the secondary disk. In some embodiments, retention policies are applied to version enabled objects as stored on backup media to ensure that versions created prior to a current retention period are not retained. In some embodiments, the authoring application is configured to delete from instances of objects as stored on the secondary disk versions that are older than a prescribed retention period. In some embodiments, the retention policy is configured at the authoring application software. In some embodiments, retention policies are determined by the application software at the time of creation of an object. In some embodiments, the retention policy is configured once on the authoring application software and it will be applied to all objects or data stores that get created once the policy is set. For example, the user may configure a retention policy on the application software to delete all versions of the object or data store that have been retained within the object that are older than 2 years from the date of creation of that version.
  • FIG. 8 is a flow diagram depicting an embodiment of a process for applying a retention policy to version enabled instances of objects stored on backup media. At 81, an applicable retention policy is determined by the authoring application software at the time of creation of the object. The retention policy is enabled or gets activated on creation of any object (82). The application software continuously checks for the expiry of retention policy of versions of objects within an instance of the object as stored on backup media (83). Once the application software detects that a particular version of an object is no longer to be retained in the secondary disk according to the retention policy, it deletes that version from the instance of the object as stored on the secondary disk (84). In some embodiments, on the \\Secondary disk, the application is or may be configured to check, e.g., periodically, the objects as stored on the secondary disk and delete versions whose retention periods have expired. The space on the disk \\Secondary can be reduced in many cases if older and no longer relevant versions of objects are removed.
  • In some embodiments, if required at a later stage, a version of an object that has been removed from an instance of the object as stored on a secondary disk can be recovered using data backed up from the secondary disk to tape prior to the version being deleted from the instance as stored on the secondary disk.
  • In some embodiments, a default retention policy/period that an authoring application and/or backup software are configured to use by default can be altered by a user. Retention policies can be modified in some embodiments by the user configuring the retention policy, including the option to retain all versions of an object on the secondary disk (i.e., unlimited retention period). In such a case when different objects require different retention time periods, for example some objects contain important content that must be retained for long periods of time, the user will be able to retain for longer periods versions of such objects by having retention policies that are configured for longer periods of time or even have the option of maintaining the objects perpetually. Thus, protection of key data is ensured with policy-based management of information retention/deletion.
  • In some embodiments, checksum validation is used in connection with the techniques described herein. In some embodiments, the authoring application adds the checksum when it exports a changed version of an object to the \\Primary\share location. In some embodiments, the checksum is embedded within the object version itself. When the authoring application imports the new version of the object onto the base version present on \\Secondary, it validates the checksum against the value that is embedded within the version of the object. If the value that the application software generates during the import matches the one that is present in the version of the object, the import is considered to be successful.
  • Data compression techniques are applied in some embodiments. The compression technique can be best applied when the data gets exported into the \\Primary\share location. In this connection, the application software can first export the data onto a new version and then call a compression algorithm. This will ensure that the data that gets backed up will be in the compressed format leading to further reduction in the backup window. The data can be uncompressed to regular form on the secondary disk or the application software can maintain the data in the compressed format and then decide to uncompress it during the time of recovery.
  • While certain embodiments have been described taking objects that are generated using Microsoft™ Word as the authoring application, the techniques described herein are not limited to Microsoft™ Word and may be applied in connection with other authoring applications as well. The backup techniques described herein, for example, are applicable to any authoring application software and database store that implements version control for the data that it generates. The application software can be anything from databases to object generators.
  • Although the foregoing embodiments have been described in some detail for purposes of clarity of understanding, the invention is not limited to the details provided. There are many alternative ways of implementing the invention. The disclosed embodiments are illustrative and not restrictive.

Claims (20)

What is claimed is:
1. A computer-implemented method for performing a backup of a stored object, comprising:
receiving an indication that a subsequent version data associated with an object stored by an authoring application on a primary storage device is to be backed up to a backup storage location, wherein the subsequent version data includes modifications to the object and wherein an existing instance of the object is already stored at the backup storage location, as determined by the authoring application at least in part by an object identifier associated with the object; and
invoking, by a backup application via an interface of the authoring application, a version control mechanism of the authoring application that created or modified the object to incorporate the subsequent version data into the existing instance of the object as stored in the backup storage location.
2. The method of claim 1, wherein the authoring application incorporates the subsequent version data into the existing instance of the object as stored in the backup storage location by importing the subsequent version data from a shared storage location to the backup storage location.
3. The method of claim 1, wherein the backup storage location comprises a storage location on a secondary disk.
4. The method of claim 1, wherein the backup storage location comprises a storage location on a backup server.
5. The method of claim 1, wherein the backup application or another process is configured to maintain in an index an indication that the object has been backed up but not version information for the object.
6. The method of claim 1, wherein the authoring application is configured to use the existing instance as stored in the backup storage location to identify one or more versions available to be recovered.
7. The method of claim 6, wherein the authoring application is further configured to display to a user a displayed data indicating said one or more versions available to be recovered.
8. The method of claim 7, wherein the authoring application is further configured to receive a selection of a desired version to be recovered; and recover the desired version.
9. A computer system to perform a backup of a stored object, comprising:
a primary storage device; and
a processor configured to:
receive an indication that a subsequent version data associated with an object stored by an authoring application on a primary storage device is to be backed up to a backup storage location, wherein the subsequent version data includes modifications to the object and wherein an existing instance of the object is already stored at the backup storage location, as determined by the authoring application at least in part by an object identifier associated with the object; and
invoke, programmatically under control of a backup application via an interface of the authoring application, a version control mechanism of the authoring application that created or modified the object to incorporate the subsequent version data into the existing instance of the object as stored in the backup storage location.
10. The system of claim 9, wherein the authoring application incorporates the subsequent version data into the existing instance of the object as stored in the backup storage location by importing the subsequent version data from a shared storage location to the backup storage location.
11. The system of claim 9, wherein the backup storage location comprises a storage location on a secondary disk.
12. The system of claim 9, wherein the backup storage location comprises a storage location on a backup server.
13. The system of claim 9, wherein the backup application or another process is configured to maintain in an index an indication that the object has been backed up but not version information for the object.
14. The system of claim 9, wherein the authoring application is configured to use the existing instance as stored in the backup storage location to identify one or more versions available to be recovered.
15. A non-transitory computer readable storage medium, comprising computer instructions which when executed by a computer cause the computer to perform the steps of:
receiving an indication that a subsequent version data associated with an object stored by an authoring application on a primary storage device is to be backed up to a backup storage location, wherein the subsequent version data includes modifications to the object and wherein an existing instance of the object is already stored at the backup storage location, as determined by the authoring application at least in part by an object identifier associated with the object; and
invoking, by a backup application via an interface of the authoring application, a version control mechanism of the authoring application that created or modified the object to incorporate the subsequent version data into the existing instance of the object as stored in the backup storage location.
16. The computer readable storage medium of claim 15, wherein the authoring application incorporates the subsequent version data into the existing instance of the object as stored in the backup storage location by importing the subsequent version data from a shared storage location to the backup storage location.
17. The computer readable storage medium of claim 15, wherein the backup storage location comprises a storage location on a secondary disk.
18. The computer readable storage medium of claim 15, wherein the backup application or another process is configured to maintain in an index an indication that the object has been backed up but not version information for the object.
19. The computer readable storage medium of claim 15, wherein the authoring application is configured to use the existing instance as stored in the backup storage location to identify one or more versions available to be recovered.
20. The computer readable storage medium of claim 19, wherein the authoring application is further configured to display to a user a displayed data indicating said one or more versions available to be recovered.
US14/579,996 2007-03-05 2014-12-22 Using versioning to back up multiple versions of a stored object Abandoned US20150154234A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/579,996 US20150154234A1 (en) 2007-03-05 2014-12-22 Using versioning to back up multiple versions of a stored object

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US11/714,714 US8126854B1 (en) 2007-03-05 2007-03-05 Using versioning to back up multiple versions of a stored object
US13/358,859 US8370311B2 (en) 2007-03-05 2012-01-26 Using versioning to back up multiple versions of a stored object
US13/688,068 US8949191B2 (en) 2007-03-05 2012-11-28 Using versioning to back up multiple versions of a stored object
US14/579,996 US20150154234A1 (en) 2007-03-05 2014-12-22 Using versioning to back up multiple versions of a stored object

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US13/688,068 Continuation US8949191B2 (en) 2007-03-05 2012-11-28 Using versioning to back up multiple versions of a stored object

Publications (1)

Publication Number Publication Date
US20150154234A1 true US20150154234A1 (en) 2015-06-04

Family

ID=45694544

Family Applications (4)

Application Number Title Priority Date Filing Date
US11/714,714 Active 2028-07-10 US8126854B1 (en) 2007-03-05 2007-03-05 Using versioning to back up multiple versions of a stored object
US13/358,859 Active US8370311B2 (en) 2007-03-05 2012-01-26 Using versioning to back up multiple versions of a stored object
US13/688,068 Active US8949191B2 (en) 2007-03-05 2012-11-28 Using versioning to back up multiple versions of a stored object
US14/579,996 Abandoned US20150154234A1 (en) 2007-03-05 2014-12-22 Using versioning to back up multiple versions of a stored object

Family Applications Before (3)

Application Number Title Priority Date Filing Date
US11/714,714 Active 2028-07-10 US8126854B1 (en) 2007-03-05 2007-03-05 Using versioning to back up multiple versions of a stored object
US13/358,859 Active US8370311B2 (en) 2007-03-05 2012-01-26 Using versioning to back up multiple versions of a stored object
US13/688,068 Active US8949191B2 (en) 2007-03-05 2012-11-28 Using versioning to back up multiple versions of a stored object

Country Status (1)

Country Link
US (4) US8126854B1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160196187A1 (en) * 2015-01-05 2016-07-07 Datos IO Inc. Data lineage based multi-data store recovery
US20160224253A1 (en) * 2015-01-30 2016-08-04 Sandisk Technologies Inc. Memory System and Method for Delta Writes
CN106569915A (en) * 2016-11-04 2017-04-19 广东欧珀移动通信有限公司 Data backup method and data backup server
US11115486B2 (en) 2018-08-08 2021-09-07 Microsoft Technology Licensing, Llc Data re-use across documents

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4259588B2 (en) * 2007-03-30 2009-04-30 富士ゼロックス株式会社 Information processing system and information processing program
US8769048B2 (en) 2008-06-18 2014-07-01 Commvault Systems, Inc. Data protection scheduling, such as providing a flexible backup window in a data protection system
US8352954B2 (en) 2008-06-19 2013-01-08 Commvault Systems, Inc. Data storage resource allocation by employing dynamic methods and blacklisting resource request pools
US9128883B2 (en) 2008-06-19 2015-09-08 Commvault Systems, Inc Data storage resource allocation by performing abbreviated resource checks based on relative chances of failure of the data storage resources to determine whether data storage requests would fail
US8725688B2 (en) 2008-09-05 2014-05-13 Commvault Systems, Inc. Image level copy or restore, such as image level restore without knowledge of data object metadata
US8620869B2 (en) * 2008-09-25 2013-12-31 Microsoft Corporation Techniques to manage retention policy tags
US9110727B2 (en) * 2010-10-05 2015-08-18 Unisys Corporation Automatic replication of virtual machines
US9824091B2 (en) 2010-12-03 2017-11-21 Microsoft Technology Licensing, Llc File system backup using change journal
US8620894B2 (en) * 2010-12-21 2013-12-31 Microsoft Corporation Searching files
US9229818B2 (en) 2011-07-20 2016-01-05 Microsoft Technology Licensing, Llc Adaptive retention for backup data
US9633216B2 (en) 2012-12-27 2017-04-25 Commvault Systems, Inc. Application of information management policies based on operation with a geographic entity
JP2014164614A (en) * 2013-02-26 2014-09-08 Sony Corp Information processing unit, method, and program
US9003386B2 (en) * 2013-02-28 2015-04-07 Sap Se Fallback system for software upgrade
US9459968B2 (en) 2013-03-11 2016-10-04 Commvault Systems, Inc. Single index to query multiple backup formats
CN103473151B (en) * 2013-09-10 2016-04-06 中国银行股份有限公司 The backup method of database table and device
US9798596B2 (en) 2014-02-27 2017-10-24 Commvault Systems, Inc. Automatic alert escalation for an information management system
US9648100B2 (en) 2014-03-05 2017-05-09 Commvault Systems, Inc. Cross-system storage management for transferring data across autonomous information management systems
US9823978B2 (en) 2014-04-16 2017-11-21 Commvault Systems, Inc. User-level quota management of data objects stored in information management systems
US9740574B2 (en) 2014-05-09 2017-08-22 Commvault Systems, Inc. Load balancing across multiple data paths
US9619543B1 (en) * 2014-06-23 2017-04-11 EMC IP Holding Company LLC Replicating in virtual desktop infrastructure
US9852026B2 (en) 2014-08-06 2017-12-26 Commvault Systems, Inc. Efficient application recovery in an information management system based on a pseudo-storage-device driver
US11249858B2 (en) 2014-08-06 2022-02-15 Commvault Systems, Inc. Point-in-time backups of a production application made accessible over fibre channel and/or ISCSI as data sources to a remote application by representing the backups as pseudo-disks operating apart from the production application and its host
US9444811B2 (en) 2014-10-21 2016-09-13 Commvault Systems, Inc. Using an enhanced data agent to restore backed up data across autonomous storage management systems
US10545988B2 (en) * 2015-02-26 2020-01-28 Red Hat, Inc. System and method for data synchronization using revision control
US9916233B1 (en) * 2015-03-27 2018-03-13 Amazon Technologies, Inc. Using containers for update deployment
US9766825B2 (en) 2015-07-22 2017-09-19 Commvault Systems, Inc. Browse and restore for block-level backups
TWI546728B (en) * 2015-09-09 2016-08-21 群暉科技股份有限公司 Method for performing version management on a storage system, and associated apparatus
US9967337B1 (en) * 2015-12-29 2018-05-08 EMC IP Holding Company LLC Corruption-resistant backup policy
US10296368B2 (en) 2016-03-09 2019-05-21 Commvault Systems, Inc. Hypervisor-independent block-level live browse for access to backed up virtual machine (VM) data and hypervisor-free file-level recovery (block-level pseudo-mount)
US10409779B2 (en) 2016-08-31 2019-09-10 Microsoft Technology Licensing, Llc. Document sharing via logical tagging
CN108432219B (en) * 2016-10-25 2020-09-11 华为技术有限公司 Recovery method for boot failure of terminal equipment and terminal equipment
US10838821B2 (en) 2017-02-08 2020-11-17 Commvault Systems, Inc. Migrating content and metadata from a backup system
US10740193B2 (en) 2017-02-27 2020-08-11 Commvault Systems, Inc. Hypervisor-independent reference copies of virtual machine payload data based on block-level pseudo-mount
US10891069B2 (en) 2017-03-27 2021-01-12 Commvault Systems, Inc. Creating local copies of data stored in online data repositories
US10776329B2 (en) 2017-03-28 2020-09-15 Commvault Systems, Inc. Migration of a database management system to cloud storage
US11074140B2 (en) 2017-03-29 2021-07-27 Commvault Systems, Inc. Live browsing of granular mailbox data
US10664352B2 (en) 2017-06-14 2020-05-26 Commvault Systems, Inc. Live browsing of backed up data residing on cloned disks
US10795927B2 (en) 2018-02-05 2020-10-06 Commvault Systems, Inc. On-demand metadata extraction of clinical image data
US10789387B2 (en) 2018-03-13 2020-09-29 Commvault Systems, Inc. Graphical representation of an information management system
CN108829538A (en) * 2018-05-25 2018-11-16 郑州云海信息技术有限公司 It is a kind of that backup method and device are applied based on storage
US10860443B2 (en) 2018-12-10 2020-12-08 Commvault Systems, Inc. Evaluation and reporting of recovery readiness in a data storage management system
US11308034B2 (en) 2019-06-27 2022-04-19 Commvault Systems, Inc. Continuously run log backup with minimal configuration and resource usage from the source machine
US20210232461A1 (en) * 2020-01-27 2021-07-29 EMC IP Holding Company LLC Global backup scheduler based on integer programming and machine learning
RU2746187C1 (en) * 2020-05-06 2021-04-08 Александр Сергеевич Хлебущев Method for backup of data block versions, machine-readable media and system for using this method
CN117170941B (en) * 2023-11-02 2024-02-13 建信金融科技有限责任公司 Data backup method, device, electronic equipment and storage medium

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6286085B1 (en) * 1997-04-21 2001-09-04 Alcatel System for backing up data synchronously and a synchronously depending on a pre-established criterion
US20030056139A1 (en) * 2001-09-20 2003-03-20 Bill Murray Systems and methods for data backup over a network
US20050027757A1 (en) * 2002-12-19 2005-02-03 Rick Kiessig System and method for managing versions
US20070016628A1 (en) * 2005-07-14 2007-01-18 Lenevo (Singapore) Pte.Ltd. Classification system for versionable objects
US20070136381A1 (en) * 2005-12-13 2007-06-14 Cannon David M Generating backup sets to a specific point in time
US20070143097A1 (en) * 2005-10-12 2007-06-21 Storage Appliance Corporation Systems and methods for selectively copying embedded data files

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6286085B1 (en) * 1997-04-21 2001-09-04 Alcatel System for backing up data synchronously and a synchronously depending on a pre-established criterion
US20030056139A1 (en) * 2001-09-20 2003-03-20 Bill Murray Systems and methods for data backup over a network
US20050027757A1 (en) * 2002-12-19 2005-02-03 Rick Kiessig System and method for managing versions
US20070016628A1 (en) * 2005-07-14 2007-01-18 Lenevo (Singapore) Pte.Ltd. Classification system for versionable objects
US20070143097A1 (en) * 2005-10-12 2007-06-21 Storage Appliance Corporation Systems and methods for selectively copying embedded data files
US20070136381A1 (en) * 2005-12-13 2007-06-14 Cannon David M Generating backup sets to a specific point in time

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160196187A1 (en) * 2015-01-05 2016-07-07 Datos IO Inc. Data lineage based multi-data store recovery
US11892913B2 (en) * 2015-01-05 2024-02-06 Rubrik, Inc. Data lineage based multi-data store recovery
US20160224253A1 (en) * 2015-01-30 2016-08-04 Sandisk Technologies Inc. Memory System and Method for Delta Writes
US9904472B2 (en) * 2015-01-30 2018-02-27 Sandisk Technologies Llc Memory system and method for delta writes
CN106569915A (en) * 2016-11-04 2017-04-19 广东欧珀移动通信有限公司 Data backup method and data backup server
US11115486B2 (en) 2018-08-08 2021-09-07 Microsoft Technology Licensing, Llc Data re-use across documents

Also Published As

Publication number Publication date
US8126854B1 (en) 2012-02-28
US8370311B2 (en) 2013-02-05
US20130191342A1 (en) 2013-07-25
US8949191B2 (en) 2015-02-03
US20120124003A1 (en) 2012-05-17

Similar Documents

Publication Publication Date Title
US8949191B2 (en) Using versioning to back up multiple versions of a stored object
US11740974B2 (en) Restoring a database using a fully hydrated backup
US8965850B2 (en) Method of and system for merging, storing and retrieving incremental backup data
US11372824B2 (en) Remotely mounted file system with stubs
US11914485B2 (en) Restoration of specified content from an archive
US10747719B2 (en) File system point-in-time restore using recycle bin and version history
US5991772A (en) Method and apparatus for restoring a portion of a database
EP1640868B1 (en) Method and system for synthetic backup and restore
US7310654B2 (en) Method and system for providing image incremental and disaster recovery
EP0947932A2 (en) File version reconciliation using hash codes
US20060129618A1 (en) Method and a computer system for synchronising backups of objects and of meta data about the objects
US9002800B1 (en) Archive and backup virtualization
EP3796174B1 (en) Restoring a database using a fully hydrated backup
WO1995014273A9 (en) Method and system for tracking changed files
US20020065834A1 (en) Maintenance of data integrity during transfer among computer networks
US20100169594A1 (en) Granular application data lifecycle sourcing from a single backup
US20060026567A1 (en) Distribution of data/metadata in a version control system
US8595271B1 (en) Systems and methods for performing file system checks
US7865472B1 (en) Methods and systems for restoring file systems
US20220276987A1 (en) Remotely mounted file system with stubs
EP3454231A1 (en) Remotely mounted file system with stubs
US7647362B1 (en) Content-based file versioning

Legal Events

Date Code Title Description
AS Assignment

Owner name: EMC CORPORATION, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:SREEDHARAN, SACHHIN;REEL/FRAME:034963/0276

Effective date: 20070410

AS Assignment

Owner name: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT, TEXAS

Free format text: SECURITY AGREEMENT;ASSIGNORS:ASAP SOFTWARE EXPRESS, INC.;AVENTAIL LLC;CREDANT TECHNOLOGIES, INC.;AND OTHERS;REEL/FRAME:040136/0001

Effective date: 20160907

Owner name: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT, NORTH CAROLINA

Free format text: SECURITY AGREEMENT;ASSIGNORS:ASAP SOFTWARE EXPRESS, INC.;AVENTAIL LLC;CREDANT TECHNOLOGIES, INC.;AND OTHERS;REEL/FRAME:040134/0001

Effective date: 20160907

Owner name: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLAT

Free format text: SECURITY AGREEMENT;ASSIGNORS:ASAP SOFTWARE EXPRESS, INC.;AVENTAIL LLC;CREDANT TECHNOLOGIES, INC.;AND OTHERS;REEL/FRAME:040134/0001

Effective date: 20160907

Owner name: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., A

Free format text: SECURITY AGREEMENT;ASSIGNORS:ASAP SOFTWARE EXPRESS, INC.;AVENTAIL LLC;CREDANT TECHNOLOGIES, INC.;AND OTHERS;REEL/FRAME:040136/0001

Effective date: 20160907

AS Assignment

Owner name: EMC IP HOLDING COMPANY LLC, MASSACHUSETTS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:EMC CORPORATION;REEL/FRAME:040203/0001

Effective date: 20160906

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION

AS Assignment

Owner name: WYSE TECHNOLOGY L.L.C., CALIFORNIA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001

Effective date: 20211101

Owner name: SCALEIO LLC, MASSACHUSETTS

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001

Effective date: 20211101

Owner name: MOZY, INC., WASHINGTON

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001

Effective date: 20211101

Owner name: MAGINATICS LLC, CALIFORNIA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001

Effective date: 20211101

Owner name: FORCE10 NETWORKS, INC., CALIFORNIA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001

Effective date: 20211101

Owner name: EMC IP HOLDING COMPANY LLC, TEXAS

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001

Effective date: 20211101

Owner name: EMC CORPORATION, MASSACHUSETTS

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001

Effective date: 20211101

Owner name: DELL SYSTEMS CORPORATION, TEXAS

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001

Effective date: 20211101

Owner name: DELL SOFTWARE INC., CALIFORNIA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001

Effective date: 20211101

Owner name: DELL PRODUCTS L.P., TEXAS

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001

Effective date: 20211101

Owner name: DELL MARKETING L.P., TEXAS

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001

Effective date: 20211101

Owner name: DELL INTERNATIONAL, L.L.C., TEXAS

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001

Effective date: 20211101

Owner name: DELL USA L.P., TEXAS

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001

Effective date: 20211101

Owner name: CREDANT TECHNOLOGIES, INC., TEXAS

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001

Effective date: 20211101

Owner name: AVENTAIL LLC, CALIFORNIA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001

Effective date: 20211101

Owner name: ASAP SOFTWARE EXPRESS, INC., ILLINOIS

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001

Effective date: 20211101

AS Assignment

Owner name: SCALEIO LLC, MASSACHUSETTS

Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061324/0001

Effective date: 20220329

Owner name: EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.), TEXAS

Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061324/0001

Effective date: 20220329

Owner name: EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC), MASSACHUSETTS

Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061324/0001

Effective date: 20220329

Owner name: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.), TEXAS

Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061324/0001

Effective date: 20220329

Owner name: DELL PRODUCTS L.P., TEXAS

Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061324/0001

Effective date: 20220329

Owner name: DELL INTERNATIONAL L.L.C., TEXAS

Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061324/0001

Effective date: 20220329

Owner name: DELL USA L.P., TEXAS

Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061324/0001

Effective date: 20220329

Owner name: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.), TEXAS

Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061324/0001

Effective date: 20220329

Owner name: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.), TEXAS

Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061324/0001

Effective date: 20220329

AS Assignment

Owner name: SCALEIO LLC, MASSACHUSETTS

Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061753/0001

Effective date: 20220329

Owner name: EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.), TEXAS

Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061753/0001

Effective date: 20220329

Owner name: EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC), MASSACHUSETTS

Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061753/0001

Effective date: 20220329

Owner name: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.), TEXAS

Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061753/0001

Effective date: 20220329

Owner name: DELL PRODUCTS L.P., TEXAS

Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061753/0001

Effective date: 20220329

Owner name: DELL INTERNATIONAL L.L.C., TEXAS

Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061753/0001

Effective date: 20220329

Owner name: DELL USA L.P., TEXAS

Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061753/0001

Effective date: 20220329

Owner name: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.), TEXAS

Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061753/0001

Effective date: 20220329

Owner name: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.), TEXAS

Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061753/0001

Effective date: 20220329