BACKGROUND

Businesses worldwide recognize the commercial value of their data and seek reliable, cost-effective ways to protect the information stored on their computer networks while minimizing impact on productivity. Protecting information is often part of a routine process that is performed within an organization.

A company might back up critical computing systems such as databases, file servers, web servers, and so on as part of a daily, weekly, or monthly maintenance schedule. The company may similarly protect computing systems used by each of its employees, such as those used by an accounting department, marketing department, engineering department, and so forth.

Given the rapidly expanding volume of data under management, companies also continue to seek innovative techniques for managing data growth, in addition to protecting data. For instance, companies often implement migration techniques for moving data to lower cost storage over time and data reduction techniques for reducing redundant data, pruning lower priority data, etc.

Enterprises also increasingly view their stored data as a valuable asset. Along these lines, customers are looking for solutions that not only protect and manage, but also leverage their data. For instance, solutions providing data analysis capabilities, improved data presentation and access features, data synchronization, and the like, are in increasing demand.

SUMMARY

Generally described, aspects of the present disclosure are directed to a data synchronization management system that may synchronize files (and/or other data) among two or more client computing devices, in addition to backing up the files. In an embodiment, a user of the data synchronization management system may specify one or more file synchronization policies. A file synchronization policy may specify the files that are to be synchronized, as well as the devices and locations to which those files are to be synchronized. For example, a user may create file synchronization policy and specify that all the files in a particular directory on their laptop are to be synchronized. Further, the user may specify that those files are to be synchronized to their desktop computer. The user may also optionally specify a synchronization schedule, and/or a one-way or two-way file synchronization. The data synchronization management system may work in conjunction with data backup policies.

In an embodiment, a file synchronization proceeds as follows. Specified files are backed up or otherwise copied from the source client computing device to a secondary backup storage. The files to be synchronized are identified based both on the synchronization policy, and whether or not they have changed since the last backup. Thus, if a file backed up (and to be synchronized) is unchanged as compared to the previously backed up copy, that file is not synchronized. Any files identified for synchronization are synchronized to the one or more destination client computing devices, which are specified according to the synchronization policy of the user.

In an embodiment, a user may specify the files to be synchronized. Files to be synchronized may be directly selected or otherwise identified, or criteria may be specified to indirectly identify the files to be synchronized. For instance, without limitation, files may be identified by detecting the existence of specified content within the file (such as the existence of one or more specified terms within a document), and/or by matching metadata associated with the file with one or more specified metadata parameters (such as filename, file owner, directory, creation date, modification date, size, type, location, Global Positioning System (GPS) coordinates, among others). The criteria used to identify files to be synchronized can vary. For example, files to be synchronized may be identified as the files in a certain directory that were created after a certain date.

In an embodiment, the data synchronization management system may add location information to files that are backed up. Thus, a file to be synchronized may be identified according to the geographic location at which it was created and/or modified. Location information may include, for example, GPS coordinates gathered by the client computing device including, for example, a GPS receiver.

In an embodiment, a user of the data synchronization management system may access synchronized files through a cloud and/or remote file access interface. For example, the user may access their files through a web browser after their identity is authenticated. In this embodiment, a file list may initially be accessible by the user. Thereafter, a user may request access to a particular file. At this point the requested file data may be transferred from a secondary storage (backup) to the user's computer so that the user may access the file.

For purposes of summarizing the disclosure, certain aspects, advantages and novel features thereof have been described herein. Of course, it is to be understood that not necessarily all such aspects, advantages or features will be embodied in any particular embodiment of the invention.

According to an embodiment, a computer-implemented method of synchronizing files between multiple client computers using file data is disclosed, the computer-implemented method comprising: accessing, by a synchronization module executing in computer hardware comprising one or more computer processors, user-defined synchronization criteria for identifying files to synchronize between a first primary storage device associated with a first client computing device and a second primary storage device associated with a second client computing device; reviewing, by the synchronization module, metadata associated with each of one or more files in a secondary copy, the secondary copy created during a secondary copy operation in which the one or more files stored in the first primary storage device are copied to one or more secondary storage devices to create a secondary copy including the one or more files; based at least in part on a review of the accessed metadata, identifying, by the synchronization module, at least one file in the secondary copy that meets the synchronization criteria for synchronization between the first primary storage device and the second primary storage device; accessing the at least one file; and communicating the accessed at least one file to the second client computing device for storage in the second primary storage device to synchronize the at least one file between the first primary storage device and the second primary storage device.

According to an aspect, said communicating comprises communicating a copy of the at least one file that is accessed from the one or more secondary storage devices.

According to an aspect, said identifying is in response to the secondary copy operation.

According to an aspect, at least some of the metadata associated with each of the one or more files in the secondary copy is created following the initiation of the secondary copy operation.

According to an aspect, at least some of the metadata associated with each of the one or more files in the secondary copy is created by the first client computing device prior to the initiation of the secondary copy operation.

According to an aspect the method further comprises: determining characteristics associated with each of the one or more files stored in the first primary storage device; after the initiation of the secondary copy operation, for each of the one or more files copied to one or more secondary storage devices: based on the user-defined synchronization criteria and the determined characteristics, generating, by the synchronization module, an indication of whether the file is to be synchronized between the first primary storage device and the second primary storage device; and including the indication with the metadata associated with the file, wherein the at least one file in the secondary copy to synchronize is identified based on the indication.

According to an aspect, the accessed metadata includes at least one of a file name, a file owner, a file directory, a creation date, a modification date, a file size, a file type, or a geographical location.

According to an aspect, the method further comprises analyzing the contents of the at least one file, wherein the metadata includes content metadata relating to the analyzed content.

According to an aspect, the user-defined synchronization criteria specifies files for synchronization based at least in part on the content metadata indicating the existence of one or more terms within the file.

According to an aspect, the at least one file communicated to the second client computing device replaces a previous version of the at least one file stored in the second primary storage device.

According to another embodiment, a system for synchronizing files between multiple client computers using file data is disclosed, the system comprising: a data store; and a synchronization module executing in computer hardware comprising one or more computer processors and configured to: access user-defined synchronization criteria from the data store for identifying files to synchronize between a first primary storage device associated with a first client computing device and a second primary storage device associated with a second client computing device; access file data associated with each of one or more files in a secondary copy, the secondary copy created during a secondary copy operation in which the one or more files stored in the first primary storage device are copied to one or more secondary storage devices to create a secondary copy including the one or more files; based at least in part on a review of the accessed metadata, identify at least one file in the secondary copy that meets the synchronization criteria for synchronization between the first primary storage device and the second primary storage device; access the at least one file; and communicate the accessed at least one file to the second client computing device for storage in the second primary storage device to synchronize the at least one file between the first primary storage device and the second primary storage device.

According to an aspect, the metadata includes content metadata relating to the content of the at least one file and the synchronization criteria specifies files for synchronization based at least in part on content metadata.

According to an aspect, the user-defined synchronization criteria specifies files for synchronization based at least in part on the content metadata indicating the existence of one or more terms within the file.

According to an aspect, the accessed file data associated with each of the one or more files in the secondary copy is created following the initiation of the secondary copy operation.

According to an aspect, the at least one file communicated to the second client computing device replaces a previous version of the at least one file stored in the second primary storage device.

According to an aspect, the copy of the at least one file that is communicated to the second client computing device is accessed from the one or more secondary storage devices.

According to an aspect, the identification of the at least one file is performed is in response to the secondary copy operation.

According to yet another embodiment, a networked data storage system for synchronizing files between multiple client computers using file data is disclosed, the system comprising: a first client computing device; a second client computing device; at least one first primary storage device associated with the first client computing device; at least one second primary storage device associated with the second client computing device; one or more secondary storage devices; and computer hardware comprising one or more computer processors and having a synchronization module executing thereon, the synchronization module configured to: access user-defined synchronization criteria for identifying files to synchronize between a first primary storage device associated with a first client computing device and a second primary storage device associated with a second client computing device; access file data associated with each of the one or more files in the secondary copy, the secondary copy created during a secondary copy operation in which one or more files stored in the first primary storage device are copied to one or more secondary storage devices to create a secondary copy including the one or more files; based at least in part on a review of the accessed file data, identify at least one file in the secondary copy that meets the synchronization criteria for to synchronization between the first primary storage device and the second primary storage device; access the at least one file; and communicate the accessed at least one file to the second client computing device for storage in the second primary storage device to synchronize the at least one file between the first primary storage device and the second primary storage device.

According to an aspect, the identification of the at least one file is performed in response to the secondary copy operation.

According to an aspect, the copy of the at least one file that is communicated to the second client computing device is accessed from the one or more secondary storage devices.

