System and method for using cached data at a local node after re-opening a file at a remote node in a distributed networking environment
First Claim
1. A system for determining the validity of data residing in a plurality of blocks in a client cache, of a client data processing system at a client mode, from a file residing in a server data processing system at a server node, wherein said server data processing system and said client data processing system are connected by means of a communications link, said system comprising:
- means for determining, at the server node, a latest modification time of the file;
means, in the client data processing system, for saving, corresponding to each of the blocks in the client cache, the latest determined modification time of the file, received from the server data processing system, when the file is closed at the client;
means for recording, in the client data processing system, another determined latest modification time, received from the server data processing system, when said file is subsequently reopened at said client processing system; and
means coupled to said saving means and said recording means for comparing, in the client data processing system, the latest determined modification time corresponding to one of said blocks with the recorded another determined latest modification time to determine the validity of said block.
1 Assignment
0 Petitions
Accused Products
Abstract
In a distributed environment several data processing systems are interconnected across a network system. A distributed services program installed on the systems in the network allows the processors to access data files distributed across the various nodes of the network without regard to the location of the data file in the network. The processing system accessing file, referred to as the client processing system, utilizes a client cache within its operating system to store the data file. Utilizing the client cache minimizes the number of reads and writes that must go over the network to the server processing system where the file physically resides. The system and method of this invention prevents a process in the client processing system from accessing data in the client cache that has been modified at another node in the network. The blocks of data in the client cache are tested for validity in the client processing system by using modification times as measured by the server processing system. If the cache data blocks are determined to be valid, the data blocks are determined to be invalid, the data blocks are discarded, and the file is accessed from the server processing system.
486 Citations
16 Claims
-
1. A system for determining the validity of data residing in a plurality of blocks in a client cache, of a client data processing system at a client mode, from a file residing in a server data processing system at a server node, wherein said server data processing system and said client data processing system are connected by means of a communications link, said system comprising:
-
means for determining, at the server node, a latest modification time of the file; means, in the client data processing system, for saving, corresponding to each of the blocks in the client cache, the latest determined modification time of the file, received from the server data processing system, when the file is closed at the client; means for recording, in the client data processing system, another determined latest modification time, received from the server data processing system, when said file is subsequently reopened at said client processing system; and means coupled to said saving means and said recording means for comparing, in the client data processing system, the latest determined modification time corresponding to one of said blocks with the recorded another determined latest modification time to determine the validity of said block. - View Dependent Claims (2, 3, 4)
-
-
5. A system for using cached data residing in a plurality of blocks in a client cache, of a client data processing system at a client node, from a file residing in a server data processing system at a server node, wherein said server data processing system and said client data processing system are connected by means of a communications link, said system comprising:
-
first means for recording, at the server data processing system, a one last modification time for the file whenever the file at the server data processing system is modified; means for saving, in said client data processing system, said one last modification time, received from the server data processing system, for each of the cached data blocks for the file in the client cache when the file is closed at the client data processing system; second means for recording, in the client data processing system, another last modification time, received from the server data processing system, of the file at the server processing system, at a time of a subsequent reopen of the file in the client data processing system; and means coupled to said saving means and said second recording means for using at least one of the blocks of the file in the client cache if said using means determines that said saved one last modification time for each of said blocks is equal to the recorded another last modification time in the client data processing system.
-
-
6. A method for using cached data residing in a plurality of blocks in a client cache, of a client processing system at a client mode, from a file residing in a server processing at a server node, wherein said server processing system and said client processing system are connected by means of a communications link, said method comprising the steps of:
-
recording by the client processing system a one last modification time, received from the server data processing system, of the file at the server processing system, for each of the cached data blocks in the client cache when the file is closed at the client processing system; recording by the client processing system another last modification time, received from the server processing system, of the file at the server processing system during a subsequent reopen of the file in the client processing system; and using at least one of the cached data blocks by a processing the client processing system if said process determines that said one last modification time for each of the at least one cached data blocks is equal to the another last modification time, of the file, recorded in the client processing system. - View Dependent Claims (7, 8)
-
-
9. A method for determining the validity of data residing in a cache block in a client processing system from a file residing in a server processing system, wherein the client processing system and the server processing system are connected by means of a communication link, said method comprising the steps of:
-
recording by the server processing system a latest modification time for the file at the server processing system whenever the file at the server processing system is updated; recording by the client processing system the latest modification time, received from the server processing system, when the file in the client processing system is first opened; allocating the cache block assigned to the file in the client cache in the client processing system when a block of the file is read from the server processing system; recording by said client processing system the latest modification time recorded in the client processing system for each allocated cache block; updating by said client processing system the latest modification time recorded in each said allocated cache block assigned to the file when the file is last closed at the client processing system; and comparing by said client processing system the latest modification time recorded in the client processing system a first reopen to the updated latest modification time for each said allocated cache block, to determine the validity of each said allocated cache block. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
15. A system for keeping a plurality of blocks of data in a client cache, from a file residing at a server processing system, available for use by a client processing system when the file is reopened after a close of the file at the client processing system, wherein the client processing system and the server processing system are connected by means of a communication link, said system comprising:
-
first means for recording, in each of the cached blocks in the client processing system, a one last modification time, received from the server processing system, of the file at the server processing system, when the file is closed at the client processing system; second means for recording, in the client processing system, another last modification time, received from the server processing system, of the file at the server processing system, when the file is subsequently reopened at the client processing system; means coupled to said first and second recording means for comparing the modification times in the client processing system and the cached blocks to determine if the data in the cache blocks remained unmodified at the server processing system while the file at the client processing system was closed; and means coupled to said comparing means for using the data from the cached blocks by a process in the client processing after the file is subsequently reopened in the client processing system if the compared modification times are equal.
-
-
16. A computer program having program code means for determining the validity of data residing in a plurality of blocks in a client cache, of a client data processing system at a client node, from a file residing in a server data processing system at a server node, wherein said server data processing system and said client data processing system are connected by means of a communications link, said computer program comprising:
-
first program code means, in the client data processing system, for causing a recording of correspondence between each of the blocks in the client cache and a latest determined modification time of the file, received from the server data processing system, when the file is closed at the client; second program code means for causing a recording, in the client data processing system, of another determined latest modification time, received from the server data processing system, when said file is subsequently reopened at said client processing system; and third program code means for causing a comparison, in the client data processing system, between the latest determined modification time corresponding to one of said blocks and the recorded another determined latest modification time to determine the validity of said block.
-
Specification