Application independent write monitoring method for fast backup and synchronization of files
First Claim
1. An application independent method for monitoring for requests by an application program to access a file stored in a file system, the file system maintained on a computer by an operating system, the operating system including a file system request monitor, the method comprising the steps of:
- (a) the operating system invoking the file system request monitor in response to receiving a request to access the file from the application program;
(b) the file system request monitor determining if the file is one of a plurality of preselected files designated to be monitored by checking a monitor resource store which includes a plurality of designations, at least one designation for each of the plurality of preselected files;
(c) if the file system request monitor determines that the file is one of the preselected files specified by the monitor resource store, the file system request monitor further determines if the request to access the file is a write request, said write request including data indicative of a change to the file; and
if the file system request monitor determines that the request to access the file is a write request the file system monitor stores the data in a log record store; and
(d) if the file system request monitor determines that the file is not one of the preselected files specified by the monitor resource store then the file system request monitor does not store data indicative of a change to the file in the log record store; and
wherein the data comprises write data representative of at least one change to the file, a starting location in the file where the write data is to be stored and an indication representative of the number of bytes of the write data, and wherein the method further comprising the steps of storing in a first field in the log record store the starting byte representative of a location in the file where the data is to be stored, storing in a second field in the log record store an indication representative of the number of bytes of the data included in the write reguest and storing in a third field the write data.
15 Assignments
0 Petitions
Accused Products
Abstract
A method for monitoring file system requests made by an application program, storing changes made to a first copy of a selected file by the application program into a first file and synchronizing the changes made to the selected file with a second copy of the selected file. The monitoring and storing process is application independent in that it is utilized by the operating system for all file system requests made by any application program. The monitoring and storing process is repeated each time a file system request is made by the application program to track changes made to the selected file. At the time of synchronization, if the application program is no longer modifying the selected file and the selected file is closed, all entries in the first file are applied to the second copy of the selected file. As a result, synchronization of both copies of the selected files is achieved.
143 Citations
22 Claims
-
1. An application independent method for monitoring for requests by an application program to access a file stored in a file system, the file system maintained on a computer by an operating system, the operating system including a file system request monitor, the method comprising the steps of:
(a) the operating system invoking the file system request monitor in response to receiving a request to access the file from the application program;
(b) the file system request monitor determining if the file is one of a plurality of preselected files designated to be monitored by checking a monitor resource store which includes a plurality of designations, at least one designation for each of the plurality of preselected files;
(c) if the file system request monitor determines that the file is one of the preselected files specified by the monitor resource store, the file system request monitor further determines if the request to access the file is a write request, said write request including data indicative of a change to the file; and
if the file system request monitor determines that the request to access the file is a write request the file system monitor stores the data in a log record store; and
(d) if the file system request monitor determines that the file is not one of the preselected files specified by the monitor resource store then the file system request monitor does not store data indicative of a change to the file in the log record store; and
wherein the data comprises write data representative of at least one change to the file, a starting location in the file where the write data is to be stored and an indication representative of the number of bytes of the write data, and wherein the method further comprising the steps of storing in a first field in the log record store the starting byte representative of a location in the file where the data is to be stored, storing in a second field in the log record store an indication representative of the number of bytes of the data included in the write reguest and storing in a third field the write data. - View Dependent Claims (2, 3)
-
4. An application independent method of synchronizing a first copy of a file stored in a first memory of a first computer with a second copy of the file stored in a second memory of a second computer, the method comprising the steps of:
-
maintaining a log file in the first memory of the first computer, the log file having stored therein a plurality of changes made to the first copy of the file on the first computer;
determining if the first copy of the file is closed; and
if the first copy of the file is closed, synchronizing all of the plurality of changes stored in the log file with the second copy of the file so that the first copy and the second copy of the file are identical; and
if the first copy of the file is open;
selecting a portion of the plurality of changes stored in the log file, wherein the portion of the plurality of changes is less than all of the plurality of changes and wherein the portion of the plurality of changes includes at least one change of the plurality of changes, and applying the portion of the plurality of changes to the second copy of the file;
wherein the step of maintaining the log file comprises the step of storing the plurality of changes in a data structure and wherein the data structure comprises a first field for storing a starting location in the file where at least one of the plurality of changes was made, a second field for storing data information for the number of bytes of at least one of the plurality of changes and a third field for storing the at least one of the plurality of changes. - View Dependent Claims (5, 6, 7, 8, 9, 10)
-
-
11. An application independent method for monitoring for requests by an application program to access a first copy of a selected file stored in a memory of a first computer and synchronizing the first copy of the selected file with a second copy of the selected file stored in a memory of a second computer, the first and the second computer coupled by a communications link, the method comprising the steps of:
-
(a) in response to receiving a request from an application program to access the first copy of the selected file, determining if the first copy of the selected file is one of a plurality of preselected files designated by a monitor resource store to be monitored for changes;
(b) if it is determined that the first copy if the file is one of the plurality of preselected files, determining if the request to access the selected file is a write access request, said write access request including data indicative of a change to the first copy of the selected file;
(c) if the request for access to the selected file is a write access request, storing the data in a log file, the data comprising at least one change to the first copy of the selected file, said log file having a plurality of changes stored therein;
(d) determining if the first copy of the selected file is closed; and
and if the first copy of the selected file is closed, synchronizing all of the plurality of changes stored in the log file with the second copy of the selected file so that the first copy and the second copy of the selected file are identical; and
if the first copy of the selected file is open;
selecting a portion of the plurality of changes stored in the log file, wherein the portion of the plurality of changes is less than all of the plurality of changes and wherein the portion of the plurality of changes includes at least one change of the plurality of changes, and applying the portion of the plurality of changes to the second copy of the selected file; and
wherein the data comprise write data representative of at least one change to the selected file, a starting byte representative of a location in the selected file where the write data is to be stored, and an indication representative of the number of bytes of the write data, wherein the method further comprises the steps of storing in a first field in the log file the starting byte representative of a location in the selected file where the data is to be stored, storing in a second field in the log file an indication representative of the number of bytes of the data included in the write reguest and storing in a third field in the log file the write data. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A computer readable medium comprising
a computer program for monitoring for requests by an application program to access a file stored in a file system, the file system maintained on a computer, by performing the steps of: -
receiving a request to access the file;
determining if the file is one of a plurality of preselected files designated by a monitor resource store to be monitored for requests;
determining if the request to access the file is a write request when the file is one of the plurality of preselected files, said write request including data indicative of a change to the file; and
storing the data in a memory file when the request to access the file is a write access request and the file is one of the plurality of preselected files; and
if the file is not one of the plurality of preselected files specified by the monitor resource store then the data is not stored in the memory file; and
wherein the data comprises write data representative of at least one change to the file, a starting location in the file where the write data is to be stored and an indication representative of the number of bytes of the write data, and wherein the computer program monitors for requests by the application program by further performing the steps of storing in a first field in the memory file the starting byte representative of a location in the file where the data is to be stored, storing in a second field in the memory file an indication representative of the number of bytes of the data included in the write request and storing in a third field the write data.
-
-
21. A computer readable medium comprising
a computer program for synchronizing a first copy of a file stored in a first memory with a second copy of the file stored in a second memory, by performing the steps of: -
maintaining a log file in the first memory of the first computer, the log file having stored therein a plurality of changes made to the first copy of the file;
determining if the first copy of the file is closed; and
and if the first copy of the file is closed, synchronizing all of the plurality of changes stored in the log file with the second copy of the file so that the first copy and the second copy of the file are identical; and
if the first copy of the file is open;
selecting a portion of the plurality of changes stored in the log file, wherein the portion of the plurality of changes is less than all of the plurality of changes and wherein the portion of the plurality of changes includes at least one change of the plurality of changes, and applying the portion of the plurality of changes to the second copy of the file; and
wherein the data comprises write data representative of at least one change to the file, a starting location in the file where the write data is to be stored and an indication representative of the number of bytes of the write data, and wherein the computer program synchronizes the first copy of the file stored in the first memory with the second copy of the file stored in the second memory, by further performing the steps of storing in a first field in the log file the starting byte representative of a location in the file where the data is to be stored, storing in a second field in the log file an indication representative of the number of bytes of the data included in the write reguest and storing in a third field the write data.
-
-
22. A computer readable medium comprising a computer program for monitoring for requests by an application program to access a first copy of a file stored in a first memory of a first computer and synchronizing the first copy of the file with a second copy of the file stored in a second memory of a second computer, the first and second computer coupled by a communications link by performing the steps of:
-
in response to receiving a request from an application program to access the first copy of the file, determining if the first copy of the file is one of a plurality of preselected files designated to be monitored for changes;
determining if the request to access the file is a write access request when it is determined that the first copy of the file is one of the plurality of preselected files, said write access request including data indicative of a change to the first copy of the file;
storing the data in a log file when the request for access to the file is a write access request and the file is one of the plurality of preselected files, the log file having stored therein a plurality of changes to the first copy of the file;
determining if the first copy of the file is closed;
and if the first copy of the file is closed, synchronizing all of the plurality of changes stored in the log file with the second copy of the file so that the first copy and the second copy of the file are identical; and
if the first copy of the file is open;
selecting a portion of the plurality of changes stored in the log file, wherein the portion of the plurality of changes is less than all of the plurality of changes and wherein the portion of the plurality of changes includes at least one change of the plurality of changes, and applying the portion of the plurality of changes to the second copy of the file; and
wherein the data comprises write data representative of at least one change to the file, a starting location in the file where the write data is to be stored and an indication representative of the number of bytes of the write data, and wherein the computer program monitors for requests by the application program to access the first copy of the file stored in the first memory of the first computer and synchronizes the first copy of the file with the second copy of the file stored in a second memory of a second computer, by further performing the steps of storing in a first field in the log file the starting byte representative of a location in the file where the data is to be stored, storing in a second field in the log file an indication representative of the number of bytes of the data included in the write request and storing in a third field the write data.
-
Specification