Claims
- 1. In a digital network including at least first and second Client Servers, each of the first and second Client Servers being operable to communicate with (1) respective local clients and (2) a remote Data Server to request access to data files on storage devices connected to the remote Data Server, the digital network being operable to provide mediation between storage and networking protocols used for communication between clients, servers and storage devices, a method of accelerating read access to data by clients, the method comprising:
providing, for each of the first and second Client Servers, a respective local read cache operable to communicate with the Client Server, operable to store a copy of recently read data; providing, for each of the first and second Client Servers, a respective local write cache operable to communicate with the Client Server, operable to store a copy of data to be written; receiving a read access request from a client in communication with the first or second Client Server; in response to receipt of the read access request, checking the local write cache for a data segment match; if no data segment match is found in the local write cache, checking the local read cache for a data segment match; if the segment is found in the local cache, transmitting to the remote Data Server a request to determine the validity of the data in the local read cache, thereby to determine whether the data in the local read cache must be updated from the remote Data Server, if the data in the local read cache is not valid, or if no data segment match is found in the local read cache, transmitting the read access request to the remote Data Server for serving of the requested data; and once the requested data is transmitted from the remote Data Server, storing a copy of the requested data in the local read cache.
- 2. The method of claim 1, further comprising:
assigning a time-stamp to a data segment stored in the local read cache; assigning a time-stamp to a data segment stored in the remote Data Server; upon receipt of a request to determine the validity of the data in the local read cache, comparing the time-stamp of the data segment stored in the local read cache with the time-stamp of a comparable data segment stored in the remote Data Server to determine whether the data segment in the local read cache is older than the comparable data segment on the remote data server; and if the data segment in the local read cache is older than the comparable data segment on the remote data server, designating as invalid the data segment in the local read cache.
- 3. The method of claim 2, further comprising:
if the data segment in the local read cache is designated invalid, then transmitting the read access request to the remote Data Server for serving of the requested data; and once the requested data is transmitted from the remote Data Server, storing a copy of the requested data in the local read cache and updating the respective time-stamps. Multiple Client Servers—Writes
- 4. In a digital network including at least first and second Client Servers, each of the first and second Client Servers being operable to communicate with (1) respective local clients and (2) a remote Data Server to request access to data files on storage devices connected to the remote Data Server, the digital network being operable to provide mediation between storage and networking protocols used for communication between clients, servers and storage devices, a method of accelerating response to write access requests by clients, the method comprising:
providing, for each of the first and second Client Servers, a respective local read cache operable to communicate with the Client Server, operable to store a copy of recently read data; providing, for each of the first and second Client Servers, a respective local write cache operable to communicate with the Client Server, operable to store a copy of data to be written; receiving a write request from a client in communication with the first or second Client Server; in response to receipt of the write request, checking the respective local read cache for a data segment match, and if a matching data segment is detected, invalidating the matching data segment; checking the respective local write cache for a data segment match, and if a matching write segment is detected, invalidating or reusing the matching write segment; transmitting to the remote Data Server a request to determine whether the write segment is available for writing, and if the segment is unavailable, waiting for the write segment to become available; generating a new write cache entry representing the write data segments to be written; and transmitting to the remote Data Server a request to unlock the data segments to be written.
- 5. The method of claim 4 further comprising:
determining whether data segments are available for writing by the first Client Server by checking whether the data segments are being written or otherwise are locked by the second Client Server during the time the first Client Server requests write access to the same or overlapping data segments.
- 6. The method of claim 5 wherein the determining further comprises generating a lock request on the requested data segment if the segment is available.
- 7. In a switching system adapted to interconnect local clients in communication with a Client Server, the Client Server being operable to communicate with a remote Data Server to request access to data files on storage devices connected to the remote Data Server, the switching system being operable to provide mediation between storage and networking protocols used for communication between clients, servers and storage devices, a method of accelerating read access to data by clients, the method comprising:
providing a local data cache operable to communicate with the Client Server; storing within the local data cache a copy of data recently read from the remote Data Server; determining, when a client in communication with the Client Server requests data by means of a read request, whether the requested data is present in the local data cache; and if the requested data is present in the local data cache, providing the client access to the cached data from the local data cache; or, if the requested data is not present in the local data cache, transmitting the read request to the remote Data Server for serving of the requested data by the remote Data Server, and, once the requested data is transmitted to the Client Server, storing a copy of the requested data in the local data cache.
- 8. In a switching system adapted to interconnect local clients in communication with a Client Server, the Client Server being operable to communicate with a remote Data Server to request access to data files on storage devices connected to the remote Data Server, the switching system being operable to provide mediation between storage and networking protocols used for communication between clients, servers and storage devices, a method of accelerating response to write access requests by clients, the method comprising:
providing a local data cache operable to communicate with the Client Server; when data to be written is received from a client, storing the data in the local data cache and transmitting to the client a write operation completion signal upon storage of the data in the local data cache; and subsequently transmitting the data to be written to the remote Data Server for writing out to the storage devices connected thereto.
- 9. The method of claim 14 further comprising:
accumulating in the local data cache multiple segments of data to be written; and subsequently transmitting the multiple segments of data to be written in a batch operation to the remote Data Server.
- 10. The method of claim 9 wherein the multiple segments of data to be written are transmitted in a semi-contiguous write access to the remote Data Server.
- 11. In a switching system adapted to interconnect local clients in communication with a Client Server, the Client Server being operable to communicate with a remote Data Server to request access to data files on storage devices connected to the remote Data Server, the switching system being operable to provide mediation between storage and networking protocols used for communication between clients, severs and storage devices, a method of accelerating read access to data by clients, the method comprising:
providing a local read cache operable to communicate with the Client Server, operable to store a copy of recently read data; providing a local write cache operable to communicate with the Client Server, operable to store a copy of data to be written; storing within the local data cache a copy of data recently read from the remote Data Server; receiving a read access request from a client in communication with the Client Server; in response to receipt of the read access request, checking the local write cache for a data segment match; if no data segment match is found in the local write cache, checking the local read cache for a data segment match; if no data segment match is found in the local read cache, transmitting the read access request to the remote Data Server for serving of the requested data; and once the requested data is transmitted from the remote Data Server, storing a copy of the requested data in the local read cache.
- 12. In a switching system adapted to interconnect local clients in communication with a Client Server, the Client Server being operable to communicate with a remote Data Server to request access to data files on storage devices connected to the remote Data Server, the switching system being operable to provide mediation between storage and networking protocols used for communication between clients, servers and storage devices, a method of accelerating response to write access requests by clients, the method comprising:
providing a local read cache operable to communicate with the Client Server, operable to store a copy of recently read data; providing a local write cache operable to communicate with the Client Server, operable to store a copy of data to be written; receiving a write request from a client in communication with the Client Server, in response to receipt of the write request, checking the local read cache for a matching read segment and, if a matching read segment is detected, invalidating the matching read segment, checking the local write cache for matching write segments and, if a matching write segment is detected, invalidating or reusing the write segment, and generating a new local write cache entry representing the write data segment.
- 13. In a switching system including at least first and second Client Servers, each of the first and second Client Servers being operable to communicate with (1) respective local clients and (2) a remote Data Server to request access to data files on storage devices connected to the remote Data Server, the switching system being operable to provide mediation between storage and networking protocols used for communication between clients, servers and storage devices, a method of accelerating read access to data by clients, the method comprising:
providing, for each of the first and second Client Servers, a respective local read cache operable to communicate with the Client Server, operable to store a copy of recently read data; providing, for each of the first and second Client Servers, a respective local write cache operable to communicate with the Client Server, operable to store a copy of data to be written; receiving a read access request from a client in communication with the first or second Client Server; in response to receipt of the read access request, checking the local write cache for a data segment match; if no data segment match is found in the local write cache, checking the local read cache for a data segment match; if the segment is found in the local cache, transmitting to the remote Data Server a request to determine the validity of the data in the local read cache, thereby to determine whether the data in the local read cache must be updated from the remote Data Server, if the data in the local read cache is not valid, or if no data segment match is found in the local read cache, transmitting the read access request to the remote Data Server for serving of the requested data; and once the requested data is transmitted from the remote Data Server, storing a copy of the requested data in the local read cache.
- 14. The method of claim 13, further comprising:
assigning a time-stamp to a data segment stored in the local read cache; assigning a time-stamp to a data segment stored in the remote Data Server; upon receipt of a request to determine the validity of the data in the local read cache, comparing the time-stamp of the data segment stored in the local read cache with the time-stamp of a comparable data segment stored in the remote Data Server to determine whether the data segment in the local read cache is older than the comparable data segment on the remote data server; and if the data segment in the local read cache is older than the comparable data segment on the remote data server, designating as invalid the data segment in the local read cache.
- 15. The method of claim 14, further comprising:
if the data segment in the local read cache is designated invalid, then transmitting the read access request to the remote Data Server for serving of the requested data; and once the requested data is transmitted from the remote Data Server, storing a copy of the requested data in the local read cache and updating the respective time-stamps.
- 16. In a switching system connectable to at least first and second Client Servers, each of the first and second Client Servers being operable to communicate with (1) respective local clients and (2) a remote Data Server to request access to data files on storage devices connected to the remote Data Server, the switching system being operable to provide mediation between storage and networking protocols used for communication between clients, servers and storage devices, a method of accelerating response to write access requests by clients, the method comprising:
providing, for each of the first and second Client Servers, a respective local read cache operable to communicate with the Client Server, operable to store a copy of recently read data; providing, for each of the first and second Client Servers, a respective local write cache operable to communicate with the Client Server, operable to store a copy of data to be written; receiving a write request from a client in communication with the first or second Client Server; in response to receipt of the write request, checking the respective local read cache for a data segment match, and if a matching data segment is detected, invalidating the matching data segment; checking the respective local write cache for a data segment match, and if a matching write segment is detected, invalidating or reusing the matching write segment; transmitting to the remote Data Server a request to determine whether the write segment is available for writing, and if the segment is unavailable, waiting for the write segment to become available; generating a new write cache entry representing the write data segments to be written; and transmitting to the remote Data Server a request to unlock the data segments to be written.
- 17. The method of claim 16 further comprising:
determining whether data segments are available for writing by the first Client Server by checking whether the data segments are being written or otherwise are locked by the second Client Server during the time the first Client Server requests write access to the same or overlapping data segments.
- 18. The method of claim 17 wherein the determining further comprises generating a lock request on the requested data segment if the segment is available.
- 19. In a digital network having at least first and second Client Servers, each of the first and second Client Servers being operable to communicate with (1) respective local clients and (2) a remote Data Server to request access to data files on storage devices connected to the remote Data Server, the network being operable to provide mediation between storage and networking protocols used for communication between clients, servers and storage devices, a system for accelerating read access to data by clients, the system comprising:
means for providing, for each of the first and second Client Servers, a respective local read cache operable to communicate with the Client Server, operable to store a copy of recently read data; means for providing, for each of the first and second Client Servers, a respective local write cache operable to communicate with the Client Server, operable to store a copy of data to be written; means for receiving a read access request from a client in communication with the first or second Client Server; means for, in response to receipt of the read access request, checking the local write cache for a data segment match; if no data segment match is found in the local write cache, checking the local read cache for a data segment match; if the segment is found in the local cache, transmitting to the remote Data Server a request to determine the validity of the data in the local read cache, thereby to determine whether the data in the local read cache must be updated from the remote Data Server, if the data in the local read cache is not valid, or if no data segment match is found in the local read cache, transmitting the read access request to the remote Data Server for serving of the requested data; and means for, once the requested data is transmitted from the remote Data Server, storing a copy of the requested data in the local read cache.
INCORPORATION BY REFERENCE/PRIORITY CLAIM
[0001] Commonly owned U.S. provisional application for patent Ser. No. 60/245,295 filed Nov. 2, 2000, incorporated by reference herein; and
[0002] Commonly owned U.S. provisional application for patent Ser. No. 60/301,378 filed Jun. 27, 2001, incorporated by reference herein.
[0003] Additional publications are incorporated by reference herein as set forth below.
PCT Information
Filing Document |
Filing Date |
Country |
Kind |
PCT/US01/45637 |
11/2/2001 |
WO |
|