US20120271793A1 - Application-aware and remote single instance data management - Google Patents
Application-aware and remote single instance data management Download PDFInfo
- Publication number
- US20120271793A1 US20120271793A1 US13/532,877 US201213532877A US2012271793A1 US 20120271793 A1 US20120271793 A1 US 20120271793A1 US 201213532877 A US201213532877 A US 201213532877A US 2012271793 A1 US2012271793 A1 US 2012271793A1
- Authority
- US
- United States
- Prior art keywords
- data
- file
- application
- data object
- instance
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
Definitions
- Computer systems contain large amounts of information. This information includes personal information, such as financial information, customer/client/patient contact information, audio/visual information, and much more. This information also includes information related to the correct operation of the computer system, such as operating system files, application files, user settings, and so on. With the increased reliance on computer systems to store critical information, the importance of protecting information has grown. Traditional storage systems receive an identification of a file to protect, then create one or more secondary copies, such as backup files, containing the contents of the file. These secondary copies can then later be used to restore the original data should anything happen to the original data.
- protecting information is generally part of a routine process that is performed for many computer systems within an organization.
- a company might back up critical computing systems related to e-commerce such as databases, file servers, web servers, and so on as part of a daily, weekly, or monthly maintenance schedule.
- the company may also protect computing systems used by each of its employees, such as those used by an accounting department, marketing department, engineering department, and so forth.
- each computer system contains certain unique information, many systems may contain very similar information.
- a computing system used by a marketing employee and a computing system used by an engineering employee will generally contain unique information created by each employee in the course of their work, both computing systems will likely have the same operating system installed, with thousands of identical or similar files used by the operating system.
- both computing systems will likely have at least some similar application programs installed, such as a word processor, spreadsheet, Internet browser, and so on.
- Both systems may also have similar corporate information.
- each employee may have an electronic copy of an employee manual distributed by the company.
- Information other than files may also be identical or similar between systems.
- user settings and preferences may have similar default values on each system and application programs may contain similar templates on each system that are stored as application-specific information.
- several employees may have received a copy of the same email, and the email may be stored in each employee's electronic mailbox.
- Single instancing in a data management system is the process of attempting to store only a single instance of each file.
- Some prior systems permit data de-duplication, or single instancing, at a file level or at a block level, but such systems are unable to determine similar blocks of data within a given application.
- Data objects are often stored in large, monolithic files that are intended to be read only by the application that created them.
- a Microsoft Exchange email server stores email messages in one or more large data files that typically hold thousands of different users' mailboxes.
- a database server often stores tables, forms, reports, and other data objects in one or two large data files that provide persistence for the entire database.
- typical data management systems are only able to perform data management operations on the large data file, rather than the data objects themselves.
- a given electronic mail application may generate multiple email messages that all differ, but which all contain the same attachment. Prior systems may not be able to differentiate these messages, and thus each would be stored with the attachment. Further, if two files had different properties or metadata, such prior systems would store both files, even though the data they contain are identical and differ only by their metadata.
- FIG. 1 is a block diagram that illustrates components of a single instancing system in accordance with one embodiment of the invention.
- FIG. 2 is a block diagram that illustrates an example data file containing data objects.
- FIG. 3 is a block diagram that illustrates the flow of data during a storage operation, in one embodiment.
- FIG. 4 is a flow diagram that illustrates processing of a storage operation manager component of the single instancing system, in one embodiment.
- FIG. 5 is a flow diagram that illustrates processing of the single instancing system to determine whether a data object is unique, in one embodiment.
- FIG. 6 is a flow diagram that illustrates processing of the storage operation manager component to restore data, in one embodiment.
- FIG. 7 is a block diagram that illustrates an environment in which the single instancing system may be configured to operate.
- FIG. 8 is a flow diagram that illustrates copying a remote file or data object in the environment of FIG. 7
- FIG. 9 is a block diagram that illustrates another environment in which the single instancing system may be configured to operate.
- FIG. 10 is a flow diagram that illustrates copying a remote file or data object in the environment of FIG. 9 .
- FIG. 11 is a block diagram that illustrates another environment in which the single instancing system may be configured to operate.
- FIG. 12 is a flow diagram that illustrates copying a remote file or data object in the environment of FIG. 11 .
- a single instancing system that more intelligently identifies multiple copies of the same data object.
- the single instancing system recognizes documents, files, or data objects produced by multiple different applications, and can parse through and identify those data objects common among data blocks within a file, and thereby only copy a single instance of those common data objects.
- the single instancing system parses the proprietary data formats of many applications, and can identify data objects related to the application, even when those data objects are stored in large, monolithic data files.
- the single instancing system can store a single instance of the data object, but retain all differing versions of the metadata (for example, such as by retaining the different user permissions).
- the single instancing system returns appropriate metadata based on the identity of the client or other information.
- the single instancing system may perform backup of data to a local, single instance database or data store at each remote location. Then, the single instancing system may use continuous data replication (CDR) to copy the data contained in each local data store to a central location.
- CDR continuous data replication
- a single instance database can be at a remote location, and the single instancing system only transfers de-duplicated data to the central location.
- the single instance database may be located at a central location, and the remote locations may send queries to determine what new or unique data is to be transferred from the remote locations.
- each client computer at a remote location may query a central single instance database directly, and only transfer unique data to the local store or central location.
- FIG. 1 may be of conventional design, and need not be described in further detail herein to make and use the invention, because such blocks will be understood by those skilled in the relevant art.
- One skilled in the relevant art can readily make any modifications necessary to the blocks in FIG. 1 (or other embodiments or figures) based on the detailed description provided herein.
- FIG. 1 is a block diagram that illustrates components of a single instancing system 100 , in one embodiment.
- the single instancing system 100 contains a file identification component 110 , an identifier generation component 120 , an identifier comparison component 130 , a single instance database component 140 , a restored file cache component 150 , a storage operation manager component 160 , an application data extraction component 170 , and a remote synchronization component 180 .
- the file identification component 110 identifies files or data objects, such as in response to a storage operation.
- a file or a data object refers to any collection or grouping of bytes of data that can be viewed as one or more logical units.
- a file could be a computer file on a file system (for example, a word processing file, a spreadsheet file, a database file, etc.)
- a data object could be within a file (for example, an embedded object within a word processing file, a cell or a row in a spreadsheet file, a table or an entry in a table in a database file, etc.).
- the file identification component 110 may retrieve additional information related to a file or data object, such as its size, that is used by the single instancing system 100 to uniquely identify the data object.
- the application data extraction component 170 determines whether the file contains additional data objects.
- the file may be an application-specific container (for example, a database file), that stores data objects such as documents, email messages, and other collections of data.
- the application data extraction component 170 would determine that each of the data objects within the application-specific container should be identified.
- the identifier generation component 120 generates a substantially unique identifier of a file or data object that is used to determine if another file or data object already stored by the single instancing system matches the file or data object used to generate the substantially unique identifier.
- the identifier comparison component 130 performs comparisons of identifiers of various files or data objects to determine if the files or data objects contain similar data (for example, the identifier comparison component 130 can compare substantially unique identifiers of two or more files or data objects to determine if the files or data objects contain similar data).
- the single instance database component 140 is a data store that contains entries identifying files or data objects managed by the single instancing system 100 , and may also contain supplemental information associated with files or data objects, such as a substantially unique identifier, a path, a location, a reference count, a file size or other information.
- the restored file cache component 150 provides an intermediate location that may be used by the single instancing system 100 during a restore operation to hold instances of files or data objects for which additional references may need to be restored. For example, during a restore operation, the single instancing system may restore files or data objects to the cache and then transfer the files or data objects to a target location of the restore operation.
- the single instancing system 100 may consult the restored file cache component 150 or an index. The single instancing system 100 does so to determine if the file or data object is present in the cache before attempting to restore the file or data object from another location, such as from secondary storage (for example, a tape).
- the storage operation manager component 160 coordinates storage operations and invokes the other components of the single instancing system 100 as needed to perform requested storage operations.
- the storage operation manager component 160 may include an application used by an administrator to manage the single instancing system 100 .
- the storage operation manager component 160 may also maintain indexes of the data objects and each of the references to those data objects through the single instancing system 100 , as well as pending operations on the data objects that are part of a data management plan of an organization implementing the single instancing system 100 .
- the remote synchronization component 180 performs single instancing between a remote location and a central location, such as between an enterprise or organization having a headquarters or central office and one or more satellite offices or remote offices, or vice-versa.
- the remote synchronization component 180 uses the techniques described in further detail herein to determine whether a file or data object should be copied from the remote location to the central location.
- FIG. 1 and the discussion herein provides a brief, general description of a suitable computing environment in which the invention can be implemented.
- aspects of the invention are described in the general context of computer-executable instructions, such as routines executed by a general-purpose computer, e.g., a server computer, wireless device or personal computer.
- a general-purpose computer e.g., a server computer, wireless device or personal computer.
- PDAs personal digital assistants
- wearable computers all manner of cellular or mobile phones, multi-processor systems, microprocessor-based or programmable consumer electronics, set-top boxes, network PCs, mini-computers, mainframe computers, and the like.
- the terms “computer,” “host,” and “host computer” are generally used interchangeably herein, and refer to any of the above devices and systems, as well as any data processor.
- aspects of the invention can be embodied in a special purpose computer or data processor that is specifically programmed, configured, or constructed to perform one or more of the computer-executable instructions explained in detail herein.
- aspects of the invention can also be practiced in distributed computing environments where tasks or modules are performed by remote processing devices, which are linked through a communications network, such as a Local Area Network (LAN), Wide Area Network (WAN), or the Internet.
- LAN Local Area Network
- WAN Wide Area Network
- program modules may be located in both local and remote memory storage devices.
- aspects of the invention may be stored or distributed on computer-readable media, including magnetically or optically readable computer discs, hard-wired or preprogrammed chips (e.g., EEPROM semiconductor chips), nanotechnology memory, biological memory, or other data storage media.
- computer implemented instructions, data structures, screen displays, and other data under aspects of the invention may be distributed over the Internet or over other networks (including wireless networks), on a propagated signal on a propagation medium (e.g., an electromagnetic wave(s), a sound wave, etc.) over a period of time, or they may be provided on any analog or digital network (packet switched, circuit switched, or other scheme).
- portions of the invention may reside on a server computer, while corresponding portions reside on a client computer such as a mobile or portable device, and thus, while certain hardware platforms are described herein, aspects of the invention are equally applicable to nodes on a network.
- Single instancing Reducing or eliminating redundant instances of data resulting from a storage operation is sometimes referred to here as “single instancing,” because what would traditionally be stored as many instances of the same data is reduced to as few as one. Redundant instances may be detected and reduced at several locations or times throughout the operation of the system that will now be described. These embodiments are provided only as examples, and are not intended to be an exhaustive list of the way in which the system can be implemented.
- the single instancing system performs single instancing of data at a computing system that contains or originally generated the data, such as a client computing system.
- a client computing system that is providing data that is the target of a storage operation may receive a request from the single instancing system to provide a substantially unique identifier (for example, a hash value, message digest, checksum, digital fingerprint, digital signature or other sequence of bytes that substantially uniquely identifies the file or data object) of each file or data object included in the storage operation.
- a substantially unique identifier for example, a hash value, message digest, checksum, digital fingerprint, digital signature or other sequence of bytes that substantially uniquely identifies the file or data object.
- the word “substantially” is used to modify the term “unique identifier” because algorithms used to produce hash values may result in collisions, where two different files or data objects result in the same hash value.
- the client computing system may itself generate substantially unique identifiers for each file or data object that is stored on the client computing system on an ongoing or other basis.
- the single instancing system determines if another file or data object exists with a substantially unique identifier matching that of the one provided by the client computing system. If the single instancing system is already aware of a similar file or data object, then the client computing system does not need to send the redundant file or data object to a secondary storage location or destination.
- the single instancing system may also operate at a lower level of granularity by enumerating data objects within files of understood types.
- the single instancing system may read and parse data files from email servers (for example, Microsoft® Exchange email servers, Sendmail email servers, etc.), database servers (for example, Microsoft® SQL Server database servers, Oracle database servers, etc.), web servers (for example, Microsoft® IIS web servers, Apache web servers, etc.), word processing applications (for example, Microsoft® Word, Corel WordPerfect, etc.), spreadsheet applications (for example, Microsoft® Excel, Apple Numbers, etc.), and many others and enumerate the data objects within these files.
- email servers for example, Microsoft® Exchange email servers, Sendmail email servers, etc.
- database servers for example, Microsoft® SQL Server database servers, Oracle database servers, etc.
- web servers for example, Microsoft® IIS web servers, Apache web servers, etc.
- word processing applications for example, Microsoft® Word, Corel WordPerfect, etc.
- spreadsheet applications for example, Microsoft® Excel,
- the single instancing system may then generate a substantially unique identifier for each data object within the file, rather than each file, and store this substantially unique identifier in the single instance database component 140 or other index.
- the single instancing system may also store information about the associations between the data objects and their containing files. Therefore, the single instancing system enables data storage operations such as searching, backing up, restoring, replicating, copying and so forth to be performed at the data object level. Enabling data storage operations at the data object level enables the single instancing system to store data using much less space than traditional single instancing storage systems, because files containing data objects are likely to have redundant data objects, of which only one instance or copy need be stored.
- the data of two email servers that each contain similar email messages in a large data file can be stored in much less space than if the entire data files of each email server were to be stored, because the data files are likely to contain redundant email messages, of which only one instance or copy need be stored. This is because traditional single instancing systems would determine that the two data files differed and would store both data files, thereby consuming more storage space.
- FIG. 2 illustrates an example data file produced by an email server.
- the data file 210 holds containers 220 of data related to each user that has a mailbox on the email server.
- Each container 220 holds email messages 230 for a specific user, and each email message 230 may contain one or more attachments 240 .
- Email messages are often forwarded to many users, and the users may be assigned to the same or different email servers.
- the single instancing system may know or understand the structure of the data file 210 before performing any single instancing operations. For example, the single instancing system may identify the type of the data file based on the data file's filename extension.
- the identified data file type may be used to identify a format or specification that describes the structure (e.g., at which bytes specific data is stored, its particular encoding, etc.) of the data file. This knowledge of the structure enables the application data extraction component 170 to parse the data file 210 , identify containers 220 , and extract email messages 230 or attachments 240 from each container 220 .
- the data file 210 may contain metadata or other information that describes its data structure.
- the application data extraction component 170 can obtain this metadata or other information, which enables it to parse the data file 210 , identify containers 220 , and extract email messages 230 or attachments 240 from each container 220 .
- the single instancing system can then store only a single instance or copy of the extracted email messages 230 or attachments 240 that are similar.
- the single instancing system provides substantial benefit by identifying the redundancy of data objects stored within the data files and providing single instancing of the individual data objects.
- the single instancing system or another system performs additional operations on the data after single instancing has occurred. For example, another system may encrypt backup data that is being stored offsite to prevent unauthorized parties from accessing the data. Another system may also compress the data to reduce its size. The single instancing system enables these additional operations to be performed more efficiently, because there is less data on which to perform these additional operations after redundant data has been reduced or eliminated.
- a single instancing system employs a single storage policy or data store.
- a storage policy is generally a virtual container with preferences that contains a set of rules for data retention of data objects associated with the storage policy.
- the single instancing system in this example stores single instance data in a single location, and in a way to ensure that any relevant, unique data is retained, but only a single instance of common data is copied to the data store.
- a single instancing agent creates, updates, or maintains a single instance database or index that represents or stores the substantially unique identifiers of each file or data object.
- the single instance database or index is associated with a single storage policy that is separate from one or more data stores that store the data copies.
- a single storage policy may represent a storage location that includes existing data, as well as new data that has been compared to the existing data and identified as being unique.
- FIG. 3 is a block diagram that illustrates the flow of data during a storage operation, in one embodiment.
- Data is initially stored on a server 310 or other source of data.
- a storage policy 320 or other configuration information specifies a storage operation to be performed on the data.
- the storage policy 320 may specify that the data stored on the server 310 is to be backed up daily to tape.
- the application of the storage policy 320 causes the backup to occur, resulting in the creation of the data copy 330 .
- the data copy 330 may contain many redundant files or other data objects.
- a media agent 340 manages the data copy 330 , and creates a single instance copy 350 .
- the single instance copy 350 is a copy in which at least some of the redundant files or data objects have been removed.
- the media agent 340 uses the methods described herein to eliminate redundant instances of files or data objects contained in the data copy 330 , and to produce the single instance copy 350 .
- the single instance copy 350 may then be stored on tape or other media.
- the single instancing system may employ one or more specialized single instancing agents.
- the single instancing system may employ application agents associated with types of applications, metadata agents for analyzing metadata, encryption/compression agents, and so forth.
- application agents associated with types of applications
- metadata agents for analyzing metadata
- encryption/compression agents and so forth.
- a single agent employing all of the functions described herein may be employed. These agents operate on all types of data, including documents, files, data objects, or any data blocks.
- An application agent associated with each type of application may analyze incoming or previously stored data to identify redundant data. For example, an email agent analyzes incoming or previously stored emails, including attachments to emails, to identify duplicate attachments. The email agent provides a first instance of an email with an attachment to the storage policy, but for subsequent emails having the same attachment, the email agent strips them of their attachments and stores them with a stub or pointer to the previously stored attachment.
- a metadata agent analyzes files or data objects for similarities in data, but differences in metadata that is associated with the files or data objects. For example, two files may have the same data, but separate permissions, properties, access control lists (ACLs), or other metadata.
- the metadata agent ascertains that the two files contain the same data but have differing metadata, and thus stores only one instance of the file, but two or more instances of the associated metadata, as well as information about the associations between the metadata, the providers of the files and the files.
- the single instancing system provides the file to the client with the appropriate instance of the metadata based on the identity of the requestor.
- a data file may be stored on a user computer with permissions restricting access to the data file to the user of that computer, and the same data file may be stored on a second computer with permissions restricting access to the data file to an administrator of the single instancing system.
- the user will still be able to access the data file from the single instance store even though the user is not an administrator of the single instancing system.
- the single instancing system will use the metadata from the file from the user's computer to ascertain that the user has the permissions needed to access the file, and permit the requested access to the user.
- two files may have the same data, but different properties, such as the creation date or access date. The metadata agent ascertains that the two files contain the same content but have different properties.
- the metadata agent thus stores only one instance of the file, but two or more instances of the properties, as well as information about the associations between the metadata, the providers of the files and the files. Because an association between the provider of the file and the file is stored, when a client requests the file, the single instancing system can provide the file with the proper metadata to the client.
- the single instancing system can single instance both non-encrypted and encrypted data received from client computers.
- Each client computer may generate a substantially unique identifier for the file or data object before the file or data object is encrypted. The client computer does this before encryption because an encrypted file or data object would almost certainly result in a substantially unique identifier that is different from a substantially unique identifier generated from the file or data object before encryption.
- a client computer could generate a substantially unique identifier for a file or data object after the file or data object is encrypted.
- An encryption agent may compare the substantially unique identifiers to identify identical files or data objects, and thus only store one instance of them.
- the single instancing system determines whether to store an instance of an encrypted or unencrypted file (or data object, but file is used in this and the following paragraphs discussing encryption for brevity) based on whether the files are encrypted using the same encryption scheme, whether the encrypted files can be decrypted by the single instancing system, and/or other factors.
- the single instancing system has previously stored an instance of a file that is encrypted and a request is made to store another instance of the file that is also encrypted; 2) where the single instancing system has previously stored an instance of a file that is unencrypted and a request is made to store another instance of the file that is encrypted; and 3) where the single instancing system has previously stored an instance of a file that is encrypted and a request is made to store another instance of the file that is unencrypted.
- Metadata associated with the file is typically not encrypted.
- information about the encryption scheme may be provided as metadata to the single instancing system.
- the single instancing system can avoid storing the second instance of the file. If the two files are encrypted using different encryption schemes, the single instancing system stores the second instance of the file. This is because the single instancing system has to be able to provide the second instance of the file to the requestor when requested. Alternatively, if both encryption schemes are known to the single instancing system (for example, using two different public keys of the single instancing system), the single instancing system can avoid storing the file. This is because the single instancing system can decrypt the first instance of the file and re-encrypt it using the encryption scheme used to encrypt the second instance of the file.
- this decryption and re-encryption may be too computationally expensive, depending upon various factors (for example, the time needed to decrypt and re-encrypt the file, the algorithm, etc.), and so the single instancing system may simply store the second instance of the file.
- the single instancing system can avoid storing the second instance of the file. This is because, when the provider of the second encrypted instance requests the file, the single instancing system can retrieve the first unencrypted instance, encrypt it using the known encryption scheme and provide it to the requestor. However, if such encryption is too computationally expensive, the single instancing system may simply store the second encrypted instance of the file. If the second instance of the file is encrypted using an encryption scheme that is not known to the single instancing system, the single instancing system stores the second instance of the file. This is because the single instancing system has to be able to provide the second encrypted instance of the file to the requestor when requested.
- an encryption scheme that is known to the single instancing system for example, using a public key of the single instancing system
- the single instancing system can avoid storing the second unencrypted instance of the file. This is because, when the provider of the second unencrypted instance requests the file, the single instancing system can retrieve the first encrypted instance, decrypt it, and provide it to the requestor. However, if such decryption is too computationally expensive, the single instancing system may simply store the second unencrypted instance of the file. If the first instance of the file is encrypted in such a way that it cannot be decrypted by the single instancing system, the single instancing system stores the second unencrypted instance of the file. This is because the single instancing system has to be able to provide the second unencrypted instance of the file to the requestor.
- the single instancing system may also handle compressed files.
- Each client computer may generate a substantially unique identifier for the file or data object before the file or data object is compressed. The client computer does this before compression because a compressed file or data object would almost certainly result in a substantially unique identifier that is different from a substantially unique identifier generated from the file or data object before compression.
- a client computer could generate a substantially unique identifier for a file or data object after the file or data object is compressed.
- a compression agent may compare the substantially unique identifiers to identify identical files or data objects, and thus only store one of them.
- the single instancing system determines whether to store an instance of a compressed or uncompressed file (or data object, but file is used in this and the following paragraphs discussing compression for brevity) based on whether the files are compressed using the same compression scheme, whether the compressed files can be decompressed by the single instancing system, and/or other factors.
- the single instancing system can avoid storing the second instance of the file. Otherwise, the single instancing system stores the second instance of the file. However, if the second instance of the file is compressed using a different compression scheme, the single instancing system may avoid storing the second instance of the file, if the single instancing system is able to decompress the first instance of the file and recompress the first instance of the file using the different compression scheme. If the single instancing system is not able to do so, the single instancing system stores the second instance of the file.
- this decompress and recompression may be too computationally expensive, depending upon various factors (for example, the time needed to decompress and recompress the file, the algorithm, etc.), and so the single instancing system may simply store the second instance of the file.
- the single instancing system can avoid storing the second instance of the file. This is because, when the provider of the second compressed instance requests the file, the single instancing system can retrieve the first uncompressed instance, compress it using the known compression scheme and provide it to the requestor. However, if such compression is too computationally expensive, the single instancing system may simply store the second compressed instance of the file. If the second instance of the file is compressed using a compression scheme that is not known to the single instancing system, the single instancing system stores the second instance of the file. This is because the single instancing system has to be able to provide the second compressed instance of the file to the requestor when requested.
- a compression scheme that is known to the single instancing system for example, using a known compression algorithm
- the single instancing system can avoid storing the second uncompressed instance of the file. This is because, when the provider of the second uncompressed instance requests the file, the single instancing system can retrieve the first compressed instance, decompress it, and provide it to the requestor. However, if such decompression is too computationally expensive, the single instancing system may simply store the second uncompressed instance of the file. If the first instance of the file is compressed in such that it cannot be decompressed by the single instancing system, the single instancing system stores the second uncompressed instance of the file. This is because the single instancing system has to be able to provide the second uncompressed instance of the file to the requestor.
- the single instancing system may be configurable to reduce processing time, transmission bandwidth, etc. with small files. For example, an administrator-configurable value would allow the administrator to configure the single instancing system to ignore files or data objects below a given size. For example, any file or data object below a certain threshold (for example, one kilobyte) may simply be stored, and a substantially unique identifier would not determined for it. Any file or data object greater than the threshold (for example, one kilobyte) would then be single instanced. An administrator may adjust this threshold up or down. As another example, the single instancing system may allow the administrator to configure it to always single instance files or data objects of a certain type or category (for example, executable files or modules may always be single instanced if they rarely change). Alternatively, the single instancing system may allow the administrator to never single instance files or data objects of a certain type or category (for example, log files may never be single instanced, because they typically change quite frequently).
- an administrator-configurable value would allow the administrator to configure
- the single instancing system may associate timestamps with the files or data objects or with their generated substantially unique identifiers.
- a timestamp may indicate the time at which the file or data object was created, last accessed or modified, or the time at which the single instancing system generated the substantially unique identifier for it, or the time at which the file or data object was stored by the single instancing system.
- the single instancing system may do so to determine whether a file or data object is substantially newer than another file or data object already stored in the single instancing system. For example, the two files or data objects may have the same substantially unique identifier, meaning that they contain the same data.
- the single instancing system may compare the timestamp of the first, previously stored, file or data object with that of the second file or data object.
- the single instancing system may nonetheless store the second file or data object, even though it is duplicative of a file or data object that is already stored.
- substantially newer means that the age (as determined by its timestamp) of the second file or data object is less than the age (as determined by its timestamp) of the first, previously stored, file or data object by a certain amount or more (configurable by an administrator).
- the single instancing system could then prune off older versions as the data ages and is migrated to other storage, such as longer-term storage. For example, a first file or data object could have a timestamp indicating that its age is ten months. A second file or data object could have a timestamp indicating that its age is three months.
- the second file or data object is substantially newer than the first file or data object, because the age of the second file or data object (three months) is less than the age of the first file or data object (then months) by more than the configured amount (six months). Therefore, the single instancing system would store the second file or data object, and the first file or data object could be migrated to longer-term storage, such as to tape.
- the single instancing system may be employed in any variety of architectures. For example, it may be employed with heterogeneous storage hardware, and thus is not reliant on a specific hardware platform to perform all of the single instancing functions. Instead, multiple, different data storage platforms may be employed for storing data under the storage policies.
- the architecture may be tiered or federated wherein one server manages multiple cells (and each of those cells in turn may manage lower tier cells).
- the cells may be arranged in hierarchies or organized in configurations such as those described in U.S. patent application Ser. No. 12/060,186, filed Mar. 31, 2008, entitled Systems and Methods of Hierarchical Storage Management, Such as Global Management of Storage Operations (Attorney Docket No. 60692.8036.U502), the entirety of which is herein incorporated by reference.
- the single instancing system may employ many other functions. For example, it may employ content indexing agents to index the content all data blocks. These content indexes may then be searched to permit users to readily locate desired data objects. Further details regarding content indexing may be found in U.S. patent application Ser. No. 11/694,869, filed Mar. 30, 2007, entitled Method and System for Offline Indexing of Content and Classifying Stored Data (Attorney Docket No. 60692.8046.US00), the entirety of which is herein incorporated by reference.
- the single instancing system determines if two files or data objects are similar by performing a binary comparison. For example, a first file or data object can be compared byte by byte with a second file or data object, or portions of the first file or data object can be compared with portions of the second file or data object. If each byte of the compared data in each file or data object matches, then the two files or data objects are identical and therefore similar. Otherwise, the two files or data objects do not match and are not treated as similar.
- the single instancing system determines if two files or data objects are similar by creating a digest or fingerprint of the data contained in each file or data object. For example, as storage operations are performed, the single instancing system may perform a cryptographic hash on each file or data object to create a digest of the file or data object. The single instancing system compares the digest of the file or data object with stored digests created for other files or data objects. If the digests of two files or data objects match, then the single instancing system may consider the files or data objects to be identical. The single instancing system can use any suitable hashing algorithm, such as SHA512. For applications that create data files having embedded data objects, the single instancing system identifies the embedded data objects, and determines the similarity of each data object with other data objects found either within the same data file or in other data files or stores managed by the single instancing system.
- SHA512 hashing algorithm
- FIGS. 4-6 are representative flow diagrams that depict processes used in some embodiments. These flow diagrams do not show all functions or exchanges of data, but instead they provide an understanding of commands and data exchanged under the single instancing system. Those skilled in the relevant art will recognize that some functions or exchange of commands and data may be repeated, varied, omitted, or supplemented, and other (less important) aspects not shown may be readily implemented.
- FIG. 4 is a flow diagram that illustrates the processing of the storage operation manager component 160 of the single instancing system in one embodiment.
- the storage operation manager component 160 is invoked when a storage operation that creates a copy of a file is requested.
- the storage operation manager component 160 identifies data objects within the file to be copied, such as by using information about the application that created the file and the format used by the application to store data objects.
- the application may provide an object model that the storage operation manager component 160 can invoke to enumerate objects within the file, or the storage operation manager component 160 may understand the format used by the application for storing objects in the file.
- An application author, manufacturer or third party may also provide a module for parsing the application file that the storage operation manager component 160 can invoke. In this way, the application author, manufacturer or third party can provide access to the data objects within the file without exposing the actual format used to third parties.
- the storage operation manager component 160 selects the first identified data object.
- the storage operation manager component 160 determines whether the data object is unique, or if the storage manager component has previously copied the data object. For example, the storage operation manager component 160 may compute a digest in the manner described herein, and compare the digest to the digests of previously copied data objects to determine if the data object is an instance of a previously copied data object.
- decision step 430 if the data object is unique, then the storage operation manager component 160 continues at step 450 , else the storage operation manager component 160 continues at step 440 .
- step 440 the storage operation manager component 160 adds a reference (e.g., to an index of data managed by the single instancing system, such as by incrementing a reference count in the index) to the already backed up instance of the data object, and then continues to step 460 .
- step 450 the component stores the unique data object.
- decision step 460 if the storage operation manager component 160 identified more data objects within the file, then the storage operation manager component 160 loops to step 415 to select the next data object, else the storage operation manager component 160 completes.
- FIG. 5 is a flow diagram that illustrates the processing of the single instancing system to determine whether a file or data object is unique, in one embodiment. These steps may be invoked by the storage operation component 160 , such as when performing a storage operation as described in FIG. 4 or at other times.
- the identifier generation component 120 generates a substantially unique identifier of the file or data object that is the target of the storage operation.
- the file identification component 110 gathers (for example, by querying the file system of a client) additional information about the file or data object, such as the file or data object's size, security information, or other attributes.
- the identifier comparison component 130 determines if the substantially unique identifier of the file or data object and any supplemental information matches that of any existing file or data object tracked by the single instance database component 140 .
- decision step 540 if the data objects match, then the single instancing system continues at step 550 , otherwise the single instancing system continues at step 570 .
- step 550 the single instancing system reports to the entity that invoked the storage operation manager component 160 that the file or data object is not unique.
- the single instancing system updates the substantially unique identifier reference count tracked by the single instance database component 140 and then concludes.
- step 570 the single instancing system reports to the entity that invoked the storage operation manager component 160 that the file or data object is unique.
- step 580 the single instancing system adds the file or data object's substantially unique identifier and other information to the list of files and data objects tracked by the single instance database component 140 .
- FIG. 6 is a flow diagram that illustrates the processing of the storage operation manager component 160 to restore data, in one embodiment.
- the single instancing system invokes the storage operation manager component 160 when it receives a request, for example, to restore data.
- the storage operation manager component 160 receives a request to restore data.
- the storage operation manager component 160 selects the next file or data object referred to by the request. For example, the request may identify 10 files or data objects, and the storage operation manager component 160 selects the first file or data object on which to perform the following steps.
- step 630 if the selected file or data object is a reference to an instance of a file or data object stored somewhere else, then the storage operation manager component 160 continues at step 640 , else the storage operation manager component 160 continues at step 650 .
- step 640 the storage operation manager component 160 locates the referenced instance of the file or data object and continues to step 655 .
- step 655 the storage operation manager component 160 restores the file or data object from the referenced instance of the file or data object.
- step 650 the storage operation manager component 160 restores the file or data object directly from the file or data object.
- decision step 660 if there are more files or data objects referred to by the received request, then the storage operation manager component 160 loops to block 620 to select the next file or data object on which to perform these steps, else the storage operation manager component 160 completes.
- a single instancing database is maintained at a first location and at each remote location (e.g., a second location, a third location, etc.). De-duplicated information in the single instancing database at each remote location is transferred to the single instancing database at the first location.
- a single instancing database is maintained at a first location, and a computing system at each remote location (e.g., a second location, a third location, etc.) sends queries to the single instancing database at the first location to identify what data to transfer to the single instancing database.
- each computing system at each remote location e.g., a second location, a third location, etc. queries a single instancing database at a first location before transferring any data to the single instancing database.
- the single instancing system described herein may be used in a wide variety of configurations and is not limited to a specific geographical positioning. Furthermore, the single instancing system described herein is not limited to the hub-and-spoke model implied by the terminology used to discuss these configurations.
- a multi-tier hierarchical configuration could be employed, in which computing systems at the leaf nodes transfer data to computing systems at their respective parent nodes, which transfer data to computing systems at their parent nodes, and so on, up to the computing system at the top-most node of the hierarchy.
- a mesh configuration could be employed, in which a first computing system in the mesh configuration transfers data to a second computing system, the data to be ultimately transferred to a third computing system.
- CDR also called continuous data protection or continuous backup
- CDR refers to copying computer data by automatically saving a copy of every change made to that data, essentially capturing every version of the data that the user saves. It allows an administrator (or other user) to restore data to any point in time.
- CDR-based solutions can provide fine granularities of restorable objects ranging from disk images to logical data objects such as files, email data files, email messages, and database files and logs.
- CDR differs from traditional backup or copy operation in that an administrator (or other user) does not have to specify the point in time to which the administrator would like to recover until the administrator is ready to perform a restore.
- Traditional backups or copy operations can only restore data to the point at which the backup or copy was made.
- CDR there are typically no backup or copy schedules. When data is written to disk, it can also be synchronously or asynchronously written to a second location, usually another computer over the network. In some situations, CDR will require less space on secondary storage media (usually disk) than traditional backup or copy operations.
- Most CDR solutions save byte- or block-level differences rather than file-level differences. This means that if one byte of a 100 GB file is changed, only the changed byte or block is backed up or copied. In contrast, traditional incremental and differential backups and copy operations generally make copies of entire files when those files change.
- FIG. 7 illustrates an environment according to the first example configuration.
- two remote offices 710 a and 710 b are connected to a home office 730 .
- FIG. 7 depicts two remote offices 710 , only a single remote office, or more than two remote offices, may be connected to the home office 730 .
- Each remote office includes its own single instance database 740 .
- remote office 710 a includes single instance database 740 a
- remote office 720 includes single instance database 740 b.
- Multiple client computing systems 760 a and 760 b at each remote office 710 provide data to the single instance database 740 at their respective locations.
- Clients 760 a are part of remote office 710 a, and store data in single instance database 740 a.
- Clients 760 b are part of remote office 710 b, and store data in single instance database 740 b.
- the clients 760 may be connected to their respective remote office 710 by way of a local area network (wired or wireless), with the remote offices 710 being connected to the home office 730 by a wide area network, or other network such as a public computer network (e.g., the Internet).
- a local area network wireless or wireless
- the remote offices 710 being connected to the home office 730 by a wide area network, or other network such as a public computer network (e.g., the Internet).
- a public computer network e.g., the Internet
- Each remote office 710 tracks incremental changes for its clients 760 , and then employs CDR to transmit those incremental changes to the home office 730 .
- the home office 730 may then in turn employ its own single instance database 790 to avoid any duplication between the remote offices 710 .
- clients 760 that run Microsoft Windows typically will each have a similar C: ⁇ Windows directory containing operating system files.
- Multiple client computing systems 760 will have stored a single copy of the C: ⁇ Windows directory at the remote single instance database 740 , which will then be replicated to the central data store at the home office 730 .
- the home office 730 will in turn store a single copy of the C: ⁇ Windows directory in the single instance database 790 .
- FIG. 8 is a flow diagram that illustrates copying a remote file or data object in the environment of FIG. 7 .
- the single instancing system receives a request to perform a storage operation.
- the request may be a routinely scheduled request to backup or copy the contents of a client computing system 760 .
- the single instancing system performs the following steps.
- the single instancing system copies the file or data object from the client computing system 760 to a single instance database 740 located at the remote office 710 .
- the single instance database 740 ensures that only one copy of each file or data object is stored.
- the single instance database 740 may create or have created a substantially unique identifier for each stored file or data object and create or have created a substantially unique identifier for each new file or data object to be stored. The single instance database 740 may then compare the substantially unique identifier of the new file or data object with that of each previously stored file or data object to determine whether the new file or data object is already stored. In some embodiments, the single instance database 740 may store metadata that is specific to some clients while only storing one instance of the file or data object itself.
- the client 760 copies data to a computing system that is geographically close, and then later the data from each client 760 can be copied to the home office 730 by copying the single instance or unique data from the single instance database 740 at the remote office 710 .
- computing systems that are geographically close refers to computing systems that may be in the same room, in the same building or on the same campus.
- Computing systems that are geographically remote refers to computing systems that are not geographically close.
- the single instancing system replicates the contents of the remote single instance database 740 to the home office 730 . This step can occur using CDR or other traditional methods of copying data. After step 830 , these steps conclude.
- each remote single instance database 740 may send identical files or data objects to the home office single instance database 790 (i.e., data that is unique as to each individual remote office 710 , but duplicative as to both remote offices 710 ). However, only one instance of each file or data object at the remote office 710 is stored by the home office single instance database 790 .
- FIG. 9 illustrates an environment according to the second example configuration.
- two remote offices 910 a and 910 b are connected to a single home office 930 .
- FIG. 9 depicts two remote offices 910 , only a single remote office, or more than two remote offices, may be connected to the home office 930 .
- Remote office 910 includes multiple client computing systems 960 a and a data store 940 a.
- Remote office 910 b includes multiple client computing systems 960 b and a data store 940 b.
- the home office 930 maintains a single instance database 990 .
- the remote office 910 generates a substantially unique identifier for each file or data object that is to be potentially stored.
- the remote office 910 may include a computing system (not shown in FIG. 9 ) that generates the substantially unique identifier for each file or data object that is to be potentially stored on behalf of clients 960 .
- the remote office 910 then transmits the substantially unique identifier to the home office 930 .
- the home office 930 checks the single instancing database 990 to determine whether the transmitted substantially unique identifier matches any existing substantially unique identifier in the single instance database 990 in order to determine whether the file or data object that is to be potentially stored is redundant.
- the home office 930 then sends a response back to the remote office 910 that indicates whether the file or data object that is to be potentially stored is unique.
- the remote office 910 stores the unique files or data objects locally in a data store 940 .
- the remote office 910 then employs CDR to incrementally transfer new changes or updates to the home office 930 .
- the single instancing system may employ various optimization techniques. For example, the remote office 910 may cache substantially unique identifiers and only transmit one instance of a substantially unique identifier to the home office 930 if it detects more than one instance of the same substantially unique identifier. After the single instancing system has made a request to the single instance database 990 to determine if a particular file or data object is unique, the remote office 910 may cache the response so that subsequent identical files or data objects do not generate a new request to the single instance database 990 . Rather, the single instancing system consults the cache first to determine if a previous request determined whether the file or data object is unique. If the cache responds that the file or data object is not unique, then the remote office 910 does not need to query the single instance database 990 to determine if the file or data object is unique.
- FIG. 10 is a flow diagram that illustrates copying a remote file or data object in the environment of FIG. 9 .
- the single instancing system receives a request to perform a storage operation. For each file or other data object involved in the request, the single instancing system performs the following steps.
- the single instancing system copies the file or data object to a data management server (not shown in FIG. 9 ) that caches files or data objects at the remote office 910 .
- the data management server in this method may contain duplicate files or data objects from many clients 960 . According to this method the data management server does not do single instancing of its own.
- step 1030 the single instancing system queries the single instance database 990 at the home office 930 to determine whether the single instance database 990 already has a copy of the file or data object.
- decision step 1040 if the file or data object is new to the single instance database 990 , then the single instancing system continues at step 1050 , else these steps conclude.
- step 1050 the single instancing system copies the new file or data object to the single instance database 990 . If there are duplicates of the file or data object, then later when the single instance database 990 is queried for the duplicate files or data objects, the single instance database 990 will indicate that the file or data object is not new and need not be copied. In this way, duplicate data is not sent to the home office 930 .
- step 1050 these steps conclude.
- This method differs from the method of FIG. 8 in that duplicate data may be stored at the remote office 910 , but duplicate data is not sent to the home office 930 .
- the method of FIG. 10 will send more queries to the home office 930 , but less data.
- FIG. 11 illustrates an environment according to the third example configuration.
- each remote client 1160 (as opposed to each remote office 1110 ) transmits a query with a substantially unique identifier to the home office 1130 .
- Each client 1160 may have generated the substantially unique identifier itself, or another computing system may generate them on behalf of the clients 1160 .
- the single instance database 1190 determines whether the substantially unique identifier is already stored (i.e., indicating that the corresponding file or data object has previously been stored) and transmits a response to the client 1160 . If the response indicates that the file or data object is new, then the client 1160 sends that file or data object to the home office 1130 .
- the single instancing system typically does not employ CDR, and each remote office 1110 typically does not include a local data store used by its clients 1160 .
- the single instancing system may employ caching for optimization at each client 1160 .
- the home office 1130 also uses a single instance database 1190 to store only a single instance of each file or data object.
- FIG. 12 is a flow diagram that illustrates copying a remote file or data object in the environment of FIG. 11 .
- the single instancing system receives a request to perform a storage operation. For each file or other data object involved in the request, the single instancing system performs the following steps.
- the single instancing system queries the single instance database 1190 at the home office 1130 to determine whether the single instance database 1190 already has a copy of the file or data object.
- decision step 1230 if the file or data object is new to the single instance database 1190 , then the single instancing system continues at step 1240 , else these steps conclude.
- step 1240 the single instancing system copies the new file or data object directly from the client 1160 to the single instance database 1190 . In this way, duplicate data is not sent to the home office 1130 .
- step 1240 these steps conclude.
- This method differs from the method of FIG. 10 in that the remote office 110 does not employ a remote file cache. Therefore, the method of FIG. 12 results in the sending of additional queries from the clients 1160 to the home office 1130 because each client 1160 will query the single instance database 1190 .
- the single instancing system does not always maintain a single instance database in the same location.
- Various benefits are derived by maintaining a single instance database in various locations.
- a single instance database may be maintained in a production environment (for example, geographically close to production servers) so as to reduce the amount of time needed to single instance data or to reduce the amount of data to be transmitted between computing systems.
- the data stored in the single instance database may then be replicated to another single instance database or secondary storage.
- the single instancing system may be used to reduce many types of redundant storage operations.
- the storage system may be employed by an Internet proxy server to reduce downloading of redundant files over the Internet by tracking a digest of each downloaded file and the location of a downloaded instance of the file behind the proxy server such that subsequent requests for the file can be serviced from the previously downloaded instance without accessing the file over the Internet.
- the storage system could be used by a file system to reduce storage space by storing a single copy of data placed in multiple locations throughout the file system. Accordingly, the invention is not limited except as by the appended claims.
- the words “comprise,” “comprising,” and the like are to be construed in an inclusive sense, as opposed to an exclusive or exhaustive sense; that is to say, in the sense of “including, but not limited to.”
- the word “coupled”, as generally used herein, refers to two or more elements that may be either directly connected, or connected by way of one or more intermediate elements. Additionally, the words “herein,” “above,” “below,” and words of similar import, when used in this application, shall refer to this application as a whole and not to any particular portions of this application. Where the context permits, words in the above Detailed Description using the singular or plural number may also include the plural or singular number respectively.
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
- This is a continuation application of U.S. application Ser. No. 12/145,342, filed Jun. 24, 2008, entitled APPLICATION-AWARE AND REMOTE SINGLE INSTANCE DATA MANAGEMENT (Attorney Docket No. 60692-8056.US00), which is incorporated by reference in its entirety.
- Computer systems contain large amounts of information. This information includes personal information, such as financial information, customer/client/patient contact information, audio/visual information, and much more. This information also includes information related to the correct operation of the computer system, such as operating system files, application files, user settings, and so on. With the increased reliance on computer systems to store critical information, the importance of protecting information has grown. Traditional storage systems receive an identification of a file to protect, then create one or more secondary copies, such as backup files, containing the contents of the file. These secondary copies can then later be used to restore the original data should anything happen to the original data.
- In corporate environments, protecting information is generally part of a routine process that is performed for many computer systems within an organization. For example, a company might back up critical computing systems related to e-commerce such as databases, file servers, web servers, and so on as part of a daily, weekly, or monthly maintenance schedule. The company may also protect computing systems used by each of its employees, such as those used by an accounting department, marketing department, engineering department, and so forth.
- Although each computer system contains certain unique information, many systems may contain very similar information. For example, although a computing system used by a marketing employee and a computing system used by an engineering employee will generally contain unique information created by each employee in the course of their work, both computing systems will likely have the same operating system installed, with thousands of identical or similar files used by the operating system. Similarly, both computing systems will likely have at least some similar application programs installed, such as a word processor, spreadsheet, Internet browser, and so on. Both systems may also have similar corporate information. For example, each employee may have an electronic copy of an employee manual distributed by the company. Information other than files may also be identical or similar between systems. For example, user settings and preferences may have similar default values on each system and application programs may contain similar templates on each system that are stored as application-specific information. As another example, several employees may have received a copy of the same email, and the email may be stored in each employee's electronic mailbox.
- As a result of the amount of redundant information in an organization, secondary copies of an organization's information are often very large and can require the purchase of expensive storage devices and storage media. The restoration of data in the event of data loss is also slowed by the large size of the secondary copies. As the size of secondary copies increases, locating and restoring information requires more actions to be taken. For example, it may be necessary to search many tapes or other media to find the correct secondary copy. The great quantity of storage media, such as tapes, may mean that some secondary storage media has been moved offsite requiring that it first be retrieved before information can be recovered from it. Each of these factors increases the cost of protecting information and the time required to recover information in the event of data loss. Quick recovery of information is often critical to today's businesses, and any additional delay can affect business operations and customers' satisfaction with the business.
- Single instancing in a data management system is the process of attempting to store only a single instance of each file. Some prior systems permit data de-duplication, or single instancing, at a file level or at a block level, but such systems are unable to determine similar blocks of data within a given application. Data objects are often stored in large, monolithic files that are intended to be read only by the application that created them. For example, a Microsoft Exchange email server stores email messages in one or more large data files that typically hold thousands of different users' mailboxes. As another example, a database server often stores tables, forms, reports, and other data objects in one or two large data files that provide persistence for the entire database. Thus, typical data management systems are only able to perform data management operations on the large data file, rather than the data objects themselves. In the case of the email server, a given electronic mail application may generate multiple email messages that all differ, but which all contain the same attachment. Prior systems may not be able to differentiate these messages, and thus each would be stored with the attachment. Further, if two files had different properties or metadata, such prior systems would store both files, even though the data they contain are identical and differ only by their metadata.
- Another problem with prior single instancing systems is that they may work fine within a given local environment, but if remote clients or devices provide data to a central single instancing system, each of the various remote clients sends data to the central single instancing system, even if much of that data is duplicative and ultimately ignored by the single instancing system. Thus, bandwidth and resources are wasted.
- There is a need for a system that overcomes the above problems, as well as one that provides additional benefits.
-
FIG. 1 is a block diagram that illustrates components of a single instancing system in accordance with one embodiment of the invention. -
FIG. 2 is a block diagram that illustrates an example data file containing data objects. -
FIG. 3 is a block diagram that illustrates the flow of data during a storage operation, in one embodiment. -
FIG. 4 is a flow diagram that illustrates processing of a storage operation manager component of the single instancing system, in one embodiment. -
FIG. 5 is a flow diagram that illustrates processing of the single instancing system to determine whether a data object is unique, in one embodiment. -
FIG. 6 is a flow diagram that illustrates processing of the storage operation manager component to restore data, in one embodiment. -
FIG. 7 is a block diagram that illustrates an environment in which the single instancing system may be configured to operate. -
FIG. 8 is a flow diagram that illustrates copying a remote file or data object in the environment ofFIG. 7 -
FIG. 9 is a block diagram that illustrates another environment in which the single instancing system may be configured to operate. -
FIG. 10 is a flow diagram that illustrates copying a remote file or data object in the environment ofFIG. 9 . -
FIG. 11 is a block diagram that illustrates another environment in which the single instancing system may be configured to operate. -
FIG. 12 is a flow diagram that illustrates copying a remote file or data object in the environment ofFIG. 11 . - In the drawings, the same reference numbers and acronyms identify elements or acts with the same or similar functionality for ease of understanding and convenience. To easily identify the discussion of any particular element or act, the most significant digit or digits in a reference number refer to the Figure number in which that element is first introduced (e.g., element 604 is first introduced and discussed with respect to
FIG. 6 ). - The headings provided herein are for convenience only and do not necessarily affect the scope or meaning of the claimed invention.
- Described in detail herein is a single instancing system that more intelligently identifies multiple copies of the same data object. For example, the single instancing system recognizes documents, files, or data objects produced by multiple different applications, and can parse through and identify those data objects common among data blocks within a file, and thereby only copy a single instance of those common data objects. The single instancing system parses the proprietary data formats of many applications, and can identify data objects related to the application, even when those data objects are stored in large, monolithic data files. In addition, if two documents, files, or data objects are substantially similar, but have differing metadata, such as different user permissions, the single instancing system can store a single instance of the data object, but retain all differing versions of the metadata (for example, such as by retaining the different user permissions). When a client requests the data object, the single instancing system returns appropriate metadata based on the identity of the client or other information.
- Under another aspect of the single instancing system, if multiple clients and associated media agents are in remote locations, the single instancing system may perform backup of data to a local, single instance database or data store at each remote location. Then, the single instancing system may use continuous data replication (CDR) to copy the data contained in each local data store to a central location. At least three variations are possible. First, a single instance database can be at a remote location, and the single instancing system only transfers de-duplicated data to the central location. Second, the single instance database may be located at a central location, and the remote locations may send queries to determine what new or unique data is to be transferred from the remote locations. Third, each client computer at a remote location may query a central single instance database directly, and only transfer unique data to the local store or central location.
- The invention will now be described with respect to various embodiments. The following description provides specific details for a thorough understanding of, and enabling description for, these embodiments of the invention. However, one skilled in the art will understand that the invention may be practiced without these details. In other instances, well-known structures and functions have not been shown or described in detail to avoid unnecessarily obscuring the description of the embodiments of the invention.
- The terminology used in the description presented below is intended to be interpreted in its broadest reasonable manner, even though it is being used in conjunction with a detailed description of certain specific embodiments of the invention. Certain terms may even be emphasized below; however, any terminology intended to be interpreted in any restricted manner will be overtly and specifically defined as such in this Detailed Description section.
- Unless described otherwise below, aspects of the invention may be practiced with conventional data processing systems. Thus, the construction and operation of the various blocks shown in
FIG. 1 may be of conventional design, and need not be described in further detail herein to make and use the invention, because such blocks will be understood by those skilled in the relevant art. One skilled in the relevant art can readily make any modifications necessary to the blocks inFIG. 1 (or other embodiments or figures) based on the detailed description provided herein. -
FIG. 1 is a block diagram that illustrates components of asingle instancing system 100, in one embodiment. Thesingle instancing system 100 contains afile identification component 110, anidentifier generation component 120, anidentifier comparison component 130, a singleinstance database component 140, a restoredfile cache component 150, a storageoperation manager component 160, an applicationdata extraction component 170, and aremote synchronization component 180. Thefile identification component 110 identifies files or data objects, such as in response to a storage operation. As used herein, a file or a data object refers to any collection or grouping of bytes of data that can be viewed as one or more logical units. For example, a file could be a computer file on a file system (for example, a word processing file, a spreadsheet file, a database file, etc.) As another example, a data object could be within a file (for example, an embedded object within a word processing file, a cell or a row in a spreadsheet file, a table or an entry in a table in a database file, etc.). Thefile identification component 110 may retrieve additional information related to a file or data object, such as its size, that is used by thesingle instancing system 100 to uniquely identify the data object. When thefile identification component 110 identifies a file, the applicationdata extraction component 170 determines whether the file contains additional data objects. For example, the file may be an application-specific container (for example, a database file), that stores data objects such as documents, email messages, and other collections of data. The applicationdata extraction component 170 would determine that each of the data objects within the application-specific container should be identified. Theidentifier generation component 120 generates a substantially unique identifier of a file or data object that is used to determine if another file or data object already stored by the single instancing system matches the file or data object used to generate the substantially unique identifier. Theidentifier comparison component 130 performs comparisons of identifiers of various files or data objects to determine if the files or data objects contain similar data (for example, theidentifier comparison component 130 can compare substantially unique identifiers of two or more files or data objects to determine if the files or data objects contain similar data). - The single
instance database component 140 is a data store that contains entries identifying files or data objects managed by thesingle instancing system 100, and may also contain supplemental information associated with files or data objects, such as a substantially unique identifier, a path, a location, a reference count, a file size or other information. The restoredfile cache component 150 provides an intermediate location that may be used by thesingle instancing system 100 during a restore operation to hold instances of files or data objects for which additional references may need to be restored. For example, during a restore operation, the single instancing system may restore files or data objects to the cache and then transfer the files or data objects to a target location of the restore operation. When thesingle instancing system 100 encounters a reference to a single instance copy of a file or data object, thesingle instancing system 100 may consult the restoredfile cache component 150 or an index. Thesingle instancing system 100 does so to determine if the file or data object is present in the cache before attempting to restore the file or data object from another location, such as from secondary storage (for example, a tape). The storageoperation manager component 160 coordinates storage operations and invokes the other components of thesingle instancing system 100 as needed to perform requested storage operations. For example, the storageoperation manager component 160 may include an application used by an administrator to manage thesingle instancing system 100. The storageoperation manager component 160 may also maintain indexes of the data objects and each of the references to those data objects through thesingle instancing system 100, as well as pending operations on the data objects that are part of a data management plan of an organization implementing thesingle instancing system 100. - The
remote synchronization component 180 performs single instancing between a remote location and a central location, such as between an enterprise or organization having a headquarters or central office and one or more satellite offices or remote offices, or vice-versa. Theremote synchronization component 180 uses the techniques described in further detail herein to determine whether a file or data object should be copied from the remote location to the central location. -
FIG. 1 and the discussion herein provides a brief, general description of a suitable computing environment in which the invention can be implemented. Although not required, aspects of the invention are described in the general context of computer-executable instructions, such as routines executed by a general-purpose computer, e.g., a server computer, wireless device or personal computer. Those skilled in the relevant art will appreciate that the invention can be practiced with other communications, data processing, or computer system configurations, including: Internet appliances, hand-held devices (including personal digital assistants (PDAs)), wearable computers, all manner of cellular or mobile phones, multi-processor systems, microprocessor-based or programmable consumer electronics, set-top boxes, network PCs, mini-computers, mainframe computers, and the like. Indeed, the terms “computer,” “host,” and “host computer” are generally used interchangeably herein, and refer to any of the above devices and systems, as well as any data processor. - Aspects of the invention can be embodied in a special purpose computer or data processor that is specifically programmed, configured, or constructed to perform one or more of the computer-executable instructions explained in detail herein. Aspects of the invention can also be practiced in distributed computing environments where tasks or modules are performed by remote processing devices, which are linked through a communications network, such as a Local Area Network (LAN), Wide Area Network (WAN), or the Internet. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.
- Aspects of the invention may be stored or distributed on computer-readable media, including magnetically or optically readable computer discs, hard-wired or preprogrammed chips (e.g., EEPROM semiconductor chips), nanotechnology memory, biological memory, or other data storage media. Indeed, computer implemented instructions, data structures, screen displays, and other data under aspects of the invention may be distributed over the Internet or over other networks (including wireless networks), on a propagated signal on a propagation medium (e.g., an electromagnetic wave(s), a sound wave, etc.) over a period of time, or they may be provided on any analog or digital network (packet switched, circuit switched, or other scheme). Those skilled in the relevant art will recognize that portions of the invention may reside on a server computer, while corresponding portions reside on a client computer such as a mobile or portable device, and thus, while certain hardware platforms are described herein, aspects of the invention are equally applicable to nodes on a network.
- Reducing or eliminating redundant instances of data resulting from a storage operation is sometimes referred to here as “single instancing,” because what would traditionally be stored as many instances of the same data is reduced to as few as one. Redundant instances may be detected and reduced at several locations or times throughout the operation of the system that will now be described. These embodiments are provided only as examples, and are not intended to be an exhaustive list of the way in which the system can be implemented.
- In some embodiments, the single instancing system performs single instancing of data at a computing system that contains or originally generated the data, such as a client computing system. For example, a client computing system that is providing data that is the target of a storage operation may receive a request from the single instancing system to provide a substantially unique identifier (for example, a hash value, message digest, checksum, digital fingerprint, digital signature or other sequence of bytes that substantially uniquely identifies the file or data object) of each file or data object included in the storage operation. The word “substantially” is used to modify the term “unique identifier” because algorithms used to produce hash values may result in collisions, where two different files or data objects result in the same hash value. However, depending upon the algorithm or cryptographic hash function used, collisions should be suitably rare and thus the identifier generated for a file or data object should be unique throughout the single instancing system. As an alternative to the single instancing system generating the substantially unique identifier, the client computing system may itself generate substantially unique identifiers for each file or data object that is stored on the client computing system on an ongoing or other basis. When a storage operation is requested, the single instancing system determines if another file or data object exists with a substantially unique identifier matching that of the one provided by the client computing system. If the single instancing system is already aware of a similar file or data object, then the client computing system does not need to send the redundant file or data object to a secondary storage location or destination.
- Rather than operating only at the file level, in some embodiments, the single instancing system may also operate at a lower level of granularity by enumerating data objects within files of understood types. For example, the single instancing system may read and parse data files from email servers (for example, Microsoft® Exchange email servers, Sendmail email servers, etc.), database servers (for example, Microsoft® SQL Server database servers, Oracle database servers, etc.), web servers (for example, Microsoft® IIS web servers, Apache web servers, etc.), word processing applications (for example, Microsoft® Word, Corel WordPerfect, etc.), spreadsheet applications (for example, Microsoft® Excel, Apple Numbers, etc.), and many others and enumerate the data objects within these files. The single instancing system may then generate a substantially unique identifier for each data object within the file, rather than each file, and store this substantially unique identifier in the single
instance database component 140 or other index. The single instancing system may also store information about the associations between the data objects and their containing files. Therefore, the single instancing system enables data storage operations such as searching, backing up, restoring, replicating, copying and so forth to be performed at the data object level. Enabling data storage operations at the data object level enables the single instancing system to store data using much less space than traditional single instancing storage systems, because files containing data objects are likely to have redundant data objects, of which only one instance or copy need be stored. For example, the data of two email servers that each contain similar email messages in a large data file can be stored in much less space than if the entire data files of each email server were to be stored, because the data files are likely to contain redundant email messages, of which only one instance or copy need be stored. This is because traditional single instancing systems would determine that the two data files differed and would store both data files, thereby consuming more storage space. -
FIG. 2 illustrates an example data file produced by an email server. The data file 210 holdscontainers 220 of data related to each user that has a mailbox on the email server. Eachcontainer 220 holdsemail messages 230 for a specific user, and eachemail message 230 may contain one ormore attachments 240. Email messages are often forwarded to many users, and the users may be assigned to the same or different email servers. The single instancing system may know or understand the structure of the data file 210 before performing any single instancing operations. For example, the single instancing system may identify the type of the data file based on the data file's filename extension. The identified data file type may be used to identify a format or specification that describes the structure (e.g., at which bytes specific data is stored, its particular encoding, etc.) of the data file. This knowledge of the structure enables the applicationdata extraction component 170 to parse the data file 210, identifycontainers 220, and extractemail messages 230 orattachments 240 from eachcontainer 220. Alternatively, the data file 210 may contain metadata or other information that describes its data structure. The applicationdata extraction component 170 can obtain this metadata or other information, which enables it to parse the data file 210, identifycontainers 220, and extractemail messages 230 orattachments 240 from eachcontainer 220. The single instancing system can then store only a single instance or copy of the extractedemail messages 230 orattachments 240 that are similar. By operating on the data at the data object level, the single instancing system provides substantial benefit by identifying the redundancy of data objects stored within the data files and providing single instancing of the individual data objects. - In some embodiments, the single instancing system or another system performs additional operations on the data after single instancing has occurred. For example, another system may encrypt backup data that is being stored offsite to prevent unauthorized parties from accessing the data. Another system may also compress the data to reduce its size. The single instancing system enables these additional operations to be performed more efficiently, because there is less data on which to perform these additional operations after redundant data has been reduced or eliminated.
- One example of a single instancing system employs a single storage policy or data store. A storage policy is generally a virtual container with preferences that contains a set of rules for data retention of data objects associated with the storage policy. The single instancing system in this example stores single instance data in a single location, and in a way to ensure that any relevant, unique data is retained, but only a single instance of common data is copied to the data store. Notably, a single instancing agent creates, updates, or maintains a single instance database or index that represents or stores the substantially unique identifiers of each file or data object. The single instance database or index is associated with a single storage policy that is separate from one or more data stores that store the data copies. A single storage policy may represent a storage location that includes existing data, as well as new data that has been compared to the existing data and identified as being unique.
-
FIG. 3 is a block diagram that illustrates the flow of data during a storage operation, in one embodiment. Data is initially stored on aserver 310 or other source of data. Astorage policy 320 or other configuration information specifies a storage operation to be performed on the data. For example, thestorage policy 320 may specify that the data stored on theserver 310 is to be backed up daily to tape. The application of thestorage policy 320 causes the backup to occur, resulting in the creation of the data copy 330. The data copy 330 may contain many redundant files or other data objects. Amedia agent 340 manages the data copy 330, and creates asingle instance copy 350. Thesingle instance copy 350 is a copy in which at least some of the redundant files or data objects have been removed. Themedia agent 340 uses the methods described herein to eliminate redundant instances of files or data objects contained in the data copy 330, and to produce thesingle instance copy 350. Thesingle instance copy 350 may then be stored on tape or other media. - The single instancing system may employ one or more specialized single instancing agents. For example, as described below, the single instancing system may employ application agents associated with types of applications, metadata agents for analyzing metadata, encryption/compression agents, and so forth. Alternatively, a single agent employing all of the functions described herein may be employed. These agents operate on all types of data, including documents, files, data objects, or any data blocks.
- An application agent associated with each type of application may analyze incoming or previously stored data to identify redundant data. For example, an email agent analyzes incoming or previously stored emails, including attachments to emails, to identify duplicate attachments. The email agent provides a first instance of an email with an attachment to the storage policy, but for subsequent emails having the same attachment, the email agent strips them of their attachments and stores them with a stub or pointer to the previously stored attachment.
- A metadata agent analyzes files or data objects for similarities in data, but differences in metadata that is associated with the files or data objects. For example, two files may have the same data, but separate permissions, properties, access control lists (ACLs), or other metadata. The metadata agent ascertains that the two files contain the same data but have differing metadata, and thus stores only one instance of the file, but two or more instances of the associated metadata, as well as information about the associations between the metadata, the providers of the files and the files. When a client requests the file, the single instancing system provides the file to the client with the appropriate instance of the metadata based on the identity of the requestor. For example, a data file may be stored on a user computer with permissions restricting access to the data file to the user of that computer, and the same data file may be stored on a second computer with permissions restricting access to the data file to an administrator of the single instancing system. The user will still be able to access the data file from the single instance store even though the user is not an administrator of the single instancing system. This is because the single instancing system will use the metadata from the file from the user's computer to ascertain that the user has the permissions needed to access the file, and permit the requested access to the user. As another example, two files may have the same data, but different properties, such as the creation date or access date. The metadata agent ascertains that the two files contain the same content but have different properties. The metadata agent thus stores only one instance of the file, but two or more instances of the properties, as well as information about the associations between the metadata, the providers of the files and the files. Because an association between the provider of the file and the file is stored, when a client requests the file, the single instancing system can provide the file with the proper metadata to the client.
- The single instancing system can single instance both non-encrypted and encrypted data received from client computers. Each client computer may generate a substantially unique identifier for the file or data object before the file or data object is encrypted. The client computer does this before encryption because an encrypted file or data object would almost certainly result in a substantially unique identifier that is different from a substantially unique identifier generated from the file or data object before encryption. Alternatively, a client computer could generate a substantially unique identifier for a file or data object after the file or data object is encrypted. An encryption agent may compare the substantially unique identifiers to identify identical files or data objects, and thus only store one instance of them.
- In some embodiments, the single instancing system determines whether to store an instance of an encrypted or unencrypted file (or data object, but file is used in this and the following paragraphs discussing encryption for brevity) based on whether the files are encrypted using the same encryption scheme, whether the encrypted files can be decrypted by the single instancing system, and/or other factors. For example, consider the following three situations involving encrypted files: 1) where the single instancing system has previously stored an instance of a file that is encrypted and a request is made to store another instance of the file that is also encrypted; 2) where the single instancing system has previously stored an instance of a file that is unencrypted and a request is made to store another instance of the file that is encrypted; and 3) where the single instancing system has previously stored an instance of a file that is encrypted and a request is made to store another instance of the file that is unencrypted. Metadata associated with the file is typically not encrypted. Moreover, information about the encryption scheme (for example, what public key is used to encrypt the file) may be provided as metadata to the single instancing system.
- For the first situation, if the two file instances are encrypted using the same encryption scheme (for example, using the same public key), the single instancing system can avoid storing the second instance of the file. If the two files are encrypted using different encryption schemes, the single instancing system stores the second instance of the file. This is because the single instancing system has to be able to provide the second instance of the file to the requestor when requested. Alternatively, if both encryption schemes are known to the single instancing system (for example, using two different public keys of the single instancing system), the single instancing system can avoid storing the file. This is because the single instancing system can decrypt the first instance of the file and re-encrypt it using the encryption scheme used to encrypt the second instance of the file. However, this decryption and re-encryption may be too computationally expensive, depending upon various factors (for example, the time needed to decrypt and re-encrypt the file, the algorithm, etc.), and so the single instancing system may simply store the second instance of the file.
- For the second situation, if the second instance of the file is encrypted using an encryption scheme that is known to the single instancing system (for example, using a public key of the single instancing system), the single instancing system can avoid storing the second instance of the file. This is because, when the provider of the second encrypted instance requests the file, the single instancing system can retrieve the first unencrypted instance, encrypt it using the known encryption scheme and provide it to the requestor. However, if such encryption is too computationally expensive, the single instancing system may simply store the second encrypted instance of the file. If the second instance of the file is encrypted using an encryption scheme that is not known to the single instancing system, the single instancing system stores the second instance of the file. This is because the single instancing system has to be able to provide the second encrypted instance of the file to the requestor when requested.
- For the third situation, if the first instance of the file is encrypted in such a way that it can be decrypted by the single instancing system, the single instancing system can avoid storing the second unencrypted instance of the file. This is because, when the provider of the second unencrypted instance requests the file, the single instancing system can retrieve the first encrypted instance, decrypt it, and provide it to the requestor. However, if such decryption is too computationally expensive, the single instancing system may simply store the second unencrypted instance of the file. If the first instance of the file is encrypted in such a way that it cannot be decrypted by the single instancing system, the single instancing system stores the second unencrypted instance of the file. This is because the single instancing system has to be able to provide the second unencrypted instance of the file to the requestor.
- The single instancing system may also handle compressed files. Each client computer may generate a substantially unique identifier for the file or data object before the file or data object is compressed. The client computer does this before compression because a compressed file or data object would almost certainly result in a substantially unique identifier that is different from a substantially unique identifier generated from the file or data object before compression. Alternatively, a client computer could generate a substantially unique identifier for a file or data object after the file or data object is compressed. A compression agent may compare the substantially unique identifiers to identify identical files or data objects, and thus only store one of them.
- In some embodiments, the single instancing system determines whether to store an instance of a compressed or uncompressed file (or data object, but file is used in this and the following paragraphs discussing compression for brevity) based on whether the files are compressed using the same compression scheme, whether the compressed files can be decompressed by the single instancing system, and/or other factors. For example, consider the following three situations involving compressed files: 1) where the single instancing system has previously stored an instance of a file that is compressed and a request is made to store another instance of the file that is also compressed; 2) where the single instancing system has previously stored an instance of a file that is uncompressed and a request is made to store another instance of the file that is compressed; and 3) where the single instancing system has previously stored an instance of a file that is compressed and a request is made to store another instance of the file that is uncompressed. Metadata associated with the file is typically not compressed. Moreover, information about the compression scheme (for example, what compression algorithm is used to compress the file) may be provided as metadata to the single instancing system.
- For the first situation, if the two file instances are compressed using the same compression scheme (for example, using the same compression algorithm), the single instancing system can avoid storing the second instance of the file. Otherwise, the single instancing system stores the second instance of the file. However, if the second instance of the file is compressed using a different compression scheme, the single instancing system may avoid storing the second instance of the file, if the single instancing system is able to decompress the first instance of the file and recompress the first instance of the file using the different compression scheme. If the single instancing system is not able to do so, the single instancing system stores the second instance of the file. However, this decompress and recompression may be too computationally expensive, depending upon various factors (for example, the time needed to decompress and recompress the file, the algorithm, etc.), and so the single instancing system may simply store the second instance of the file.
- For the second situation, if the second instance of the file is compressed using a compression scheme that is known to the single instancing system (for example, using a known compression algorithm), the single instancing system can avoid storing the second instance of the file. This is because, when the provider of the second compressed instance requests the file, the single instancing system can retrieve the first uncompressed instance, compress it using the known compression scheme and provide it to the requestor. However, if such compression is too computationally expensive, the single instancing system may simply store the second compressed instance of the file. If the second instance of the file is compressed using a compression scheme that is not known to the single instancing system, the single instancing system stores the second instance of the file. This is because the single instancing system has to be able to provide the second compressed instance of the file to the requestor when requested.
- For the third situation, if the first instance of the file is compressed in such a way that it can be decompressed by the single instancing system, the single instancing system can avoid storing the second uncompressed instance of the file. This is because, when the provider of the second uncompressed instance requests the file, the single instancing system can retrieve the first compressed instance, decompress it, and provide it to the requestor. However, if such decompression is too computationally expensive, the single instancing system may simply store the second uncompressed instance of the file. If the first instance of the file is compressed in such that it cannot be decompressed by the single instancing system, the single instancing system stores the second uncompressed instance of the file. This is because the single instancing system has to be able to provide the second uncompressed instance of the file to the requestor.
- The single instancing system may be configurable to reduce processing time, transmission bandwidth, etc. with small files. For example, an administrator-configurable value would allow the administrator to configure the single instancing system to ignore files or data objects below a given size. For example, any file or data object below a certain threshold (for example, one kilobyte) may simply be stored, and a substantially unique identifier would not determined for it. Any file or data object greater than the threshold (for example, one kilobyte) would then be single instanced. An administrator may adjust this threshold up or down. As another example, the single instancing system may allow the administrator to configure it to always single instance files or data objects of a certain type or category (for example, executable files or modules may always be single instanced if they rarely change). Alternatively, the single instancing system may allow the administrator to never single instance files or data objects of a certain type or category (for example, log files may never be single instanced, because they typically change quite frequently).
- The single instancing system may associate timestamps with the files or data objects or with their generated substantially unique identifiers. A timestamp may indicate the time at which the file or data object was created, last accessed or modified, or the time at which the single instancing system generated the substantially unique identifier for it, or the time at which the file or data object was stored by the single instancing system. The single instancing system may do so to determine whether a file or data object is substantially newer than another file or data object already stored in the single instancing system. For example, the two files or data objects may have the same substantially unique identifier, meaning that they contain the same data. The single instancing system may compare the timestamp of the first, previously stored, file or data object with that of the second file or data object. If the timestamp of the second file or data object is substantially newer than the timestamp of the first file or data object, the single instancing system may nonetheless store the second file or data object, even though it is duplicative of a file or data object that is already stored.
- In this context, substantially newer means that the age (as determined by its timestamp) of the second file or data object is less than the age (as determined by its timestamp) of the first, previously stored, file or data object by a certain amount or more (configurable by an administrator). The single instancing system could then prune off older versions as the data ages and is migrated to other storage, such as longer-term storage. For example, a first file or data object could have a timestamp indicating that its age is ten months. A second file or data object could have a timestamp indicating that its age is three months. If the administrator has configured the amount to be six months, then the second file or data object is substantially newer than the first file or data object, because the age of the second file or data object (three months) is less than the age of the first file or data object (then months) by more than the configured amount (six months). Therefore, the single instancing system would store the second file or data object, and the first file or data object could be migrated to longer-term storage, such as to tape.
- The single instancing system may be employed in any variety of architectures. For example, it may be employed with heterogeneous storage hardware, and thus is not reliant on a specific hardware platform to perform all of the single instancing functions. Instead, multiple, different data storage platforms may be employed for storing data under the storage policies. Further, the architecture may be tiered or federated wherein one server manages multiple cells (and each of those cells in turn may manage lower tier cells). In some embodiments, the cells may be arranged in hierarchies or organized in configurations such as those described in U.S. patent application Ser. No. 12/060,186, filed Mar. 31, 2008, entitled Systems and Methods of Hierarchical Storage Management, Such as Global Management of Storage Operations (Attorney Docket No. 60692.8036.U502), the entirety of which is herein incorporated by reference.
- The single instancing system may employ many other functions. For example, it may employ content indexing agents to index the content all data blocks. These content indexes may then be searched to permit users to readily locate desired data objects. Further details regarding content indexing may be found in U.S. patent application Ser. No. 11/694,869, filed Mar. 30, 2007, entitled Method and System for Offline Indexing of Content and Classifying Stored Data (Attorney Docket No. 60692.8046.US00), the entirety of which is herein incorporated by reference.
- Various methods of determining if one file or data object is similar (e.g., two instances of the same data) to another file or data object will now be described. However, those of ordinary skill in the art will recognize that many other methods besides those described herein may be used to achieve similar results.
- In some embodiments, the single instancing system determines if two files or data objects are similar by performing a binary comparison. For example, a first file or data object can be compared byte by byte with a second file or data object, or portions of the first file or data object can be compared with portions of the second file or data object. If each byte of the compared data in each file or data object matches, then the two files or data objects are identical and therefore similar. Otherwise, the two files or data objects do not match and are not treated as similar.
- In some embodiments, the single instancing system determines if two files or data objects are similar by creating a digest or fingerprint of the data contained in each file or data object. For example, as storage operations are performed, the single instancing system may perform a cryptographic hash on each file or data object to create a digest of the file or data object. The single instancing system compares the digest of the file or data object with stored digests created for other files or data objects. If the digests of two files or data objects match, then the single instancing system may consider the files or data objects to be identical. The single instancing system can use any suitable hashing algorithm, such as SHA512. For applications that create data files having embedded data objects, the single instancing system identifies the embedded data objects, and determines the similarity of each data object with other data objects found either within the same data file or in other data files or stores managed by the single instancing system.
-
FIGS. 4-6 are representative flow diagrams that depict processes used in some embodiments. These flow diagrams do not show all functions or exchanges of data, but instead they provide an understanding of commands and data exchanged under the single instancing system. Those skilled in the relevant art will recognize that some functions or exchange of commands and data may be repeated, varied, omitted, or supplemented, and other (less important) aspects not shown may be readily implemented. -
FIG. 4 is a flow diagram that illustrates the processing of the storageoperation manager component 160 of the single instancing system in one embodiment. The storageoperation manager component 160 is invoked when a storage operation that creates a copy of a file is requested. Instep 410, the storageoperation manager component 160 identifies data objects within the file to be copied, such as by using information about the application that created the file and the format used by the application to store data objects. For example, the application may provide an object model that the storageoperation manager component 160 can invoke to enumerate objects within the file, or the storageoperation manager component 160 may understand the format used by the application for storing objects in the file. An application author, manufacturer or third party may also provide a module for parsing the application file that the storageoperation manager component 160 can invoke. In this way, the application author, manufacturer or third party can provide access to the data objects within the file without exposing the actual format used to third parties. - In
step 415, the storageoperation manager component 160 selects the first identified data object. Instep 420, the storageoperation manager component 160 determines whether the data object is unique, or if the storage manager component has previously copied the data object. For example, the storageoperation manager component 160 may compute a digest in the manner described herein, and compare the digest to the digests of previously copied data objects to determine if the data object is an instance of a previously copied data object. Indecision step 430, if the data object is unique, then the storageoperation manager component 160 continues atstep 450, else the storageoperation manager component 160 continues atstep 440. Instep 440, the storageoperation manager component 160 adds a reference (e.g., to an index of data managed by the single instancing system, such as by incrementing a reference count in the index) to the already backed up instance of the data object, and then continues to step 460. Instep 450, the component stores the unique data object. Indecision step 460, if the storageoperation manager component 160 identified more data objects within the file, then the storageoperation manager component 160 loops to step 415 to select the next data object, else the storageoperation manager component 160 completes. -
FIG. 5 is a flow diagram that illustrates the processing of the single instancing system to determine whether a file or data object is unique, in one embodiment. These steps may be invoked by thestorage operation component 160, such as when performing a storage operation as described inFIG. 4 or at other times. Instep 510, theidentifier generation component 120 generates a substantially unique identifier of the file or data object that is the target of the storage operation. Instep 520, thefile identification component 110 gathers (for example, by querying the file system of a client) additional information about the file or data object, such as the file or data object's size, security information, or other attributes. Instep 530, theidentifier comparison component 130 determines if the substantially unique identifier of the file or data object and any supplemental information matches that of any existing file or data object tracked by the singleinstance database component 140. Indecision step 540, if the data objects match, then the single instancing system continues atstep 550, otherwise the single instancing system continues atstep 570. Instep 550, the single instancing system reports to the entity that invoked the storageoperation manager component 160 that the file or data object is not unique. Instep 560, the single instancing system updates the substantially unique identifier reference count tracked by the singleinstance database component 140 and then concludes. Instep 570, the single instancing system reports to the entity that invoked the storageoperation manager component 160 that the file or data object is unique. Instep 580, the single instancing system adds the file or data object's substantially unique identifier and other information to the list of files and data objects tracked by the singleinstance database component 140. These steps then conclude. -
FIG. 6 is a flow diagram that illustrates the processing of the storageoperation manager component 160 to restore data, in one embodiment. The single instancing system invokes the storageoperation manager component 160 when it receives a request, for example, to restore data. Instep 610, the storageoperation manager component 160 receives a request to restore data. Instep 620, the storageoperation manager component 160 selects the next file or data object referred to by the request. For example, the request may identify 10 files or data objects, and the storageoperation manager component 160 selects the first file or data object on which to perform the following steps. Indecision step 630, if the selected file or data object is a reference to an instance of a file or data object stored somewhere else, then the storageoperation manager component 160 continues atstep 640, else the storageoperation manager component 160 continues atstep 650. Instep 640, the storageoperation manager component 160 locates the referenced instance of the file or data object and continues to step 655. In step 655, the storageoperation manager component 160 restores the file or data object from the referenced instance of the file or data object. Instep 650, the storageoperation manager component 160 restores the file or data object directly from the file or data object. Indecision step 660, if there are more files or data objects referred to by the received request, then the storageoperation manager component 160 loops to block 620 to select the next file or data object on which to perform these steps, else the storageoperation manager component 160 completes. - Where multiple computing systems containing data that is to be single instanced are located remotely from a single instancing database, various system configurations may be employed to avoid transferring data that is common to the remote multiple computing systems to the single instancing database. Three example configurations are described herein. Under a first configuration, a single instancing database is maintained at a first location and at each remote location (e.g., a second location, a third location, etc.). De-duplicated information in the single instancing database at each remote location is transferred to the single instancing database at the first location. Under a second configuration, a single instancing database is maintained at a first location, and a computing system at each remote location (e.g., a second location, a third location, etc.) sends queries to the single instancing database at the first location to identify what data to transfer to the single instancing database. Under a third configuration, each computing system at each remote location (e.g., a second location, a third location, etc.) queries a single instancing database at a first location before transferring any data to the single instancing database. Each of these configurations is discussed separately below. In the discussed configurations, the example of a central or home office with one or more remote or satellite offices is used, where each remote office includes one or more computing systems. Although the terminology used to discuss these configurations implies a certain geographical positioning of computing systems, the single instancing system described herein may be used in a wide variety of configurations and is not limited to a specific geographical positioning. Furthermore, the single instancing system described herein is not limited to the hub-and-spoke model implied by the terminology used to discuss these configurations. For example, a multi-tier hierarchical configuration could be employed, in which computing systems at the leaf nodes transfer data to computing systems at their respective parent nodes, which transfer data to computing systems at their parent nodes, and so on, up to the computing system at the top-most node of the hierarchy. As another example, a mesh configuration could be employed, in which a first computing system in the mesh configuration transfers data to a second computing system, the data to be ultimately transferred to a third computing system.
- CDR, also called continuous data protection or continuous backup, refers to copying computer data by automatically saving a copy of every change made to that data, essentially capturing every version of the data that the user saves. It allows an administrator (or other user) to restore data to any point in time. There are multiple methods known in the art for capturing the continuous changes involving different technologies that serve different needs. CDR-based solutions can provide fine granularities of restorable objects ranging from disk images to logical data objects such as files, email data files, email messages, and database files and logs.
- CDR differs from traditional backup or copy operation in that an administrator (or other user) does not have to specify the point in time to which the administrator would like to recover until the administrator is ready to perform a restore. Traditional backups or copy operations can only restore data to the point at which the backup or copy was made. With CDR, there are typically no backup or copy schedules. When data is written to disk, it can also be synchronously or asynchronously written to a second location, usually another computer over the network. In some situations, CDR will require less space on secondary storage media (usually disk) than traditional backup or copy operations. Most CDR solutions save byte- or block-level differences rather than file-level differences. This means that if one byte of a 100 GB file is changed, only the changed byte or block is backed up or copied. In contrast, traditional incremental and differential backups and copy operations generally make copies of entire files when those files change.
-
FIG. 7 illustrates an environment according to the first example configuration. In the environment ofFIG. 7 , two remote offices 710 a and 710 b are connected to a home office 730. AlthoughFIG. 7 depicts two remote offices 710, only a single remote office, or more than two remote offices, may be connected to the home office 730. Each remote office includes its own single instance database 740. For example, remote office 710 a includes single instance database 740 a and remote office 720 includes single instance database 740 b. Multiple client computing systems 760 a and 760 b at each remote office 710 provide data to the single instance database 740 at their respective locations. Clients 760 a are part of remote office 710 a, and store data in single instance database 740 a. Clients 760 b are part of remote office 710 b, and store data in single instance database 740 b. The clients 760 may be connected to their respective remote office 710 by way of a local area network (wired or wireless), with the remote offices 710 being connected to the home office 730 by a wide area network, or other network such as a public computer network (e.g., the Internet). By employing known CDR techniques, data from each remote single instance database 740 is sent to the home office 730 to be stored in a central data store (not shown inFIG. 7 ) at the home office 730. Accordingly, data is copied from clients 760 to a local single instance database 740, and then data blocks unique to that remote office 710 are provided using CDR to create a copy at the home office 730. - Each remote office 710 tracks incremental changes for its clients 760, and then employs CDR to transmit those incremental changes to the home office 730. The home office 730 may then in turn employ its own single instance database 790 to avoid any duplication between the remote offices 710. For example, clients 760 that run Microsoft Windows typically will each have a similar C:\Windows directory containing operating system files. Multiple client computing systems 760 will have stored a single copy of the C:\Windows directory at the remote single instance database 740, which will then be replicated to the central data store at the home office 730. The home office 730 will in turn store a single copy of the C:\Windows directory in the single instance database 790.
-
FIG. 8 is a flow diagram that illustrates copying a remote file or data object in the environment ofFIG. 7 . Instep 810, the single instancing system receives a request to perform a storage operation. For example, the request may be a routinely scheduled request to backup or copy the contents of a client computing system 760. For each file or data object involved in the request, the single instancing system performs the following steps. Instep 820, the single instancing system copies the file or data object from the client computing system 760 to a single instance database 740 located at the remote office 710. The single instance database 740 ensures that only one copy of each file or data object is stored. For example, the single instance database 740 may create or have created a substantially unique identifier for each stored file or data object and create or have created a substantially unique identifier for each new file or data object to be stored. The single instance database 740 may then compare the substantially unique identifier of the new file or data object with that of each previously stored file or data object to determine whether the new file or data object is already stored. In some embodiments, the single instance database 740 may store metadata that is specific to some clients while only storing one instance of the file or data object itself. - Accordingly, the client 760 copies data to a computing system that is geographically close, and then later the data from each client 760 can be copied to the home office 730 by copying the single instance or unique data from the single instance database 740 at the remote office 710. In this context, computing systems that are geographically close refers to computing systems that may be in the same room, in the same building or on the same campus. Computing systems that are geographically remote refers to computing systems that are not geographically close. In
step 830, the single instancing system replicates the contents of the remote single instance database 740 to the home office 730. This step can occur using CDR or other traditional methods of copying data. Afterstep 830, these steps conclude. Using this method, each remote single instance database 740 may send identical files or data objects to the home office single instance database 790 (i.e., data that is unique as to each individual remote office 710, but duplicative as to both remote offices 710). However, only one instance of each file or data object at the remote office 710 is stored by the home office single instance database 790. -
FIG. 9 illustrates an environment according to the second example configuration. In the environment ofFIG. 9 , two remote offices 910 a and 910 b are connected to asingle home office 930. AlthoughFIG. 9 depicts tworemote offices 910, only a single remote office, or more than two remote offices, may be connected to thehome office 930.Remote office 910 includes multiple client computing systems 960 a and a data store 940 a. Remote office 910 b includes multiple client computing systems 960 b and a data store 940 b. Thehome office 930 maintains asingle instance database 990. Theremote office 910 generates a substantially unique identifier for each file or data object that is to be potentially stored. For example, theremote office 910 may include a computing system (not shown inFIG. 9 ) that generates the substantially unique identifier for each file or data object that is to be potentially stored on behalf ofclients 960. Theremote office 910 then transmits the substantially unique identifier to thehome office 930. Thehome office 930 checks thesingle instancing database 990 to determine whether the transmitted substantially unique identifier matches any existing substantially unique identifier in thesingle instance database 990 in order to determine whether the file or data object that is to be potentially stored is redundant. Thehome office 930 then sends a response back to theremote office 910 that indicates whether the file or data object that is to be potentially stored is unique. Theremote office 910 stores the unique files or data objects locally in adata store 940. Theremote office 910 then employs CDR to incrementally transfer new changes or updates to thehome office 930. - The single instancing system may employ various optimization techniques. For example, the
remote office 910 may cache substantially unique identifiers and only transmit one instance of a substantially unique identifier to thehome office 930 if it detects more than one instance of the same substantially unique identifier. After the single instancing system has made a request to thesingle instance database 990 to determine if a particular file or data object is unique, theremote office 910 may cache the response so that subsequent identical files or data objects do not generate a new request to thesingle instance database 990. Rather, the single instancing system consults the cache first to determine if a previous request determined whether the file or data object is unique. If the cache responds that the file or data object is not unique, then theremote office 910 does not need to query thesingle instance database 990 to determine if the file or data object is unique. -
FIG. 10 is a flow diagram that illustrates copying a remote file or data object in the environment ofFIG. 9 . Instep 1010, the single instancing system receives a request to perform a storage operation. For each file or other data object involved in the request, the single instancing system performs the following steps. Instep 1020, the single instancing system copies the file or data object to a data management server (not shown inFIG. 9 ) that caches files or data objects at theremote office 910. Thus, the client copies data to a computing system that is geographically close. The data management server in this method may contain duplicate files or data objects frommany clients 960. According to this method the data management server does not do single instancing of its own. Instep 1030, the single instancing system queries thesingle instance database 990 at thehome office 930 to determine whether thesingle instance database 990 already has a copy of the file or data object. Indecision step 1040, if the file or data object is new to thesingle instance database 990, then the single instancing system continues atstep 1050, else these steps conclude. Instep 1050, the single instancing system copies the new file or data object to thesingle instance database 990. If there are duplicates of the file or data object, then later when thesingle instance database 990 is queried for the duplicate files or data objects, thesingle instance database 990 will indicate that the file or data object is not new and need not be copied. In this way, duplicate data is not sent to thehome office 930. Afterstep 1050, these steps conclude. This method differs from the method ofFIG. 8 in that duplicate data may be stored at theremote office 910, but duplicate data is not sent to thehome office 930. In general, in comparison with the method ofFIG. 8 , the method ofFIG. 10 will send more queries to thehome office 930, but less data. -
FIG. 11 illustrates an environment according to the third example configuration. In the environment ofFIG. 11 , each remote client 1160 (as opposed to each remote office 1110) transmits a query with a substantially unique identifier to thehome office 1130. Eachclient 1160 may have generated the substantially unique identifier itself, or another computing system may generate them on behalf of theclients 1160. Thesingle instance database 1190 determines whether the substantially unique identifier is already stored (i.e., indicating that the corresponding file or data object has previously been stored) and transmits a response to theclient 1160. If the response indicates that the file or data object is new, then theclient 1160 sends that file or data object to thehome office 1130. The single instancing system typically does not employ CDR, and eachremote office 1110 typically does not include a local data store used by itsclients 1160. The single instancing system may employ caching for optimization at eachclient 1160. Thehome office 1130 also uses asingle instance database 1190 to store only a single instance of each file or data object. -
FIG. 12 is a flow diagram that illustrates copying a remote file or data object in the environment ofFIG. 11 . Instep 1210, the single instancing system receives a request to perform a storage operation. For each file or other data object involved in the request, the single instancing system performs the following steps. Instep 1220, the single instancing system queries thesingle instance database 1190 at thehome office 1130 to determine whether thesingle instance database 1190 already has a copy of the file or data object. Indecision step 1230, if the file or data object is new to thesingle instance database 1190, then the single instancing system continues atstep 1240, else these steps conclude. Instep 1240, the single instancing system copies the new file or data object directly from theclient 1160 to thesingle instance database 1190. In this way, duplicate data is not sent to thehome office 1130. Afterstep 1240, these steps conclude. This method differs from the method ofFIG. 10 in that theremote office 110 does not employ a remote file cache. Therefore, the method ofFIG. 12 results in the sending of additional queries from theclients 1160 to thehome office 1130 because eachclient 1160 will query thesingle instance database 1190. - As shown in
FIGS. 7-12 , the single instancing system does not always maintain a single instance database in the same location. Various benefits are derived by maintaining a single instance database in various locations. For example, a single instance database may be maintained in a production environment (for example, geographically close to production servers) so as to reduce the amount of time needed to single instance data or to reduce the amount of data to be transmitted between computing systems. The data stored in the single instance database may then be replicated to another single instance database or secondary storage. - From the foregoing, it will be appreciated that specific embodiments of the storage system have been described herein for purposes of illustration, but that various modifications may be made without deviating from the spirit and scope of the invention. For example, although backup operations have been described, the single instancing system may be used to reduce many types of redundant storage operations. As one example, the storage system may be employed by an Internet proxy server to reduce downloading of redundant files over the Internet by tracking a digest of each downloaded file and the location of a downloaded instance of the file behind the proxy server such that subsequent requests for the file can be serviced from the previously downloaded instance without accessing the file over the Internet. Similarly, the storage system could be used by a file system to reduce storage space by storing a single copy of data placed in multiple locations throughout the file system. Accordingly, the invention is not limited except as by the appended claims.
- Unless the context clearly requires otherwise, throughout the description and the claims, the words “comprise,” “comprising,” and the like are to be construed in an inclusive sense, as opposed to an exclusive or exhaustive sense; that is to say, in the sense of “including, but not limited to.” The word “coupled”, as generally used herein, refers to two or more elements that may be either directly connected, or connected by way of one or more intermediate elements. Additionally, the words “herein,” “above,” “below,” and words of similar import, when used in this application, shall refer to this application as a whole and not to any particular portions of this application. Where the context permits, words in the above Detailed Description using the singular or plural number may also include the plural or singular number respectively. The word “or” in reference to a list of two or more items, that word covers all of the following interpretations of the word: any of the items in the list, all of the items in the list, and any combination of the items in the list.
- The above detailed description of embodiments of the invention is not intended to be exhaustive or to limit the invention to the precise form disclosed above. While specific embodiments of, and examples for, the invention are described above for illustrative purposes, various equivalent modifications are possible within the scope of the invention, as those skilled in the relevant art will recognize. For example, while processes or blocks are presented in a given order, alternative embodiments may perform routines having steps, or employ systems having blocks, in a different order, and some processes or blocks may be deleted, moved, added, subdivided, combined, and/or modified. Each of these processes or blocks may be implemented in a variety of different ways. Also, while processes or blocks are at times shown as being performed in series, these processes or blocks may instead be performed in parallel, or may be performed at different times.
- The teachings of the invention provided herein can be applied to other systems, not necessarily the system described above. The elements and acts of the various embodiments described above can be combined to provide further embodiments.
- These and other changes can be made to the invention in light of the above Detailed Description. While the above description details certain embodiments of the invention and describes the best mode contemplated, no matter how detailed the above appears in text, the invention can be practiced in many ways. Details of the system may vary considerably in implementation details, while still being encompassed by the invention disclosed herein. As noted above, particular terminology used when describing certain features or aspects of the invention should not be taken to imply that the terminology is being redefined herein to be restricted to any specific characteristics, features, or aspects of the invention with which that terminology is associated. In general, the terms used in the following claims should not be construed to limit the invention to the specific embodiments disclosed in the specification, unless the above Detailed Description section explicitly defines such terms. Accordingly, the actual scope of the invention encompasses not only the disclosed embodiments, but also all equivalent ways of practicing or implementing the invention under the claims.
- While certain aspects of the invention are presented below in certain claim forms, the inventors contemplate the various aspects of the invention in any number of claim forms. For example, while only one aspect of the invention is recited as embodied in a computer-readable medium, other aspects may likewise be embodied in a computer-readable medium. Accordingly, the inventors reserve the right to add additional claims after filing the application to pursue such additional claim forms for other aspects of the invention.
Claims (24)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/532,877 US20120271793A1 (en) | 2008-06-24 | 2012-06-26 | Application-aware and remote single instance data management |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/145,342 US8219524B2 (en) | 2008-06-24 | 2008-06-24 | Application-aware and remote single instance data management |
US13/532,877 US20120271793A1 (en) | 2008-06-24 | 2012-06-26 | Application-aware and remote single instance data management |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/145,342 Continuation US8219524B2 (en) | 2008-06-24 | 2008-06-24 | Application-aware and remote single instance data management |
Publications (1)
Publication Number | Publication Date |
---|---|
US20120271793A1 true US20120271793A1 (en) | 2012-10-25 |
Family
ID=41432352
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/145,342 Expired - Fee Related US8219524B2 (en) | 2008-06-24 | 2008-06-24 | Application-aware and remote single instance data management |
US13/532,877 Abandoned US20120271793A1 (en) | 2008-06-24 | 2012-06-26 | Application-aware and remote single instance data management |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/145,342 Expired - Fee Related US8219524B2 (en) | 2008-06-24 | 2008-06-24 | Application-aware and remote single instance data management |
Country Status (1)
Country | Link |
---|---|
US (2) | US8219524B2 (en) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110000213A1 (en) * | 2005-05-27 | 2011-01-06 | Markron Technologies, Llc | Method and system integrating solar heat into a regenerative rankine steam cycle |
US8578120B2 (en) | 2009-05-22 | 2013-11-05 | Commvault Systems, Inc. | Block-level single instancing |
US8612707B2 (en) | 2008-07-03 | 2013-12-17 | Commvault Systems, Inc. | Continuous data protection over intermittent connections, such as continuous data backup for laptops or wireless devices |
US8712969B2 (en) | 2006-12-22 | 2014-04-29 | Commvault Systems, Inc. | System and method for storing redundant information |
US8725687B2 (en) | 2008-11-26 | 2014-05-13 | Commvault Systems, Inc. | Systems and methods for byte-level or quasi byte-level single instancing |
US8935492B2 (en) | 2010-09-30 | 2015-01-13 | Commvault Systems, Inc. | Archiving data objects using secondary copies |
US9015181B2 (en) | 2008-09-26 | 2015-04-21 | Commvault Systems, Inc. | Systems and methods for managing single instancing data |
US9020890B2 (en) | 2012-03-30 | 2015-04-28 | Commvault Systems, Inc. | Smart archiving and data previewing for mobile devices |
WO2015084397A1 (en) * | 2013-12-06 | 2015-06-11 | Hewlett-Packard Development Company, L.P. | Replicating metadata associated with a file |
US9098495B2 (en) | 2008-06-24 | 2015-08-04 | Commvault Systems, Inc. | Application-aware and remote single instance data management |
US9633022B2 (en) | 2012-12-28 | 2017-04-25 | Commvault Systems, Inc. | Backup and restoration for a deduplicated file system |
US9773025B2 (en) | 2009-03-30 | 2017-09-26 | Commvault Systems, Inc. | Storing a variable number of instances of data objects |
US10089337B2 (en) | 2015-05-20 | 2018-10-02 | Commvault Systems, Inc. | Predicting scale of data migration between production and archive storage systems, such as for enterprise customers having large and/or numerous files |
US10180955B1 (en) * | 2016-06-22 | 2019-01-15 | Veritas Technologies Llc | Systems and methods for applying content-based retention policies to data artifacts |
US10324897B2 (en) | 2014-01-27 | 2019-06-18 | Commvault Systems, Inc. | Techniques for serving archived electronic mail |
US11593217B2 (en) | 2008-09-26 | 2023-02-28 | Commvault Systems, Inc. | Systems and methods for managing single instancing data |
Families Citing this family (264)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7581077B2 (en) | 1997-10-30 | 2009-08-25 | Commvault Systems, Inc. | Method and system for transferring data in a storage operation |
US6418478B1 (en) | 1997-10-30 | 2002-07-09 | Commvault Systems, Inc. | Pipelined high speed data transfer mechanism |
US7739381B2 (en) | 1998-03-11 | 2010-06-15 | Commvault Systems, Inc. | System and method for providing encryption in storage operations in a storage network, such as for use by application service providers that provide data storage services |
US7035880B1 (en) | 1999-07-14 | 2006-04-25 | Commvault Systems, Inc. | Modular backup and retrieval system used in conjunction with a storage area network |
US7389311B1 (en) | 1999-07-15 | 2008-06-17 | Commvault Systems, Inc. | Modular backup and retrieval system |
US7395282B1 (en) | 1999-07-15 | 2008-07-01 | Commvault Systems, Inc. | Hierarchical backup and retrieval system |
US7003641B2 (en) | 2000-01-31 | 2006-02-21 | Commvault Systems, Inc. | Logical view with granular access to exchange data managed by a modular data and storage management system |
US6658436B2 (en) | 2000-01-31 | 2003-12-02 | Commvault Systems, Inc. | Logical view and access to data managed by a modular data and storage management system |
US7155481B2 (en) | 2000-01-31 | 2006-12-26 | Commvault Systems, Inc. | Email attachment management in a computer system |
US7434219B2 (en) | 2000-01-31 | 2008-10-07 | Commvault Systems, Inc. | Storage of application specific profiles correlating to document versions |
US7107298B2 (en) | 2001-09-28 | 2006-09-12 | Commvault Systems, Inc. | System and method for archiving objects in an information store |
DE60232165D1 (en) | 2001-09-28 | 2009-06-10 | Commvault Systems Inc | SYSTEM AND METHOD FOR PRODUCING AND MANAGING FAST RECOVERY VOLUME |
US7603518B2 (en) | 2005-12-19 | 2009-10-13 | Commvault Systems, Inc. | System and method for improved media identification in a storage device |
US8346733B2 (en) | 2006-12-22 | 2013-01-01 | Commvault Systems, Inc. | Systems and methods of media management, such as management of media to and from a media storage library |
AU2003270482A1 (en) | 2002-09-09 | 2004-03-29 | Commvault Systems, Inc. | Dynamic storage device pooling in a computer system |
CA2499073C (en) | 2002-09-16 | 2013-07-23 | Commvault Systems, Inc. | Combined stream auxiliary copy system and method |
AU2003279847A1 (en) | 2002-10-07 | 2004-05-04 | Commvault Systems, Inc. | System and method for managing stored data |
WO2004090789A2 (en) | 2003-04-03 | 2004-10-21 | Commvault Systems, Inc. | System and method for extended media retention |
US7174433B2 (en) | 2003-04-03 | 2007-02-06 | Commvault Systems, Inc. | System and method for dynamically sharing media in a computer network |
US7454569B2 (en) | 2003-06-25 | 2008-11-18 | Commvault Systems, Inc. | Hierarchical system and method for performing storage operations in a computer network |
CA2546304A1 (en) | 2003-11-13 | 2005-05-26 | Commvault Systems, Inc. | System and method for performing an image level snapshot and for restoring partial volume data |
WO2005065084A2 (en) | 2003-11-13 | 2005-07-21 | Commvault Systems, Inc. | System and method for providing encryption in pipelined storage operations in a storage network |
WO2005050385A2 (en) | 2003-11-13 | 2005-06-02 | Commvault Systems, Inc. | System and method for performing integrated storage operations |
US7546324B2 (en) | 2003-11-13 | 2009-06-09 | Commvault Systems, Inc. | Systems and methods for performing storage operations using network attached storage |
US7809914B2 (en) | 2004-11-05 | 2010-10-05 | Commvault Systems, Inc. | Methods and system of pooling storage devices |
WO2006053050A2 (en) | 2004-11-08 | 2006-05-18 | Commvault Systems, Inc. | System and method for performing auxiliary storage operations |
US8959299B2 (en) | 2004-11-15 | 2015-02-17 | Commvault Systems, Inc. | Using a snapshot as a data source |
US7613752B2 (en) | 2005-11-28 | 2009-11-03 | Commvault Systems, Inc. | Systems and methods for using metadata to enhance data management operations |
US7606844B2 (en) | 2005-12-19 | 2009-10-20 | Commvault Systems, Inc. | System and method for performing replication copy storage operations |
US20200257596A1 (en) | 2005-12-19 | 2020-08-13 | Commvault Systems, Inc. | Systems and methods of unified reconstruction in storage systems |
US7617262B2 (en) | 2005-12-19 | 2009-11-10 | Commvault Systems, Inc. | Systems and methods for monitoring application data in a data replication system |
US8930496B2 (en) | 2005-12-19 | 2015-01-06 | Commvault Systems, Inc. | Systems and methods of unified reconstruction in storage systems |
ES2582364T3 (en) | 2005-12-19 | 2016-09-12 | Commvault Systems, Inc. | Systems and methods to perform data replication |
US7651593B2 (en) | 2005-12-19 | 2010-01-26 | Commvault Systems, Inc. | Systems and methods for performing data replication |
US7636743B2 (en) | 2005-12-19 | 2009-12-22 | Commvault Systems, Inc. | Pathname translation in a data replication system |
US7962709B2 (en) | 2005-12-19 | 2011-06-14 | Commvault Systems, Inc. | Network redirector systems and methods for performing data replication |
US8661216B2 (en) | 2005-12-19 | 2014-02-25 | Commvault Systems, Inc. | Systems and methods for migrating components in a hierarchical storage network |
US8726242B2 (en) | 2006-07-27 | 2014-05-13 | Commvault Systems, Inc. | Systems and methods for continuous data replication |
US7539783B2 (en) | 2006-09-22 | 2009-05-26 | Commvault Systems, Inc. | Systems and methods of media management, such as management of media to and from a media storage library, including removable media |
US8655914B2 (en) | 2006-10-17 | 2014-02-18 | Commvault Systems, Inc. | System and method for storage operation access security |
US7882077B2 (en) | 2006-10-17 | 2011-02-01 | Commvault Systems, Inc. | Method and system for offline indexing of content and classifying stored data |
US8370442B2 (en) | 2008-08-29 | 2013-02-05 | Commvault Systems, Inc. | Method and system for leveraging identified changes to a mail server |
WO2008070688A1 (en) | 2006-12-04 | 2008-06-12 | Commvault Systems, Inc. | Systems and methods for creating copies of data, such as archive copies |
US20080228771A1 (en) | 2006-12-22 | 2008-09-18 | Commvault Systems, Inc. | Method and system for searching stored data |
US8312323B2 (en) | 2006-12-22 | 2012-11-13 | Commvault Systems, Inc. | Systems and methods for remote monitoring in a computer network and reporting a failed migration operation without accessing the data being moved |
US7831566B2 (en) | 2006-12-22 | 2010-11-09 | Commvault Systems, Inc. | Systems and methods of hierarchical storage management, such as global management of storage operations |
US7734669B2 (en) | 2006-12-22 | 2010-06-08 | Commvault Systems, Inc. | Managing copies of data |
US8719809B2 (en) | 2006-12-22 | 2014-05-06 | Commvault Systems, Inc. | Point in time rollback and un-installation of software |
US8290808B2 (en) | 2007-03-09 | 2012-10-16 | Commvault Systems, Inc. | System and method for automating customer-validated statement of work for a data storage environment |
CN103123702B (en) | 2007-08-28 | 2017-11-28 | Commvault系统公司 | Such as the managing power consumption of the data processing resources of the adaptive managing power consumption of data storage operations |
US8706976B2 (en) | 2007-08-30 | 2014-04-22 | Commvault Systems, Inc. | Parallel access virtual tape library and drives |
US8396838B2 (en) | 2007-10-17 | 2013-03-12 | Commvault Systems, Inc. | Legal compliance, electronic discovery and electronic document handling of online and offline copies of data |
US8135676B1 (en) * | 2008-04-28 | 2012-03-13 | Netapp, Inc. | Method and system for managing data in storage systems |
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 |
US8484162B2 (en) | 2008-06-24 | 2013-07-09 | Commvault Systems, Inc. | De-duplication systems and methods for application-specific data |
US8108446B1 (en) * | 2008-06-27 | 2012-01-31 | Symantec Corporation | Methods and systems for managing deduplicated data using unilateral referencing |
US8788466B2 (en) * | 2008-08-05 | 2014-07-22 | International Business Machines Corporation | Efficient transfer of deduplicated data |
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 |
US8307177B2 (en) | 2008-09-05 | 2012-11-06 | Commvault Systems, Inc. | Systems and methods for management of virtualization data |
US20100070474A1 (en) | 2008-09-12 | 2010-03-18 | Lad Kamleshkumar K | Transferring or migrating portions of data objects, such as block-level data migration or chunk-based data migration |
US20100070466A1 (en) | 2008-09-15 | 2010-03-18 | Anand Prahlad | Data transfer techniques within data storage devices, such as network attached storage performing data migration |
CA2739795A1 (en) * | 2008-10-08 | 2010-04-15 | Adkeeper Inc. | Managing internet advertising and promotional content |
US8712026B1 (en) * | 2008-10-27 | 2014-04-29 | Sprint Spectrum L.P. | Method and system for distributing ringback files |
US8204859B2 (en) | 2008-12-10 | 2012-06-19 | Commvault Systems, Inc. | Systems and methods for managing replicated database data |
US9495382B2 (en) | 2008-12-10 | 2016-11-15 | Commvault Systems, Inc. | Systems and methods for performing discrete data replication |
US8434131B2 (en) | 2009-03-20 | 2013-04-30 | Commvault Systems, Inc. | Managing connections in a data storage system |
US20100333116A1 (en) | 2009-06-30 | 2010-12-30 | Anand Prahlad | Cloud gateway system for managing data storage to cloud storage sites |
US8930306B1 (en) | 2009-07-08 | 2015-01-06 | Commvault Systems, Inc. | Synchronized data deduplication |
US8204867B2 (en) * | 2009-07-29 | 2012-06-19 | International Business Machines Corporation | Apparatus, system, and method for enhanced block-level deduplication |
US8280854B1 (en) | 2009-09-01 | 2012-10-02 | Symantec Corporation | Systems and methods for relocating deduplicated data within a multi-device storage system |
US8719767B2 (en) | 2011-03-31 | 2014-05-06 | Commvault Systems, Inc. | Utilizing snapshots to provide builds to developer computing devices |
US8706867B2 (en) | 2011-03-31 | 2014-04-22 | Commvault Systems, Inc. | Realtime streaming of multimedia content from secondary storage devices |
US9092500B2 (en) | 2009-09-03 | 2015-07-28 | Commvault Systems, Inc. | Utilizing snapshots for access to databases and other applications |
US8510275B2 (en) | 2009-09-21 | 2013-08-13 | Dell Products L.P. | File aware block level deduplication |
US8204862B1 (en) * | 2009-10-02 | 2012-06-19 | Symantec Corporation | Systems and methods for restoring deduplicated data |
WO2011082138A1 (en) | 2009-12-31 | 2011-07-07 | Commvault Systems, Inc. | Systems and methods for performing data management operations using snapshots |
WO2011082113A1 (en) | 2009-12-31 | 2011-07-07 | Commvault Systems, Inc. | Asynchronous methods of data classification using change journals and other data structures |
WO2011082132A1 (en) | 2009-12-31 | 2011-07-07 | Commvault Systems, Inc. | Systems and methods for analyzing snapshots |
US8370297B2 (en) | 2010-03-08 | 2013-02-05 | International Business Machines Corporation | Approach for optimizing restores of deduplicated data |
US8504517B2 (en) | 2010-03-29 | 2013-08-06 | Commvault Systems, Inc. | Systems and methods for selective data replication |
JP5464269B2 (en) * | 2010-03-29 | 2014-04-09 | 日本電気株式会社 | File storage device, data storage method, and data storage program |
US8725698B2 (en) | 2010-03-30 | 2014-05-13 | Commvault Systems, Inc. | Stub file prioritization in a data replication system |
US8504515B2 (en) | 2010-03-30 | 2013-08-06 | Commvault Systems, Inc. | Stubbing systems and methods in a data replication environment |
US8352422B2 (en) | 2010-03-30 | 2013-01-08 | Commvault Systems, Inc. | Data restore systems and methods in a replication environment |
US8572038B2 (en) | 2010-05-28 | 2013-10-29 | Commvault Systems, Inc. | Systems and methods for performing data replication |
US11449394B2 (en) | 2010-06-04 | 2022-09-20 | Commvault Systems, Inc. | Failover systems and methods for performing backup operations, including heterogeneous indexing and load balancing of backup and indexing resources |
WO2012030383A1 (en) * | 2010-08-31 | 2012-03-08 | Falconstor, Inc. | Data deduplication |
US8495392B1 (en) * | 2010-09-02 | 2013-07-23 | Symantec Corporation | Systems and methods for securely deduplicating data owned by multiple entities |
DK2622469T3 (en) | 2010-09-30 | 2020-02-17 | Commvault Systems Inc | Effective data management enhancements, such as docking limited-function data management modules for a complete data management system |
US8364652B2 (en) | 2010-09-30 | 2013-01-29 | Commvault Systems, Inc. | Content aligned block-based deduplication |
US9244779B2 (en) | 2010-09-30 | 2016-01-26 | Commvault Systems, Inc. | Data recovery operations, such as recovery from modified network data management protocol data |
US8578109B2 (en) | 2010-09-30 | 2013-11-05 | Commvault Systems, Inc. | Systems and methods for retaining and using data block signatures in data protection operations |
US9104623B2 (en) | 2010-12-14 | 2015-08-11 | Commvault Systems, Inc. | Client-side repository in a networked deduplicated storage system |
US9020900B2 (en) | 2010-12-14 | 2015-04-28 | Commvault Systems, Inc. | Distributed deduplicated storage system |
US9021198B1 (en) | 2011-01-20 | 2015-04-28 | Commvault Systems, Inc. | System and method for sharing SAN storage |
US8849768B1 (en) * | 2011-03-08 | 2014-09-30 | Symantec Corporation | Systems and methods for classifying files as candidates for deduplication |
US8849762B2 (en) | 2011-03-31 | 2014-09-30 | Commvault Systems, Inc. | Restoring computing environments, such as autorecovery of file systems at certain points in time |
US8719264B2 (en) | 2011-03-31 | 2014-05-06 | Commvault Systems, Inc. | Creating secondary copies of data based on searches for content |
US8719457B2 (en) * | 2011-04-17 | 2014-05-06 | Apple Inc. | Efficient connection management in a SAS target |
US9372827B2 (en) | 2011-09-30 | 2016-06-21 | Commvault Systems, Inc. | Migration of an existing computing system to new hardware |
US9116633B2 (en) | 2011-09-30 | 2015-08-25 | Commvault Systems, Inc. | Information management of virtual machines having mapped storage devices |
US9461881B2 (en) | 2011-09-30 | 2016-10-04 | Commvault Systems, Inc. | Migration of existing computing systems to cloud computing sites or virtual machines |
WO2013070792A1 (en) * | 2011-11-07 | 2013-05-16 | Nexgen Storage, Inc. | Primary data storage system with staged deduplication |
US10216651B2 (en) | 2011-11-07 | 2019-02-26 | Nexgen Storage, Inc. | Primary data storage system with data tiering |
US9529829B1 (en) * | 2011-11-18 | 2016-12-27 | Veritas Technologies Llc | System and method to facilitate the use of processed data from a storage system to perform tasks |
US9396277B2 (en) | 2011-12-09 | 2016-07-19 | Microsoft Technology Licensing, Llc | Access to supplemental data based on identifier derived from corresponding primary application data |
US9471578B2 (en) | 2012-03-07 | 2016-10-18 | Commvault Systems, Inc. | Data storage system utilizing proxy device for storage operations |
US9298715B2 (en) | 2012-03-07 | 2016-03-29 | Commvault Systems, Inc. | Data storage system utilizing proxy device for storage operations |
WO2013148096A1 (en) | 2012-03-30 | 2013-10-03 | Commvault Systems, Inc. | Informaton management of mobile device data |
US10157184B2 (en) | 2012-03-30 | 2018-12-18 | Commvault Systems, Inc. | Data previewing before recalling large data files |
US8950009B2 (en) | 2012-03-30 | 2015-02-03 | Commvault Systems, Inc. | Information management of data associated with multiple cloud services |
US9262496B2 (en) | 2012-03-30 | 2016-02-16 | Commvault Systems, Inc. | Unified access to personal data |
US9262428B2 (en) | 2012-04-23 | 2016-02-16 | International Business Machines Corporation | Preserving redundancy in data deduplication systems by designation of virtual address |
US8949179B2 (en) | 2012-04-23 | 2015-02-03 | Google, Inc. | Sharing and synchronizing electronically stored files |
US10133747B2 (en) | 2012-04-23 | 2018-11-20 | International Business Machines Corporation | Preserving redundancy in data deduplication systems by designation of virtual device |
US9342537B2 (en) | 2012-04-23 | 2016-05-17 | Commvault Systems, Inc. | Integrated snapshot interface for a data storage system |
US9529818B2 (en) | 2012-04-23 | 2016-12-27 | Google Inc. | Sharing and synchronizing electronically stored files |
CN108710533B (en) * | 2012-04-23 | 2022-04-19 | 谷歌有限责任公司 | Sharing and synchronizing electronically stored files |
US8996881B2 (en) | 2012-04-23 | 2015-03-31 | International Business Machines Corporation | Preserving redundancy in data deduplication systems by encryption |
US9779103B2 (en) | 2012-04-23 | 2017-10-03 | International Business Machines Corporation | Preserving redundancy in data deduplication systems |
EP2842050A4 (en) * | 2012-04-23 | 2016-01-13 | Google Inc | Sharing and synchronizing electronically stored files |
US8892523B2 (en) | 2012-06-08 | 2014-11-18 | Commvault Systems, Inc. | Auto summarization of content |
WO2013188550A1 (en) | 2012-06-13 | 2013-12-19 | Commvault Systems, Inc. | Client-side signature repository in a networked storage system |
US9575978B2 (en) | 2012-06-26 | 2017-02-21 | International Business Machines Corporation | Restoring objects in a client-server environment |
US9135588B2 (en) * | 2012-06-27 | 2015-09-15 | M-Files Oy | Method for controlling workflow |
US9971787B2 (en) * | 2012-07-23 | 2018-05-15 | Red Hat, Inc. | Unified file and object data storage |
US9262429B2 (en) * | 2012-08-13 | 2016-02-16 | Microsoft Technology Licensing, Llc | De-duplicating attachments on message delivery and automated repair of attachments |
US9740702B2 (en) | 2012-12-21 | 2017-08-22 | Commvault Systems, Inc. | Systems and methods to identify unprotected virtual machines |
US9223597B2 (en) | 2012-12-21 | 2015-12-29 | Commvault Systems, Inc. | Archiving virtual machines in a data storage system |
US9069799B2 (en) | 2012-12-27 | 2015-06-30 | Commvault Systems, Inc. | Restoration of centralized data storage manager, such as data storage manager in a hierarchical data storage system |
US9633216B2 (en) | 2012-12-27 | 2017-04-25 | Commvault Systems, Inc. | Application of information management policies based on operation with a geographic entity |
US10346259B2 (en) | 2012-12-28 | 2019-07-09 | Commvault Systems, Inc. | Data recovery using a cloud-based remote data recovery center |
US9378035B2 (en) | 2012-12-28 | 2016-06-28 | Commvault Systems, Inc. | Systems and methods for repurposing virtual machines |
US9703584B2 (en) | 2013-01-08 | 2017-07-11 | Commvault Systems, Inc. | Virtual server agent load balancing |
US9262435B2 (en) | 2013-01-11 | 2016-02-16 | Commvault Systems, Inc. | Location-based data synchronization management |
US9886346B2 (en) | 2013-01-11 | 2018-02-06 | Commvault Systems, Inc. | Single snapshot for multiple agents |
US20140201162A1 (en) | 2013-01-11 | 2014-07-17 | Commvault Systems, Inc. | Systems and methods to restore selected files from block-level backup for virtual machines |
US9665591B2 (en) | 2013-01-11 | 2017-05-30 | Commvault Systems, Inc. | High availability distributed deduplicated storage system |
US20140201485A1 (en) * | 2013-01-14 | 2014-07-17 | Commvault Systems, Inc. | Pst file archiving |
US9286110B2 (en) | 2013-01-14 | 2016-03-15 | Commvault Systems, Inc. | Seamless virtual machine recall in a data storage system |
US9459968B2 (en) | 2013-03-11 | 2016-10-04 | Commvault Systems, Inc. | Single index to query multiple backup formats |
US20150074536A1 (en) | 2013-09-12 | 2015-03-12 | Commvault Systems, Inc. | File manager integration with virtualization in an information management system, including user control and storage management of virtual machines |
US10545918B2 (en) | 2013-11-22 | 2020-01-28 | Orbis Technologies, Inc. | Systems and computer implemented methods for semantic data compression |
US9922300B2 (en) * | 2013-11-26 | 2018-03-20 | Sap Se | Enterprise performance management planning operations at an enterprise database |
US9753812B2 (en) | 2014-01-24 | 2017-09-05 | Commvault Systems, Inc. | Generating mapping information for single snapshot for multiple applications |
US9632874B2 (en) | 2014-01-24 | 2017-04-25 | Commvault Systems, Inc. | Database application backup in single snapshot for multiple applications |
US9639426B2 (en) | 2014-01-24 | 2017-05-02 | Commvault Systems, Inc. | Single snapshot for multiple applications |
US9495251B2 (en) | 2014-01-24 | 2016-11-15 | Commvault Systems, Inc. | Snapshot readiness checking and reporting |
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 |
US9633026B2 (en) | 2014-03-13 | 2017-04-25 | Commvault Systems, Inc. | Systems and methods for protecting email data |
US9633056B2 (en) | 2014-03-17 | 2017-04-25 | Commvault Systems, Inc. | Maintaining a deduplication database |
US10380072B2 (en) | 2014-03-17 | 2019-08-13 | Commvault Systems, Inc. | Managing deletions from a deduplication database |
US9811427B2 (en) | 2014-04-02 | 2017-11-07 | Commvault Systems, Inc. | Information management by a media agent in the absence of communications with a storage manager |
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 |
US9848045B2 (en) | 2014-05-27 | 2017-12-19 | Commvault Systems, Inc. | Offline messaging between a repository storage operation cell and remote storage operation cells via an intermediary media agent |
US20160019317A1 (en) | 2014-07-16 | 2016-01-21 | Commvault Systems, Inc. | Volume or virtual machine level backup and generating placeholders for virtual machine files |
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 |
US10140303B1 (en) | 2014-08-22 | 2018-11-27 | Nexgen Storage, Inc. | Application aware snapshots |
US9774672B2 (en) | 2014-09-03 | 2017-09-26 | Commvault Systems, Inc. | Consolidated processing of storage-array commands by a snapshot-control media agent |
US10042716B2 (en) | 2014-09-03 | 2018-08-07 | Commvault Systems, Inc. | Consolidated processing of storage-array commands using a forwarder media agent in conjunction with a snapshot-control media agent |
US9436555B2 (en) | 2014-09-22 | 2016-09-06 | Commvault Systems, Inc. | Efficient live-mount of a backed up virtual machine in a storage management system |
US9710465B2 (en) | 2014-09-22 | 2017-07-18 | Commvault Systems, Inc. | Efficiently restoring execution of a backed up virtual machine based on coordination with virtual-machine-file-relocation operations |
US9417968B2 (en) | 2014-09-22 | 2016-08-16 | Commvault Systems, Inc. | Efficiently restoring execution of a backed up virtual machine based on coordination with virtual-machine-file-relocation operations |
US10204010B2 (en) | 2014-10-03 | 2019-02-12 | Commvault Systems, Inc. | Intelligent protection of off-line mail data |
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 |
US9575673B2 (en) | 2014-10-29 | 2017-02-21 | Commvault Systems, Inc. | Accessing a file system using tiered deduplication |
US10776209B2 (en) | 2014-11-10 | 2020-09-15 | Commvault Systems, Inc. | Cross-platform virtual machine backup and replication |
US9448731B2 (en) | 2014-11-14 | 2016-09-20 | Commvault Systems, Inc. | Unified snapshot storage management |
US9648105B2 (en) | 2014-11-14 | 2017-05-09 | Commvault Systems, Inc. | Unified snapshot storage management, using an enhanced storage manager and enhanced media agents |
US20160142485A1 (en) | 2014-11-19 | 2016-05-19 | Commvault Systems, Inc. | Migration to cloud storage from backup |
US9983936B2 (en) | 2014-11-20 | 2018-05-29 | Commvault Systems, Inc. | Virtual machine change block tracking |
US9904481B2 (en) | 2015-01-23 | 2018-02-27 | Commvault Systems, Inc. | Scalable auxiliary copy processing in a storage management system using media agent resources |
US9898213B2 (en) | 2015-01-23 | 2018-02-20 | Commvault Systems, Inc. | Scalable auxiliary copy processing using media agent resources |
US9928144B2 (en) | 2015-03-30 | 2018-03-27 | Commvault Systems, Inc. | Storage management of data using an open-archive architecture, including streamlined access to primary data originally stored on network-attached storage and archived to secondary storage |
US10339106B2 (en) | 2015-04-09 | 2019-07-02 | Commvault Systems, Inc. | Highly reusable deduplication database after disaster recovery |
US10311150B2 (en) | 2015-04-10 | 2019-06-04 | Commvault Systems, Inc. | Using a Unix-based file system to manage and serve clones to windows-based computing clients |
US20160350391A1 (en) | 2015-05-26 | 2016-12-01 | Commvault Systems, Inc. | Replication using deduplicated secondary copy data |
US9824092B2 (en) * | 2015-06-16 | 2017-11-21 | Microsoft Technology Licensing, Llc | File storage system including tiers |
US9563514B2 (en) | 2015-06-19 | 2017-02-07 | Commvault Systems, Inc. | Assignment of proxies for virtual-machine secondary copy operations including streaming backup jobs |
US10084873B2 (en) | 2015-06-19 | 2018-09-25 | Commvault Systems, Inc. | Assignment of data agent proxies for executing virtual-machine secondary copy operations including streaming backup jobs |
US10284433B2 (en) | 2015-06-25 | 2019-05-07 | International Business Machines Corporation | Data synchronization using redundancy detection |
US9910906B2 (en) | 2015-06-25 | 2018-03-06 | International Business Machines Corporation | Data synchronization using redundancy detection |
US9922033B1 (en) * | 2015-06-30 | 2018-03-20 | Veritas Technologies Llc | Systems and methods for efficiently extracting contents of container files |
US9766825B2 (en) | 2015-07-22 | 2017-09-19 | Commvault Systems, Inc. | Browse and restore for block-level backups |
US10101913B2 (en) | 2015-09-02 | 2018-10-16 | Commvault Systems, Inc. | Migrating data to disk without interrupting running backup operations |
US10339683B2 (en) | 2015-09-23 | 2019-07-02 | Vmware, Inc. | Performance diagnostic for virtual machines |
US10310953B2 (en) | 2015-12-30 | 2019-06-04 | Commvault Systems, Inc. | System for redirecting requests after a secondary storage computing device failure |
US11036394B2 (en) | 2016-01-15 | 2021-06-15 | Falconstor, Inc. | Data deduplication cache comprising solid state drive storage and the like |
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) |
US10565067B2 (en) | 2016-03-09 | 2020-02-18 | Commvault Systems, Inc. | Virtual server cloud file system for virtual machine backup from cloud operations |
US10503753B2 (en) | 2016-03-10 | 2019-12-10 | Commvault Systems, Inc. | Snapshot replication operations based on incremental block change tracking |
US10417102B2 (en) | 2016-09-30 | 2019-09-17 | Commvault Systems, Inc. | Heartbeat monitoring of virtual machines for initiating failover operations in a data storage management system, including virtual machine distribution logic |
US10540516B2 (en) | 2016-10-13 | 2020-01-21 | Commvault Systems, Inc. | Data protection within an unsecured storage environment |
US10162528B2 (en) | 2016-10-25 | 2018-12-25 | Commvault Systems, Inc. | Targeted snapshot based on virtual machine location |
US10152251B2 (en) | 2016-10-25 | 2018-12-11 | Commvault Systems, Inc. | Targeted backup of virtual machine |
US10678758B2 (en) | 2016-11-21 | 2020-06-09 | Commvault Systems, Inc. | Cross-platform virtual machine data and memory backup and replication |
US10838821B2 (en) | 2017-02-08 | 2020-11-17 | Commvault Systems, Inc. | Migrating content and metadata from a backup system |
US20180232381A1 (en) * | 2017-02-13 | 2018-08-16 | Acronis International Gmbh | System and method for efficient backup of common applications |
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 |
US10949308B2 (en) | 2017-03-15 | 2021-03-16 | Commvault Systems, Inc. | Application aware backup of virtual machines |
US10877851B2 (en) | 2017-03-24 | 2020-12-29 | Commvault Systems, Inc. | Virtual machine recovery point selection |
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 |
US11108858B2 (en) | 2017-03-28 | 2021-08-31 | Commvault Systems, Inc. | Archiving mail servers via a simple mail transfer protocol (SMTP) server |
US11074138B2 (en) | 2017-03-29 | 2021-07-27 | Commvault Systems, Inc. | Multi-streaming backup operations for mailboxes |
US10387073B2 (en) | 2017-03-29 | 2019-08-20 | Commvault Systems, Inc. | External dynamic virtual machine synchronization |
US11074140B2 (en) | 2017-03-29 | 2021-07-27 | Commvault Systems, Inc. | Live browsing of granular mailbox data |
US10552294B2 (en) | 2017-03-31 | 2020-02-04 | Commvault Systems, Inc. | Management of internet of things devices |
US11294786B2 (en) | 2017-03-31 | 2022-04-05 | Commvault Systems, Inc. | Management of internet of things devices |
US10853195B2 (en) | 2017-03-31 | 2020-12-01 | Commvault Systems, Inc. | Granular restoration of virtual machine application data |
US11010261B2 (en) | 2017-03-31 | 2021-05-18 | Commvault Systems, Inc. | Dynamically allocating streams during restoration of data |
US11221939B2 (en) | 2017-03-31 | 2022-01-11 | Commvault Systems, Inc. | Managing data from internet of things devices in a vehicle |
US10984041B2 (en) | 2017-05-11 | 2021-04-20 | Commvault Systems, Inc. | Natural language processing integrated with database and data storage management |
US10664352B2 (en) | 2017-06-14 | 2020-05-26 | Commvault Systems, Inc. | Live browsing of backed up data residing on cloned disks |
US10564885B1 (en) * | 2017-07-28 | 2020-02-18 | EMC IP Holding Company LLC | Data storage system with free storage space management using policy-based copy harvesting functionality |
US10742735B2 (en) | 2017-12-12 | 2020-08-11 | Commvault Systems, Inc. | Enhanced network attached storage (NAS) services interfacing to cloud storage |
US10795927B2 (en) | 2018-02-05 | 2020-10-06 | Commvault Systems, Inc. | On-demand metadata extraction of clinical image data |
US10740022B2 (en) | 2018-02-14 | 2020-08-11 | Commvault Systems, Inc. | Block-level live browsing and private writable backup copies using an ISCSI server |
US20190251204A1 (en) | 2018-02-14 | 2019-08-15 | Commvault Systems, Inc. | Targeted search of backup data using calendar event data |
US10642886B2 (en) | 2018-02-14 | 2020-05-05 | Commvault Systems, Inc. | Targeted search of backup data using facial recognition |
US10877928B2 (en) | 2018-03-07 | 2020-12-29 | Commvault Systems, Inc. | Using utilities injected into cloud-based virtual machines for speeding up virtual machine backup operations |
US10754729B2 (en) | 2018-03-12 | 2020-08-25 | Commvault Systems, Inc. | Recovery point objective (RPO) driven backup scheduling in a data storage management system |
US10789387B2 (en) | 2018-03-13 | 2020-09-29 | Commvault Systems, Inc. | Graphical representation of an information management system |
US10891198B2 (en) | 2018-07-30 | 2021-01-12 | Commvault Systems, Inc. | Storing data to cloud libraries in cloud native formats |
US11159469B2 (en) | 2018-09-12 | 2021-10-26 | Commvault Systems, Inc. | Using machine learning to modify presentation of mailbox objects |
US11010258B2 (en) | 2018-11-27 | 2021-05-18 | Commvault Systems, Inc. | Generating backup copies through interoperability between components of a data storage management system and appliances for data storage and deduplication |
US11200124B2 (en) | 2018-12-06 | 2021-12-14 | Commvault Systems, Inc. | Assigning backup resources based on failover of partnered data storage servers in a data storage management system |
US10860443B2 (en) | 2018-12-10 | 2020-12-08 | Commvault Systems, Inc. | Evaluation and reporting of recovery readiness in a data storage management system |
US11698727B2 (en) | 2018-12-14 | 2023-07-11 | Commvault Systems, Inc. | Performing secondary copy operations based on deduplication performance |
US10768971B2 (en) | 2019-01-30 | 2020-09-08 | Commvault Systems, Inc. | Cross-hypervisor live mount of backed up virtual machine data |
US10996974B2 (en) | 2019-01-30 | 2021-05-04 | Commvault Systems, Inc. | Cross-hypervisor live mount of backed up virtual machine data, including management of cache storage for virtual machine data |
US20200327017A1 (en) | 2019-04-10 | 2020-10-15 | Commvault Systems, Inc. | Restore using deduplicated secondary copy data |
US10721193B1 (en) * | 2019-04-15 | 2020-07-21 | Microsoft Technology Licensing, Llc | Reducing avoidable transmission of an attachment to a message by comparing the fingerprint of the attachment to be sent to that of an attachment that was previously sent or received by the user and indicating to the user when a match occurs that the attachment is redundant |
US10721198B1 (en) * | 2019-04-15 | 2020-07-21 | Microsoft Technology Licensing, Llc | Reducing avoidable transmission of an attachment to a message by comparing the fingerprint of a received attachment to that of a previously received attachment and indicating to the transmitting user when a match occurs that the attachment does not need to be transmitted |
US11494273B2 (en) | 2019-04-30 | 2022-11-08 | Commvault Systems, Inc. | Holistically protecting serverless applications across one or more cloud computing environments |
US11463264B2 (en) | 2019-05-08 | 2022-10-04 | Commvault Systems, Inc. | Use of data block signatures for monitoring in an information management system |
US11461184B2 (en) | 2019-06-17 | 2022-10-04 | Commvault Systems, Inc. | Data storage management system for protecting cloud-based data including on-demand protection, recovery, and migration of databases-as-a-service and/or serverless database management systems |
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 |
US11561866B2 (en) | 2019-07-10 | 2023-01-24 | Commvault Systems, Inc. | Preparing containerized applications for backup using a backup services container and a backup services container-orchestration pod |
US11042318B2 (en) | 2019-07-29 | 2021-06-22 | Commvault Systems, Inc. | Block-level data replication |
US20210173811A1 (en) | 2019-12-04 | 2021-06-10 | Commvault Systems, Inc. | Optimizing the restoration of deduplicated data stored in multi-node replicated file systems |
US11467753B2 (en) | 2020-02-14 | 2022-10-11 | Commvault Systems, Inc. | On-demand restore of virtual machine data |
US11321188B2 (en) | 2020-03-02 | 2022-05-03 | Commvault Systems, Inc. | Platform-agnostic containerized application data protection |
US11422900B2 (en) | 2020-03-02 | 2022-08-23 | Commvault Systems, Inc. | Platform-agnostic containerized application data protection |
US11442768B2 (en) | 2020-03-12 | 2022-09-13 | Commvault Systems, Inc. | Cross-hypervisor live recovery of virtual machines |
US11099956B1 (en) | 2020-03-26 | 2021-08-24 | Commvault Systems, Inc. | Snapshot-based disaster recovery orchestration of virtual machine failover and failback operations |
US11500669B2 (en) | 2020-05-15 | 2022-11-15 | Commvault Systems, Inc. | Live recovery of virtual machines in a public cloud computing environment |
US11687424B2 (en) | 2020-05-28 | 2023-06-27 | Commvault Systems, Inc. | Automated media agent state management |
US12130708B2 (en) | 2020-07-10 | 2024-10-29 | Commvault Systems, Inc. | Cloud-based air-gapped data storage management system |
US11494417B2 (en) | 2020-08-07 | 2022-11-08 | Commvault Systems, Inc. | Automated email classification in an information management system |
US11500566B2 (en) | 2020-08-25 | 2022-11-15 | Commvault Systems, Inc. | Cloud-based distributed data storage system using block-level deduplication based on backup frequencies of incoming backup copies |
US11314687B2 (en) | 2020-09-24 | 2022-04-26 | Commvault Systems, Inc. | Container data mover for migrating data between distributed data storage systems integrated with application orchestrators |
US11656951B2 (en) | 2020-10-28 | 2023-05-23 | Commvault Systems, Inc. | Data loss vulnerability detection |
US11604706B2 (en) | 2021-02-02 | 2023-03-14 | Commvault Systems, Inc. | Back up and restore related data on different cloud storage tiers |
US12032855B2 (en) | 2021-08-06 | 2024-07-09 | Commvault Systems, Inc. | Using an application orchestrator computing environment for automatically scaled deployment of data protection resources needed for data in a production cluster distinct from the application orchestrator or in another application orchestrator computing environment |
US11593223B1 (en) | 2021-09-02 | 2023-02-28 | Commvault Systems, Inc. | Using resource pool administrative entities in a data storage management system to provide shared infrastructure to tenants |
US11809285B2 (en) | 2022-02-09 | 2023-11-07 | Commvault Systems, Inc. | Protecting a management database of a data storage management system to meet a recovery point objective (RPO) |
US12056018B2 (en) | 2022-06-17 | 2024-08-06 | Commvault Systems, Inc. | Systems and methods for enforcing a recovery point objective (RPO) for a production database without generating secondary copies of the production database |
US12135618B2 (en) | 2022-07-11 | 2024-11-05 | Commvault Systems, Inc. | Protecting configuration data in a clustered container system |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6073133A (en) * | 1998-05-15 | 2000-06-06 | Micron Electronics Inc. | Electronic mail attachment verifier |
US6167402A (en) * | 1998-04-27 | 2000-12-26 | Sun Microsystems, Inc. | High performance message store |
US20020065892A1 (en) * | 2000-11-30 | 2002-05-30 | Malik Dale W. | Method and apparatus for minimizing storage of common attachment files in an e-mail communications server |
US20020169934A1 (en) * | 2001-03-23 | 2002-11-14 | Oliver Krapp | Methods and systems for eliminating data redundancies |
US20030172368A1 (en) * | 2001-12-26 | 2003-09-11 | Elizabeth Alumbaugh | System and method for autonomously generating heterogeneous data source interoperability bridges based on semantic modeling derived from self adapting ontology |
US20030236763A1 (en) * | 2002-06-25 | 2003-12-25 | Alan Kilduff | Electronic message filing system |
US6745197B2 (en) * | 2001-03-19 | 2004-06-01 | Preston Gates Ellis Llp | System and method for efficiently processing messages stored in multiple message stores |
US20050055359A1 (en) * | 2001-03-19 | 2005-03-10 | Kenji Kawai | System and method for evaluating a structured message store for message redundancy |
US20060123313A1 (en) * | 2004-11-22 | 2006-06-08 | Research In Motion Limited | System and method for securely adding redundancy to an electronic message |
US20060129875A1 (en) * | 2004-11-05 | 2006-06-15 | Barrall Geoffrey S | Storage system condition indicator and method |
US20080034045A1 (en) * | 2006-08-02 | 2008-02-07 | Bardsley Jeffrey S | Methods, systems, and computer program products for managing electronic subscriptions |
US7383304B2 (en) * | 2002-02-12 | 2008-06-03 | Canon Kabushiki Kaisha | System, method, program and storage medium for processing electronic mail |
US20090012984A1 (en) * | 2007-07-02 | 2009-01-08 | Equivio Ltd. | Method for Organizing Large Numbers of Documents |
US20090106369A1 (en) * | 2007-10-18 | 2009-04-23 | Yen-Fu Chen | Duplicate email address detection for a contact |
US20090150498A1 (en) * | 2007-12-07 | 2009-06-11 | Steven Joseph Branda | Identifying a Plurality of Related Electronic Messages and Combining the Plurality of Related Messages Into a Composite View |
US20090204636A1 (en) * | 2008-02-11 | 2009-08-13 | Microsoft Corporation | Multimodal object de-duplication |
Family Cites Families (134)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4686620A (en) * | 1984-07-26 | 1987-08-11 | American Telephone And Telegraph Company, At&T Bell Laboratories | Database backup method |
GB8622010D0 (en) | 1986-09-12 | 1986-10-22 | Hewlett Packard Ltd | File backup facility |
US5193154A (en) * | 1987-07-10 | 1993-03-09 | Hitachi, Ltd. | Buffered peripheral system and method for backing up and retrieving data to and from backup memory device |
US5005122A (en) * | 1987-09-08 | 1991-04-02 | Digital Equipment Corporation | Arrangement with cooperating management server node and network service node |
JPH0743676B2 (en) * | 1988-03-11 | 1995-05-15 | 株式会社日立製作所 | Back-up data dump control method and device |
US4995035A (en) * | 1988-10-31 | 1991-02-19 | International Business Machines Corporation | Centralized management in a computer network |
US5093912A (en) * | 1989-06-26 | 1992-03-03 | International Business Machines Corporation | Dynamic resource pool expansion and contraction in multiprocessing environments |
EP0405926B1 (en) | 1989-06-30 | 1996-12-04 | Digital Equipment Corporation | Method and apparatus for managing a shadow set of storage media |
US5133065A (en) * | 1989-07-27 | 1992-07-21 | Personal Computer Peripherals Corporation | Backup computer program for networks |
US5321816A (en) * | 1989-10-10 | 1994-06-14 | Unisys Corporation | Local-remote apparatus with specialized image storage modules |
US5504873A (en) * | 1989-11-01 | 1996-04-02 | E-Systems, Inc. | Mass data storage and retrieval system |
US5276860A (en) * | 1989-12-19 | 1994-01-04 | Epoch Systems, Inc. | Digital data processor with improved backup storage |
US5276867A (en) * | 1989-12-19 | 1994-01-04 | Epoch Systems, Inc. | Digital data storage system with improved data migration |
GB2246218B (en) | 1990-07-18 | 1994-02-09 | Stc Plc | Distributed data processing systems |
US5239647A (en) * | 1990-09-07 | 1993-08-24 | International Business Machines Corporation | Data storage hierarchy with shared storage level |
US5544347A (en) * | 1990-09-24 | 1996-08-06 | Emc Corporation | Data storage system controlled remote data mirroring with respectively maintained data indices |
US5212772A (en) * | 1991-02-11 | 1993-05-18 | Gigatrend Incorporated | System for storing data in backup tape device |
US5287500A (en) * | 1991-06-03 | 1994-02-15 | Digital Equipment Corporation | System for allocating storage spaces based upon required and optional service attributes having assigned piorities |
US5333315A (en) * | 1991-06-27 | 1994-07-26 | Digital Equipment Corporation | System of device independent file directories using a tag between the directories and file descriptors that migrate with the files |
US5347653A (en) | 1991-06-28 | 1994-09-13 | Digital Equipment Corporation | System for reconstructing prior versions of indexes using records indicating changes between successive versions of the indexes |
US5410700A (en) * | 1991-09-04 | 1995-04-25 | International Business Machines Corporation | Computer system which supports asynchronous commitment of data |
US5241670A (en) * | 1992-04-20 | 1993-08-31 | International Business Machines Corporation | Method and system for automated backup copy ordering in a time zero backup copy session |
US5241668A (en) * | 1992-04-20 | 1993-08-31 | International Business Machines Corporation | Method and system for automated termination and resumption in a time zero backup copy process |
US5263154A (en) * | 1992-04-20 | 1993-11-16 | International Business Machines Corporation | Method and system for incremental time zero backup copying of data |
ATE153149T1 (en) * | 1993-01-21 | 1997-05-15 | Apple Computer | DEVICE AND METHOD FOR DATA BACKUP OF STORAGE UNITS IN A COMPUTER NETWORK |
WO1994018634A1 (en) * | 1993-02-01 | 1994-08-18 | Lsc, Inc. | Archiving file system for data servers in a distributed network environment |
JPH0721135A (en) | 1993-07-02 | 1995-01-24 | Fujitsu Ltd | Data processing system with duplex monitor function |
US5544345A (en) * | 1993-11-08 | 1996-08-06 | International Business Machines Corporation | Coherence controls for store-multiple shared data coordinated by cache directory entries in a shared electronic storage |
US5495607A (en) * | 1993-11-15 | 1996-02-27 | Conner Peripherals, Inc. | Network management system having virtual catalog overview of files distributively stored across network domain |
US5491810A (en) * | 1994-03-01 | 1996-02-13 | International Business Machines Corporation | Method and system for automated data storage system space allocation utilizing prioritized data set parameters |
US5673381A (en) | 1994-05-27 | 1997-09-30 | Cheyenne Software International Sales Corp. | System and parallel streaming and data stripping to back-up a network |
US5638509A (en) * | 1994-06-10 | 1997-06-10 | Exabyte Corporation | Data storage and protection system |
US5574906A (en) | 1994-10-24 | 1996-11-12 | International Business Machines Corporation | System and method for reducing storage requirement in backup subsystems utilizing segmented compression and differencing |
US5990810A (en) | 1995-02-17 | 1999-11-23 | Williams; Ross Neil | Method for partitioning a block of data into subblocks and for storing and communcating such subblocks |
US5559957A (en) | 1995-05-31 | 1996-09-24 | Lucent Technologies Inc. | File system for a data storage device having a power fail recovery mechanism for write/replace operations |
US5699361A (en) | 1995-07-18 | 1997-12-16 | Industrial Technology Research Institute | Multimedia channel formulation mechanism |
US5813009A (en) | 1995-07-28 | 1998-09-22 | Univirtual Corp. | Computer based records management system method |
US5619644A (en) * | 1995-09-18 | 1997-04-08 | International Business Machines Corporation | Software directed microcode state save for distributed storage controller |
US5819020A (en) | 1995-10-16 | 1998-10-06 | Network Specialists, Inc. | Real time backup system |
US5778395A (en) | 1995-10-23 | 1998-07-07 | Stac, Inc. | System for backing up files from disk volumes on multiple nodes of a computer network |
US5729743A (en) * | 1995-11-17 | 1998-03-17 | Deltatech Research, Inc. | Computer apparatus and method for merging system deltas |
US5761677A (en) * | 1996-01-03 | 1998-06-02 | Sun Microsystems, Inc. | Computer system method and apparatus providing for various versions of a file without requiring data copy or log operations |
KR970076238A (en) | 1996-05-23 | 1997-12-12 | 포만 제프리 엘 | Servers, methods and program products thereof for creating and managing multiple copies of client data files |
US6044444A (en) * | 1996-05-28 | 2000-03-28 | Emc Corporation | Remote data mirroring having preselection of automatic recovery or intervention required when a disruption is detected |
US5812398A (en) | 1996-06-10 | 1998-09-22 | Sun Microsystems, Inc. | Method and system for escrowed backup of hotelled world wide web sites |
US5813008A (en) | 1996-07-12 | 1998-09-22 | Microsoft Corporation | Single instance storage of information |
US5940833A (en) * | 1996-07-12 | 1999-08-17 | Microsoft Corporation | Compressing sets of integers |
US5758359A (en) * | 1996-10-24 | 1998-05-26 | Digital Equipment Corporation | Method and apparatus for performing retroactive backups in a computer system |
US5875478A (en) * | 1996-12-03 | 1999-02-23 | Emc Corporation | Computer backup using a file system, network, disk, tape and remote archiving repository media system |
US6131095A (en) | 1996-12-11 | 2000-10-10 | Hewlett-Packard Company | Method of accessing a target entity over a communications network |
AU5929398A (en) | 1997-01-23 | 1998-08-18 | Overland Data, Inc. | Virtual media library |
US6658526B2 (en) | 1997-03-12 | 2003-12-02 | Storage Technology Corporation | Network attached virtual data storage subsystem |
US5924102A (en) * | 1997-05-07 | 1999-07-13 | International Business Machines Corporation | System and method for managing critical files |
US6094416A (en) * | 1997-05-09 | 2000-07-25 | I/O Control Corporation | Multi-tier architecture for control network |
US5887134A (en) * | 1997-06-30 | 1999-03-23 | Sun Microsystems | System and method for preserving message order while employing both programmed I/O and DMA operations |
EP0899662A1 (en) | 1997-08-29 | 1999-03-03 | Hewlett-Packard Company | Backup and restore system for a computer network |
US5950205A (en) | 1997-09-25 | 1999-09-07 | Cisco Technology, Inc. | Data transmission over the internet using a cache memory file system |
US6275953B1 (en) * | 1997-09-26 | 2001-08-14 | Emc Corporation | Recovery from failure of a data processor in a network server |
US6052735A (en) * | 1997-10-24 | 2000-04-18 | Microsoft Corporation | Electronic mail object synchronization between a desktop computer and mobile device |
US6021415A (en) * | 1997-10-29 | 2000-02-01 | International Business Machines Corporation | Storage management system with file aggregation and space reclamation within aggregated files |
JPH11143754A (en) | 1997-11-05 | 1999-05-28 | Hitachi Ltd | Version information and constitution information display method and device therefor, and computer readable recording medium for recording version information and constitution information display program |
US6131190A (en) | 1997-12-18 | 2000-10-10 | Sidwell; Leland P. | System for modifying JCL parameters to optimize data storage allocations |
US6076148A (en) * | 1997-12-26 | 2000-06-13 | Emc Corporation | Mass storage subsystem and backup arrangement for digital data processing system which permits information to be backed up while host computer(s) continue(s) operating in connection with information stored on mass storage subsystem |
US6154787A (en) | 1998-01-21 | 2000-11-28 | Unisys Corporation | Grouping shared resources into one or more pools and automatically re-assigning shared resources from where they are not currently needed to where they are needed |
US6260069B1 (en) * | 1998-02-10 | 2001-07-10 | International Business Machines Corporation | Direct data retrieval in a distributed computing system |
DE69816415T2 (en) | 1998-03-02 | 2004-04-15 | Hewlett-Packard Co. (N.D.Ges.D.Staates Delaware), Palo Alto | Data Backup System |
US6026414A (en) * | 1998-03-05 | 2000-02-15 | International Business Machines Corporation | System including a proxy client to backup files in a distributed computing environment |
US6161111A (en) | 1998-03-31 | 2000-12-12 | Emc Corporation | System and method for performing file-handling operations in a digital data processing system using an operating system-independent file map |
US7035943B2 (en) * | 1998-05-29 | 2006-04-25 | Yahoo! Inc. | Web server content replication |
US6421711B1 (en) * | 1998-06-29 | 2002-07-16 | Emc Corporation | Virtual ports for data transferring of a data storage system |
US6269431B1 (en) * | 1998-08-13 | 2001-07-31 | Emc Corporation | Virtual storage and block level direct access of secondary storage for recovery of backup data |
GB2341249A (en) | 1998-08-17 | 2000-03-08 | Connected Place Limited | A method of generating a difference file defining differences between an updated file and a base file |
US6487561B1 (en) | 1998-12-31 | 2002-11-26 | Emc Corporation | Apparatus and methods for copying, backing up, and restoring data using a backup segment size larger than the storage block size |
US6212512B1 (en) * | 1999-01-06 | 2001-04-03 | Hewlett-Packard Company | Integration of a database into file management software for protecting, tracking and retrieving data |
US6324581B1 (en) | 1999-03-03 | 2001-11-27 | Emc Corporation | File server system using file system storage, data movers, and an exchange of meta data among data movers for file locking and direct access to shared file systems |
US6389432B1 (en) * | 1999-04-05 | 2002-05-14 | Auspex Systems, Inc. | Intelligent virtual volume access |
US6519679B2 (en) * | 1999-06-11 | 2003-02-11 | Dell Usa, L.P. | Policy based storage configuration |
US7395282B1 (en) * | 1999-07-15 | 2008-07-01 | Commvault Systems, Inc. | Hierarchical backup and retrieval system |
US6538669B1 (en) * | 1999-07-15 | 2003-03-25 | Dell Products L.P. | Graphical user interface for configuration of a storage system |
US6513051B1 (en) * | 1999-07-16 | 2003-01-28 | Microsoft Corporation | Method and system for backing up and restoring files stored in a single instance store |
US6490666B1 (en) * | 1999-08-20 | 2002-12-03 | Microsoft Corporation | Buffering data in a hierarchical data storage environment |
US6343324B1 (en) * | 1999-09-13 | 2002-01-29 | International Business Machines Corporation | Method and system for controlling access share storage devices in a network environment by configuring host-to-volume mapping data structures in the controller memory for granting and denying access to the devices |
US6564228B1 (en) * | 2000-01-14 | 2003-05-13 | Sun Microsystems, Inc. | Method of enabling heterogeneous platforms to utilize a universal file system in a storage area network |
US6704730B2 (en) * | 2000-02-18 | 2004-03-09 | Avamar Technologies, Inc. | Hash file system and method for use in a commonality factoring system |
US7117246B2 (en) | 2000-02-22 | 2006-10-03 | Sendmail, Inc. | Electronic mail system with methodology providing distributed message store |
US6356801B1 (en) * | 2000-05-19 | 2002-03-12 | International Business Machines Corporation | High availability work queuing in an automated data storage library |
US6330642B1 (en) | 2000-06-29 | 2001-12-11 | Bull Hn Informatin Systems Inc. | Three interconnected raid disk controller data processing system architecture |
US6810398B2 (en) | 2000-11-06 | 2004-10-26 | Avamar Technologies, Inc. | System and method for unorchestrated determination of data sequences using sticky byte factoring to determine breakpoints in digital sequences |
US20020099806A1 (en) * | 2000-11-30 | 2002-07-25 | Phillip Balsamo | Processing node for eliminating duplicate network usage data |
US6988124B2 (en) | 2001-06-06 | 2006-01-17 | Microsoft Corporation | Locating potentially identical objects across multiple computers based on stochastic partitioning of workload |
US20030004922A1 (en) | 2001-06-27 | 2003-01-02 | Ontrack Data International, Inc. | System and method for data management |
US7685126B2 (en) * | 2001-08-03 | 2010-03-23 | Isilon Systems, Inc. | System and methods for providing a distributed file system utilizing metadata to track information about data stored throughout the system |
DE60239358D1 (en) * | 2001-11-23 | 2011-04-14 | Commvault Systems Inc | SELECTIVE DATA DISPLACEMENT SYSTEM AND METHOD |
US7496604B2 (en) * | 2001-12-03 | 2009-02-24 | Aol Llc | Reducing duplication of files on a network |
US20030110190A1 (en) * | 2001-12-10 | 2003-06-12 | Hitachi, Ltd. | Method and system for file space management |
US7017113B2 (en) * | 2002-01-25 | 2006-03-21 | The United States Of America As Represented By The Secretary Of The Air Force | Method and apparatus for removing redundant information from digital documents |
AU2003207856A1 (en) | 2002-02-04 | 2003-09-02 | Cataphora, Inc | A method and apparatus to visually present discussions for data mining purposes |
US6952758B2 (en) | 2002-07-31 | 2005-10-04 | International Business Machines Corporation | Method and system for providing consistent data modification information to clients in a storage system |
US7171469B2 (en) * | 2002-09-16 | 2007-01-30 | Network Appliance, Inc. | Apparatus and method for storing data in a proxy cache in a network |
US7287252B2 (en) | 2002-09-27 | 2007-10-23 | The United States Of America Represented By The Secretary Of The Navy | Universal client and consumer |
AU2003279847A1 (en) | 2002-10-07 | 2004-05-04 | Commvault Systems, Inc. | System and method for managing stored data |
US7174433B2 (en) * | 2003-04-03 | 2007-02-06 | Commvault Systems, Inc. | System and method for dynamically sharing media in a computer network |
US7143117B2 (en) * | 2003-09-25 | 2006-11-28 | International Business Machines Corporation | Method, system, and program for data synchronization by determining whether a first identifier for a portion of data at a first source and a second identifier for a portion of corresponding data at a second source match |
JP4267420B2 (en) * | 2003-10-20 | 2009-05-27 | 株式会社日立製作所 | Storage apparatus and backup acquisition method |
US7613748B2 (en) | 2003-11-13 | 2009-11-03 | Commvault Systems, Inc. | Stored data reverification management system and method |
US7272606B2 (en) * | 2003-11-26 | 2007-09-18 | Veritas Operating Corporation | System and method for detecting and storing file content access information within a file system |
US7519726B2 (en) * | 2003-12-12 | 2009-04-14 | International Business Machines Corporation | Methods, apparatus and computer programs for enhanced access to resources within a network |
JP4581518B2 (en) * | 2003-12-19 | 2010-11-17 | 株式会社日立製作所 | How to get a snapshot |
US7246272B2 (en) * | 2004-01-16 | 2007-07-17 | International Business Machines Corporation | Duplicate network address detection |
US8055745B2 (en) * | 2004-06-01 | 2011-11-08 | Inmage Systems, Inc. | Methods and apparatus for accessing data from a primary data storage system for secondary storage |
US7383462B2 (en) * | 2004-07-02 | 2008-06-03 | Hitachi, Ltd. | Method and apparatus for encrypted remote copy for secure data backup and restoration |
JP4477950B2 (en) * | 2004-07-07 | 2010-06-09 | 株式会社日立製作所 | Remote copy system and storage device system |
US7631194B2 (en) * | 2004-09-09 | 2009-12-08 | Microsoft Corporation | Method, system, and apparatus for creating saved searches and auto discovery groups for a data protection system |
US7809914B2 (en) | 2004-11-05 | 2010-10-05 | Commvault Systems, Inc. | Methods and system of pooling storage devices |
WO2006053050A2 (en) | 2004-11-08 | 2006-05-18 | Commvault Systems, Inc. | System and method for performing auxiliary storage operations |
US7320059B1 (en) * | 2005-08-26 | 2008-01-15 | Emc Corporation | Methods and apparatus for deleting content from a storage system |
US7613752B2 (en) * | 2005-11-28 | 2009-11-03 | Commvault Systems, Inc. | Systems and methods for using metadata to enhance data management operations |
ES2582364T3 (en) * | 2005-12-19 | 2016-09-12 | Commvault Systems, Inc. | Systems and methods to perform data replication |
US7685459B1 (en) * | 2006-04-13 | 2010-03-23 | Symantec Operating Corporation | Parallel backup |
US7478113B1 (en) * | 2006-04-13 | 2009-01-13 | Symantec Operating Corporation | Boundaries |
US8165221B2 (en) | 2006-04-28 | 2012-04-24 | Netapp, Inc. | System and method for sampling based elimination of duplicate data |
JP4749266B2 (en) * | 2006-07-27 | 2011-08-17 | 株式会社日立製作所 | Backup control apparatus and method without duplication of information resources |
US7685177B1 (en) * | 2006-10-03 | 2010-03-23 | Emc Corporation | Detecting and managing orphan files between primary and secondary data stores |
US9465823B2 (en) * | 2006-10-19 | 2016-10-11 | Oracle International Corporation | System and method for data de-duplication |
US20080162322A1 (en) * | 2006-11-07 | 2008-07-03 | Federal Reserve Bank Of Richmond | Automated return item re-clear |
US20080162518A1 (en) * | 2007-01-03 | 2008-07-03 | International Business Machines Corporation | Data aggregation and grooming in multiple geo-locations |
US7870486B2 (en) * | 2007-01-26 | 2011-01-11 | Kabushiki Kaisha Toshiba | System and method for simultaneously commencing output of disparately encoded electronic documents |
US8315999B2 (en) * | 2007-08-29 | 2012-11-20 | Nirvanix, Inc. | Policy-based file management for a storage delivery network |
US20090112870A1 (en) * | 2007-10-31 | 2009-04-30 | Microsoft Corporation | Management of distributed storage |
US8548953B2 (en) * | 2007-11-12 | 2013-10-01 | F5 Networks, Inc. | File deduplication using storage tiers |
US7870105B2 (en) * | 2007-11-20 | 2011-01-11 | Hitachi, Ltd. | Methods and apparatus for deduplication in storage system |
US9015181B2 (en) * | 2008-09-26 | 2015-04-21 | Commvault Systems, Inc. | Systems and methods for managing single instancing data |
WO2010045262A1 (en) * | 2008-10-14 | 2010-04-22 | Wanova Technologies, Ltd. | Storage-network de-duplication |
AU2009330073B2 (en) * | 2008-12-22 | 2012-11-15 | Google Llc | Asynchronous distributed de-duplication for replicated content addressable storage clusters |
-
2008
- 2008-06-24 US US12/145,342 patent/US8219524B2/en not_active Expired - Fee Related
-
2012
- 2012-06-26 US US13/532,877 patent/US20120271793A1/en not_active Abandoned
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6167402A (en) * | 1998-04-27 | 2000-12-26 | Sun Microsystems, Inc. | High performance message store |
US6073133A (en) * | 1998-05-15 | 2000-06-06 | Micron Electronics Inc. | Electronic mail attachment verifier |
US20020065892A1 (en) * | 2000-11-30 | 2002-05-30 | Malik Dale W. | Method and apparatus for minimizing storage of common attachment files in an e-mail communications server |
US6745197B2 (en) * | 2001-03-19 | 2004-06-01 | Preston Gates Ellis Llp | System and method for efficiently processing messages stored in multiple message stores |
US20050055359A1 (en) * | 2001-03-19 | 2005-03-10 | Kenji Kawai | System and method for evaluating a structured message store for message redundancy |
US20020169934A1 (en) * | 2001-03-23 | 2002-11-14 | Oliver Krapp | Methods and systems for eliminating data redundancies |
US20030172368A1 (en) * | 2001-12-26 | 2003-09-11 | Elizabeth Alumbaugh | System and method for autonomously generating heterogeneous data source interoperability bridges based on semantic modeling derived from self adapting ontology |
US7383304B2 (en) * | 2002-02-12 | 2008-06-03 | Canon Kabushiki Kaisha | System, method, program and storage medium for processing electronic mail |
US20030236763A1 (en) * | 2002-06-25 | 2003-12-25 | Alan Kilduff | Electronic message filing system |
US20060129875A1 (en) * | 2004-11-05 | 2006-06-15 | Barrall Geoffrey S | Storage system condition indicator and method |
US20060123313A1 (en) * | 2004-11-22 | 2006-06-08 | Research In Motion Limited | System and method for securely adding redundancy to an electronic message |
US20080034045A1 (en) * | 2006-08-02 | 2008-02-07 | Bardsley Jeffrey S | Methods, systems, and computer program products for managing electronic subscriptions |
US20090012984A1 (en) * | 2007-07-02 | 2009-01-08 | Equivio Ltd. | Method for Organizing Large Numbers of Documents |
US20090106369A1 (en) * | 2007-10-18 | 2009-04-23 | Yen-Fu Chen | Duplicate email address detection for a contact |
US20090150498A1 (en) * | 2007-12-07 | 2009-06-11 | Steven Joseph Branda | Identifying a Plurality of Related Electronic Messages and Combining the Plurality of Related Messages Into a Composite View |
US20090204636A1 (en) * | 2008-02-11 | 2009-08-13 | Microsoft Corporation | Multimodal object de-duplication |
Cited By (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110000213A1 (en) * | 2005-05-27 | 2011-01-06 | Markron Technologies, Llc | Method and system integrating solar heat into a regenerative rankine steam cycle |
US10922006B2 (en) | 2006-12-22 | 2021-02-16 | Commvault Systems, Inc. | System and method for storing redundant information |
US8712969B2 (en) | 2006-12-22 | 2014-04-29 | Commvault Systems, Inc. | System and method for storing redundant information |
US10061535B2 (en) | 2006-12-22 | 2018-08-28 | Commvault Systems, Inc. | System and method for storing redundant information |
US9971784B2 (en) | 2008-06-24 | 2018-05-15 | Commvault Systems, Inc. | Application-aware and remote single instance data management |
US10884990B2 (en) | 2008-06-24 | 2021-01-05 | Commvault Systems, Inc. | Application-aware and remote single instance data management |
US9098495B2 (en) | 2008-06-24 | 2015-08-04 | Commvault Systems, Inc. | Application-aware and remote single instance data management |
US8612707B2 (en) | 2008-07-03 | 2013-12-17 | Commvault Systems, Inc. | Continuous data protection over intermittent connections, such as continuous data backup for laptops or wireless devices |
US8838923B2 (en) | 2008-07-03 | 2014-09-16 | Commvault Systems, Inc. | Continuous data protection over intermittent connections, such as continuous data backup for laptops or wireless devices |
US11593217B2 (en) | 2008-09-26 | 2023-02-28 | Commvault Systems, Inc. | Systems and methods for managing single instancing data |
US9015181B2 (en) | 2008-09-26 | 2015-04-21 | Commvault Systems, Inc. | Systems and methods for managing single instancing data |
US11016858B2 (en) | 2008-09-26 | 2021-05-25 | Commvault Systems, Inc. | Systems and methods for managing single instancing data |
US8725687B2 (en) | 2008-11-26 | 2014-05-13 | Commvault Systems, Inc. | Systems and methods for byte-level or quasi byte-level single instancing |
US9158787B2 (en) | 2008-11-26 | 2015-10-13 | Commvault Systems, Inc | Systems and methods for byte-level or quasi byte-level single instancing |
US10970304B2 (en) | 2009-03-30 | 2021-04-06 | Commvault Systems, Inc. | Storing a variable number of instances of data objects |
US11586648B2 (en) | 2009-03-30 | 2023-02-21 | Commvault Systems, Inc. | Storing a variable number of instances of data objects |
US9773025B2 (en) | 2009-03-30 | 2017-09-26 | Commvault Systems, Inc. | Storing a variable number of instances of data objects |
US9058117B2 (en) | 2009-05-22 | 2015-06-16 | Commvault Systems, Inc. | Block-level single instancing |
US10956274B2 (en) | 2009-05-22 | 2021-03-23 | Commvault Systems, Inc. | Block-level single instancing |
US11709739B2 (en) | 2009-05-22 | 2023-07-25 | Commvault Systems, Inc. | Block-level single instancing |
US8578120B2 (en) | 2009-05-22 | 2013-11-05 | Commvault Systems, Inc. | Block-level single instancing |
US11455212B2 (en) | 2009-05-22 | 2022-09-27 | Commvault Systems, Inc. | Block-level single instancing |
US8935492B2 (en) | 2010-09-30 | 2015-01-13 | Commvault Systems, Inc. | Archiving data objects using secondary copies |
US10762036B2 (en) | 2010-09-30 | 2020-09-01 | Commvault Systems, Inc. | Archiving data objects using secondary copies |
US9639563B2 (en) | 2010-09-30 | 2017-05-02 | Commvault Systems, Inc. | Archiving data objects using secondary copies |
US9262275B2 (en) | 2010-09-30 | 2016-02-16 | Commvault Systems, Inc. | Archiving data objects using secondary copies |
US11392538B2 (en) | 2010-09-30 | 2022-07-19 | Commvault Systems, Inc. | Archiving data objects using secondary copies |
US11768800B2 (en) | 2010-09-30 | 2023-09-26 | Commvault Systems, Inc. | Archiving data objects using secondary copies |
US11042511B2 (en) | 2012-03-30 | 2021-06-22 | Commvault Systems, Inc. | Smart archiving and data previewing for mobile devices |
US11615059B2 (en) | 2012-03-30 | 2023-03-28 | Commvault Systems, Inc. | Smart archiving and data previewing for mobile devices |
US9020890B2 (en) | 2012-03-30 | 2015-04-28 | Commvault Systems, Inc. | Smart archiving and data previewing for mobile devices |
US11080232B2 (en) | 2012-12-28 | 2021-08-03 | Commvault Systems, Inc. | Backup and restoration for a deduplicated file system |
US9633022B2 (en) | 2012-12-28 | 2017-04-25 | Commvault Systems, Inc. | Backup and restoration for a deduplicated file system |
US9959275B2 (en) | 2012-12-28 | 2018-05-01 | Commvault Systems, Inc. | Backup and restoration for a deduplicated file system |
WO2015084397A1 (en) * | 2013-12-06 | 2015-06-11 | Hewlett-Packard Development Company, L.P. | Replicating metadata associated with a file |
US11940952B2 (en) | 2014-01-27 | 2024-03-26 | Commvault Systems, Inc. | Techniques for serving archived electronic mail |
US10324897B2 (en) | 2014-01-27 | 2019-06-18 | Commvault Systems, Inc. | Techniques for serving archived electronic mail |
US10324914B2 (en) | 2015-05-20 | 2019-06-18 | Commvalut Systems, Inc. | Handling user queries against production and archive storage systems, such as for enterprise customers having large and/or numerous files |
US10089337B2 (en) | 2015-05-20 | 2018-10-02 | Commvault Systems, Inc. | Predicting scale of data migration between production and archive storage systems, such as for enterprise customers having large and/or numerous files |
US11281642B2 (en) | 2015-05-20 | 2022-03-22 | Commvault Systems, Inc. | Handling user queries against production and archive storage systems, such as for enterprise customers having large and/or numerous files |
US10977231B2 (en) | 2015-05-20 | 2021-04-13 | Commvault Systems, Inc. | Predicting scale of data migration |
US10180955B1 (en) * | 2016-06-22 | 2019-01-15 | Veritas Technologies Llc | Systems and methods for applying content-based retention policies to data artifacts |
Also Published As
Publication number | Publication date |
---|---|
US8219524B2 (en) | 2012-07-10 |
US20090319585A1 (en) | 2009-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230083789A1 (en) | Remote single instance data management | |
US11016859B2 (en) | De-duplication systems and methods for application-specific data | |
US8219524B2 (en) | Application-aware and remote single instance data management | |
US11561931B2 (en) | Information source agent systems and methods for distributed data storage and management using content signatures | |
US20210208785A1 (en) | Reducing transfer of redundant data objects | |
US10158483B1 (en) | Systems and methods for efficiently and securely storing data in a distributed data storage system | |
CA2706007C (en) | System and method for storing redundant information | |
US20120131001A1 (en) | Methods and computer program products for generating search results using file identicality | |
US20240143789A1 (en) | Encryption Key Management Using Content-Based Datasets |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: COMMVAULT SYSTEMS, INC., NEW JERSEY Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:GOKHALE, PARAG;REEL/FRAME:030800/0630 Effective date: 20080912 |
|
AS | Assignment |
Owner name: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT, NORTH CAROLINA Free format text: SECURITY INTEREST;ASSIGNOR:COMMVAULT SYSTEMS, INC.;REEL/FRAME:033266/0678 Effective date: 20140630 Owner name: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT, NO Free format text: SECURITY INTEREST;ASSIGNOR:COMMVAULT SYSTEMS, INC.;REEL/FRAME:033266/0678 Effective date: 20140630 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |
|
AS | Assignment |
Owner name: COMMVAULT SYSTEMS, INC., NEW JERSEY Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF AMERICA, N.A.;REEL/FRAME:054913/0905 Effective date: 20180209 |