Method and system for client-side caching
First Claim
1. A method of maintaining a server file in a local cache, comprising:
- detecting at a local redirector a file system-directed open request from an executing program for opening a server file of a network server, the server file comprising a data file of the program;
determining, transparent to the program, if a local file corresponding to the server file is already in the local cache as a persistent file system file, and if the local file is already in the cache, opening the local file, and if not, creating the local file as a persistent file system file and opening the server file, wherein the local file comprises a sparse file having at least one arbitrary portion of data missing therein with respect to the server file;
receiving at the local redirector a file system-directed write request from the program to write the program'"'"'s data to the server file, and in response to the write request and also transparent to the program, writing the data to the local file in the cache to persist it in the local file; and
executing a background process to add data to the local file, the background process checking if the local file is already open, and if so, obtaining a file handle of the local file and issuing a read request via the file handle of the local file.
2 Assignments
0 Petitions
Accused Products
Abstract
An improved method and system for client-side caching that transparently caches suitable network files for offline use. A cache mechanism in a network redirector transparently intercepts requests to access server files, and if the requested file is locally cached, satisfies the request from the cache when possible. Otherwise the cache mechanism creates a local cache file and satisfies the request from the server, and also fills in a sparse cached file as reads for data in ranges that are missing in the cached file are requested and received from the server. A background process also fills in local files that are sparse, using the existing handle of already open server files, or opening, reading from and closing other server files. Security is also provided by maintaining security information received from the server for files that are in the cache, and using that security information to determine access to the file when offline.
72 Citations
6 Claims
-
1. A method of maintaining a server file in a local cache, comprising:
-
detecting at a local redirector a file system-directed open request from an executing program for opening a server file of a network server, the server file comprising a data file of the program;
determining, transparent to the program, if a local file corresponding to the server file is already in the local cache as a persistent file system file, and if the local file is already in the cache, opening the local file, and if not, creating the local file as a persistent file system file and opening the server file, wherein the local file comprises a sparse file having at least one arbitrary portion of data missing therein with respect to the server file;
receiving at the local redirector a file system-directed write request from the program to write the program'"'"'s data to the server file, and in response to the write request and also transparent to the program, writing the data to the local file in the cache to persist it in the local file; and
executing a background process to add data to the local file, the background process checking if the local file is already open, and if so, obtaining a file handle of the local file and issuing a read request via the file handle of the local file.
-
-
2. A computer-readable medium having computer-executable components, comprising:
-
a redirector component configured to provide an application program with access to the application program'"'"'s files on a network storage device via a local drive representation of the network storage device; and
a caching component associated with the redirector component and configured to;
1) maintain local files that correspond to the application program'"'"'s files on the network storage device, 2) recreate and persist in at least one local data structure hierarchical network path information for each locally maintained file such that a local file system path associated with each file is substantially the same as a network path therefor from the perspective of the application program;
3) open, transparent to the application program, a local file system file to satisfy a file system-directed request from the application program to open a corresponding file on the network storage device, the request including the local drive representation of the network storage device; and
4) write to the local file system file, transparent to the application program, to satisfy a request from the application program to write to the file on the network storage device. - View Dependent Claims (3, 4, 5, 6)
-
Specification