Transaction based virtual file system optimized for high-latency network connections
First Claim
1. A method of managing one or more data files over a network, wherein the network is configured to be connected to a server system and to a client computer, the method comprising:
- receiving a request to mount a file system onto the client computer, wherein the file system is stored on the server system and contains the one or more data files;
transferring a copy of a directory structure of the file system stored on the server system to the client computer;
generating on the client computer a virtual file system including the copy of the directory structure, wherein the virtual file system is an individual user file system, and further wherein each of the one or more data files are not transferred from the server system to the client computer until individually requested;
receiving a request to open a data file of the one or more data files;
determining whether a client file version of the data file is available on the client computer;
determining that a client file version is available;
obtaining a Cyclic Redundancy Check value of a server file version of the data file;
obtaining a Cyclic Redundancy Check value of the client file version of the data file;
comparing the Cyclic Redundancy Check value of the server file version to the Cyclic Redundancy Check value of the client file version;
determining that the Cyclic Redundancy Check value of the server file version is unequal to the Cyclic Redundancy Check value of the client file version;
checking whether a Cyclic Redundancy Check value of another server file version is equal to the Cyclic Redundancy Check value of the client file versiondetermining that the Cyclic Redundancy Check value of the other server file version is equal to the Cyclic Redundancy Check value of the client file version;
generating a differential of the server file version;
transferring the differential to the client computer; and
merging the differential with the client file version to generate a current client file version matching the other server file version.
5 Assignments
0 Petitions
Accused Products
Abstract
A method and system are provided for a virtual distributed data manager. In one example of the method, the virtual data manager involves receiving a request to mount a file system onto the client computer, wherein the file system is stored on the server system and contains the one or more data files; transferring a copy of a directory structure of the file system stored on the server system to the client computer; and creating on the client computer a virtual file system including the copy of the directory structure. The method is preferably transaction based and provides high performance on high latency network connections.
-
Citations
13 Claims
-
1. A method of managing one or more data files over a network, wherein the network is configured to be connected to a server system and to a client computer, the method comprising:
-
receiving a request to mount a file system onto the client computer, wherein the file system is stored on the server system and contains the one or more data files; transferring a copy of a directory structure of the file system stored on the server system to the client computer; generating on the client computer a virtual file system including the copy of the directory structure, wherein the virtual file system is an individual user file system, and further wherein each of the one or more data files are not transferred from the server system to the client computer until individually requested; receiving a request to open a data file of the one or more data files; determining whether a client file version of the data file is available on the client computer; determining that a client file version is available; obtaining a Cyclic Redundancy Check value of a server file version of the data file; obtaining a Cyclic Redundancy Check value of the client file version of the data file; comparing the Cyclic Redundancy Check value of the server file version to the Cyclic Redundancy Check value of the client file version; determining that the Cyclic Redundancy Check value of the server file version is unequal to the Cyclic Redundancy Check value of the client file version; checking whether a Cyclic Redundancy Check value of another server file version is equal to the Cyclic Redundancy Check value of the client file version determining that the Cyclic Redundancy Check value of the other server file version is equal to the Cyclic Redundancy Check value of the client file version; generating a differential of the server file version; transferring the differential to the client computer; and merging the differential with the client file version to generate a current client file version matching the other server file version. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
- 8. A server system for managing one or more data files over a network, wherein the network is configured to be connected to the server system and to a client computer, the server system comprising a file system including a directory having a directory structure and the one or more data files, wherein the server system is configured to receive a request to mount the file system onto the client computer, to transfer a copy of the directory structure to the client computer, and to instruct the client computer to generate a virtual file system including a copy of the directory structure, wherein the virtual file system is an individual user file system, and further wherein each of the one or more data files are not transferred from the server system to the client computer until individually requested, wherein the server system is further configured to receive a Cyclic Redundancy Check value of a client file version of a data file, to obtain a Cyclic Redundancy Check value of a server file version of the data file, and to compare the Cyclic Redundancy Check value of the server file version to the Cyclic Redundancy Check value of the client file version, and further wherein if it is determined that the Cyclic Redundancy Check value of the server file version is unequal to the Cyclic Redundancy Check value of the client file version, then checking whether a Cyclic Redundancy Check value of another server file version is equal to the Cyclic Redundancy Check value of the client file version, and if it is determined that the Cyclic Redundancy Check value of the other server file version is equal to the Cyclic Redundancy Check value of the client file version, then generating a differential of the server file version, transferring the differential to the client computer and merging the differential with the client file version to generate a current client file version matching the other server file version.
- 10. A client computer for managing one or more data files over a network, wherein the network is configured to be connected to the client computer and to the server system, wherein the server system includes a file system having a directory with directory structure, wherein the client computer is configured to receive a request to mount the file system onto the client computer, wherein the client computer is further configured to receive a copy of the directory of the file system, the client computer comprising a virtual file system including the copy of the directory structure of the file system, wherein the virtual file system is an individual user file system, and further wherein each of the one or more data files are not transferred from the server system to the client computer until individually requested, wherein the server system is further configured to receive a Cyclic Redundancy Check value of a client file version of a data file, to obtain a Cyclic Redundancy Check value of a server file version of the data file, and to compare the Cyclic Redundancy Check value of the server file version to the Cyclic Redundancy Check value of the client file version, and further wherein if it is determined that the Cyclic Redundancy Check value of the server file version is unequal to the Cyclic Redundancy Check value of the client file version, then checking whether a Cyclic Redundancy Check value of another server file version is equal to the Cyclic Redundancy Check value of the client file version, and if it is determined that the Cyclic Redundancy Check value of the other server file version is equal to the Cyclic Redundancy Check value of the client file version, then generating a differential of the server file version, transferring the differential to the client computer and merging the differential with the client file version to generate a current client file version matching the other server file version.
-
13. A non-transitory computer-readable medium carrying one or more instructions for managing one or more data files over a network, wherein the network is configured to be connected to a server system and to a client computer, wherein the one or more instructions, when executed by one or more processors, cause the one or more processors to perform the following:
-
receiving a request to mount a file system onto the client computer, wherein the file system is stored on the server system and contains the one or more data files; transferring a copy of a directory, having a directory structure, of the file system stored on the server system to the client computer; generating on the client computer a virtual file system including the copy of the directory structure, wherein the virtual file system is an individual user file system, and further wherein each of the one or more data files are not transferred from the server system to the client computer until individually requested; receiving a request to open a data file of the one or more data files; determining whether a client file version of the data file is available on the client computer; determining that a client file version is available; obtaining a Cyclic Redundancy Check value of a server file version of the data file; obtaining a Cyclic Redundancy Check value of the client file version of the data file; comparing the Cyclic Redundancy Check value of the server file version to the Cyclic Redundancy Check value of the client file version; determining that the Cyclic Redundancy Check value of the server file version is unequal to the Cyclic Redundancy Check value of the client file version; checking whether a Cyclic Redundancy Check value of another server file version is equal to the Cyclic Redundancy Check value of the client file version determining that the Cyclic Redundancy Check value of the other server file version is equal to the Cyclic Redundancy Check value of the client file version; generating a differential of the server file version; transferring the differential to the client computer; and merging the differential with the client file version to generate a current client file version matching the other server file version.
-
Specification