Client-based caching of remote files
First Claim
1. A computer system at a client for providing access to remote files that are stored on a remote server and that are shared with other clients, the system comprising:
- a processor and memory configured to execute software instructions;
an application interface configured to provide an interface through which applications submit requests to open remote files on the server and receive file data;
a communication component configured to transmit requests and receive responses over a network that connects one or more clients and servers;
a break handling component configured to respond to break notifications received from the remote server, wherein a break notification indicates that access that the server previously granted is no longer compatible with access requests of the other clients accessing the same file;
a cache component configured to cache data at the client based on information received from the server, wherein the cache component is further configured to flush the cache data in response to the break notification; and
a lease request component configured to send lease requests to the remote server and handle received lease responses,wherein the lease request component is further configured to send an acknowledgment request to the remote server that indicates that the client has handled the break notification and requests a new scope of access to the remote file based on application requests on the client, andwherein the lease request component is further configured to receive an acknowledgement response from the remote server that indicates whether the remote server granted the new scope of access to the remote file.
1 Assignment
0 Petitions
Accused Products
Abstract
A lease system is described herein that allows clients to request a lease to a remote file, wherein the lease permits access to the file across multiple applications using multiple handles without extra round trips to a server. When multiple applications on the same client (or multiple components of the same application) request access to the same file, the client specifies the same lease identifier to the server for each open request or may handle the request from the cache based on the existing lease. Because the server identifies the client'"'"'s cache at the client level rather than the individual file request level, the client receives fewer break notifications and is able to cache remote files in more circumstances. Thus, by providing the ability to cache data in more circumstances common with modern applications, the lease system reduces bandwidth, improves server scalability, and provides faster access to data.
-
Citations
20 Claims
-
1. A computer system at a client for providing access to remote files that are stored on a remote server and that are shared with other clients, the system comprising:
-
a processor and memory configured to execute software instructions; an application interface configured to provide an interface through which applications submit requests to open remote files on the server and receive file data; a communication component configured to transmit requests and receive responses over a network that connects one or more clients and servers; a break handling component configured to respond to break notifications received from the remote server, wherein a break notification indicates that access that the server previously granted is no longer compatible with access requests of the other clients accessing the same file; a cache component configured to cache data at the client based on information received from the server, wherein the cache component is further configured to flush the cache data in response to the break notification; and a lease request component configured to send lease requests to the remote server and handle received lease responses, wherein the lease request component is further configured to send an acknowledgment request to the remote server that indicates that the client has handled the break notification and requests a new scope of access to the remote file based on application requests on the client, and wherein the lease request component is further configured to receive an acknowledgement response from the remote server that indicates whether the remote server granted the new scope of access to the remote file. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 16)
-
-
11. A computer-readable storage medium comprising instructions for controlling a computer system to handle a break notification from a server, wherein the instructions, when executed at a client, cause a processor to perform actions comprising:
-
transmitting a lease request over a network that connects one or more clients and servers, wherein the lease request includes a lease identifier provided by the client when the client opened a remote file managed by the server and accessible by other clients; receiving a lease response over the network, wherein the lease response includes information from the remote file managed by the server; caching data at the client based upon the information received from the server; receiving the break notification from the server, wherein the break notification includes a lease identifier provided by the client when the client opened a remote file managed by the server to which the break applies, wherein the break notification is not based on concurrent access to the remote file by applications on the client, and wherein the break notification indicates that access that the server previously granted is no longer compatible with access requests of the other clients accessing the remote file; in response to receiving the break notification, flushing cached data; sending an acknowledgement request to the server that indicates that the client has handled the break and requests a new scope of access to the remote file based on application requests on the client; and receiving an acknowledgement response from the server that indicates whether the server granted the new scope of access to the remote file. - View Dependent Claims (12, 13, 14, 17, 18, 19, 20)
-
Specification