Claims
- 1. A method for managing shared access to data files stored in a file server by a plurality of authorized computer workstations, the method comprising:
supplying to a first storage cache a copy of a data file retrieved from the file server by a cache server for reading or updating, wherein the first storage cache is associated with at least a first authorized computer workstation and stores the copy of the data file as a cached data file; at the first storage cache, incorporating data file modifications entered by the first workstation into the cached data file; automatically transmitting file update data from the first storage cache to the cache server, wherein the file update data is a function of the modifications incorporated into the cached data file; and at the cache server, generating a replacement version of the data file stored at the file server based on the file update data.
- 2. The method of claim 1 further comprising:
at the cache server, if the file is accessed for updating by the first storage cache, protecting the data file stored at the file server from updates from other storage caches until all file update data from the first storage cache has been incorporated into the replacement version of the data file and the replacement version has replaced the data file stored at the file server.
- 3. The method of claim 2, wherein the protecting comprises protecting the data file stored at the file server from updates from other storage caches while the file update data from the first storage cache is transmitted to the cache server.
- 4. The method of claim 1 further comprising:
replacing the data file stored at the file server with the replacement version of the data file; and responding to a request for access to the data file subsequently transmitted to the cache server from at least one of a second storage cache and an authorized computer workstation using the replacement version of the data file.
- 5. The method of claim 1, wherein the file update data is transmitted as streaming data to the cache server.
- 6. The method of claim 1 further comprising:
compressing the file update data prior to transmission to the cache server.
- 7. The method of claim 1, wherein the file update data includes difference data, wherein the difference data represents the difference between the cache data file at the first storage cache and the version of the data file currently stored at the file server or the cache server.
- 8. The method of claim 1, wherein the cache server includes a plurality of sub-cache servers and wherein a replacement version of the data file is generated at least one of the sub-cache servers.
- 9. The method of claim 8, wherein when a communications connection between a first of the sub-cache servers and the first storage cache fails, the first storage cache automatically attempts to establish a communications connection with at least one of the first sub-cache server and a second of the sub-cache servers.
- 10. The method of claim 1, wherein the file update data is automatically transmitted to the cache server at predetermined intervals.
- 11. A method for managing shared access to data files stored in a file server by a plurality of authorized computer workstations, the method comprising:
automatically transmitting file update data from a cache server to a first storage cache in response to a workstation request for access to a data file which is stored at a file server associated with the cache server, wherein the file update data is a function of differences between the data file as currently stored at the file server or the cache server and a cached data file stored at the first storage cache and corresponding to the data file; and incorporating the file update data into the cached data file at the first storage cache such that the cached data file is updated to be the same as the data file currently stored at the file server or the cache server.
- 12. The method of claim 11, wherein the file update data is transmitted as streaming data to the first storage cache.
- 13. The method of claim 11 further comprising:
compressing the file update data prior to transmission to the first storage cache.
- 14. The method of claim 11, wherein the automatically transmitting and the incorporating steps are performed at predetermined intervals.
- 15. A system for managing shared access to data files stored in a file server by a plurality of authorized computer workstations, the system comprising:
a cache server for retrieving a copy of a data file stored at the file server; at least a first storage cache associated with at least a first authorized computer workstation, wherein the first storage cache stores in a local memory the retrieved data file copy as a cached data file and incorporates data file modifications entered by the first workstation into the cached data file; wherein the first storage cache automatically generates and transmits file update data to the cache server as streaming data, wherein the file update data is a function of the modifications incorporated into the cached data file; and wherein the cache server generates a replacement version of the data file based on the file update data and responds to a request for access to the data file subsequently transmitted to the cache server from at least one of a second storage cache and an authorized computer workstation using the replacement version of the data file.
- 16. The system of claim 15, wherein the cache server generates server update file data representative of differences between the cached data file stored at the first storage cache and the version of the data file currently stored at the file server, and wherein the cache server automatically transmits the server file update data to the first storage cache in response to a data file request transmitted by the first storage cache.
- 17. A system for managing shared access to data files stored in a file server by a plurality of authorized computer workstations, the system comprising:
a cache server for coupling to the file server; a plurality of storage caches for accessing data files stored in the file server by establishing a communications connection with the cache server, wherein the cache server includes a leasing module, wherein the leasing module decides whether to grant or deny a request for a lease for a data file received from a first of the storage caches based on whether a, and what type of, lease already exists for the data file or whether the data file is already locked, wherein the decision is made in accordance with criteria that a write lease cannot be granted if a read lease already exists, only a reader right can be granted if a write lease already exists and an additional read lease can be granted if a read lease already exists; and wherein the cache server automatically performs steps to update the cached data file at the first storage cache if a reader access right or a read lease is granted.
- 18. A system for managing shared access to data files stored in a file server by a plurality of authorized computer workstations, the system comprising:
a cache server for coupling to the file server; and a plurality of storage caches for accessing the data files stored in the file server by establishing a communications connection with the cache server, wherein each of the storage caches includes a leasing module for controlling whether a request for access to a data file from an associated workstation should be granted or denied, wherein the access request is a request to read or write a data file stored at the file server, wherein the leasing module performs the following steps following receipt of the request:
determining a lease condition for the data file existing at the storage cache, wherein the lease condition is one of read, write and no lease; granting the request if the request is read and the existing lease is read or write, or if the request is write and the lease condition is write; requesting a new lease from the cache server if the request is read and the lease condition is no lease, or if the request is write and the lease condition is read or no lease, determining at the cache server whether to grant a lease for a data file based on whether a, and what type of, lease already exists for the data file or whether the data file is already locked, wherein the decision is made in accordance with criteria that a write lease cannot be granted if a read lease already exists, only a reader right can be granted if a write lease already exists, and an additional read lease can be granted if a read lease already exists; and performing steps to automatically update the cached data file at the storage cache based on the current version of the data file stored at the file server, if a lease is granted or the request is a read and, otherwise, denying the request.
- 19. The system of claim 18, wherein the automatic updating steps include updating the data file stored at the file server based on a cached data file stored at one of the storage caches.
- 20. The system of claim 18, wherein the leasing module at a first of the storage caches performs the follows steps when the leasing module determines that a cached data file corresponding to a data file stored at the file server is no longer opened at a workstation associated with the first at storage caches:
determining whether the cached data file copy was modified based on entries made by the workstation while the cached data file was open; if the data file copy was modified, automatically transmitting file update data to the cache server; and releasing any lease for the data file; and wherein the cache server uses the file update data to update the version of the data file stored on the file server.
- 21. The system of claim 20, wherein the file update is transmitted in streaming, compressed form.
- 22. The system of claim 20, wherein the file update is transmitted in compressed form.
CROSS REFERENCE TO RELATED APPLICATION
[0001] This application claims the benefit of U.S. Provisional Application No. 60/440,750 filed Jan. 17, 2003, assigned to the assignee of this application and incorporated by reference herein.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60440750 |
Jan 2003 |
US |