Application-aware and remote single instance data management
AssigneeCommvault Systems, Inc.
InventorParag Gokhale
Life of this patent
Estimating the term…
Abstract
A method and system for reducing storage requirements and speeding up storage operations by reducing the storage of redundant data includes receiving a request that identifies one or more files or data objects to which to apply a storage operation. For each file or data object, the storage system determines if the file or data object contains data that matches another file or data object to which the storage operation was previously applied, based on awareness of the application that created the data object. If the data objects do not match, then the storage system performs the storage operation in a usual manner. However, if the data objects do match, then the storage system may avoid performing the storage operation with respect to the particular file or data object.
Claims20
A system for copying files or data objects therein from a computer system at a first location to a second location, including single-instancing the data objects with a plurality of differing associated metadata, the system comprising:
- a processor;
- and
- multiple hardware components, including:
- a storage operation manager component coupled to the processor and configured to receive a request to copy a file from a computer system at a first location to a second location;
- an application data extraction component at the first location configured to determine that the file comprises a plurality of data objects, and further configured to extract the plurality of data objects from the file;
- a single instance database component at the first location configured to, for each data object in the plurality of data objects:
- extract metadata associated with the data object,
- query the second location to determine whether the data object is already stored at the second location, wherein the query includes the extracted metadata, and
- receive a response from the second location that indicates whether the data object is already stored at the second location, wherein the response is based on determining at the second location whether the extracted metadata matches metadata from any files or data objects stored at the second location,
- when the data object is not already stored at the second location, copy the data object from a file cache component at the first location to the second location, and
- when the data object is already stored at the second location and the extracted metadata does not match metadata stored at the second location,
- (a) single-instance the data object at the second location by declining to copy the data object thereto from the file cache component at the first location, and
- (b) copy the extracted metadata to the second location and associate the extracted metadata with the already-stored data object at the second location, thereby storing for a single stored instance of the data object at the second location at least a first metadata version and a second metadata version that is different from the first metadata version.
A non-transitory computer-readable medium encoded with instructions for controlling a computer system to transfer files or data objects therein from a source location to a target location, by a method comprising:
- receiving a request to transfer a file from a computer system at a source location to a target location, wherein the target location includes a single instance database;
- determining by an application data extraction component at the source location that the file comprises a plurality of data objects;
- extracting the plurality of data objects from the file by the application data extraction component, wherein each data object receives a substantially unique identifier;
- querying the single instance database to determine whether (a) each of the plurality of data objects from the file matches any data object already stored by the single instance database and (b) metadata extracted from each of the plurality of data objects from the file matches metadata associated with any data object already stored by the single instance database;
- receiving a determination from the single instance database as to whether each of the plurality of data objects from the file matches any data object already stored by the single instance database;
- when a given data object of the plurality of data objects from the file does not match any data object already stored at the target location, storing the given data object from the computer system at the source location to the single instance database at the target location;
- receiving a determination from the single instance database as to whether extracted metadata for a given data object of the plurality of data objects from the file matches any metadata associated with any data object stored by the single instance database;
- and
- when a given data object of the plurality of data objects from the file is already stored by the single instance database and the extracted metadata does not match metadata associated with the given data object that is already stored:
- (a) declining to store the given data object from the computer system to the single instance database at the target location, and (b) storing metadata extracted for the given data object from the computer system to the single instance database at the target location and associating the metadata extracted for the given data object with the given data object that is already stored, thereby storing for a single stored instance of the given data object at the single instance database at least a first metadata version and a second metadata version that is different from the first metadata version.
A method for transferring files from a computer system at a source location to a target location, the method comprising:
- receiving a request to transfer a file from a computer system at a source location to a target location, wherein the target location includes a single instance database;
- determining by an application data extraction component at the source location that the file comprises a plurality of data objects;
- extracting the plurality of data objects from the file by the application data extraction component, wherein each data object receives a substantially unique identifier;
- querying the single instance database to determine whether (a) each of the plurality of data objects from the file matches any data object already stored by the single instance database and (b) metadata extracted from each of the plurality of data objects from the file matches metadata associated with any data object already stored by the single instance database;
- receiving a determination from the single instance database as to whether each of the plurality of data objects from the file matches any data object already stored by the single instance database;
- when a given data object of the plurality of data objects from the file does not match any data object already stored at the target location, storing the given data object from the computer system at the source location to the single instance database at the target location;
- receiving a determination from the single instance database as to whether extracted metadata for a given data object of the plurality of data objects from the file matches any metadata associated with any data object stored by the single instance database;
- and
- when a given data object of the plurality of data objects from the file is already stored by the single instance database and the extracted metadata does not match metadata associated with the given data object that is already stored:
- (a) declining to store the given data object from the computer system to the single instance database at the target location, and (b) storing metadata extracted for the given data object from the computer system to the single instance database at the target location and associating the metadata extracted for the given data object with the given data object that is already stored, thereby storing for a single stored instance of the given data object at the single instance database at least a first metadata version and a second metadata version that is different from the first metadata version.
Dependencies are inferred from the claim text.