WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
System for accessing distributed data cache channel at each network node to pass requests and data    
United States Patent5611049   
Link to this pagehttp://www.wikipatents.com/5611049.html
Inventor(s)Pitts; William M. (780 Mora Dr., Los Altos, CA 94024)
AbstractNetwork Distributed Caches ("NDCs") (50) permit accessing a named dataset stored at an NDC server terminator site (22) in response to a request submitted to an NDC client terminator site (24) by a client workstation (42). In accessing the dataset, the NDCs (50) form a NDC data conduit (62) that provides an active virtual circuit ("AVC") from the NDC client site (24) through intermediate NDC sites (26B, 26A) to the NDC server site (22). Through the AVC provided by the conduit (62), the NDC sites (22, 26A and 26B) project an image of the requested portion of the named dataset into the NDC client site (24) where it may be either read or written by the workstation 42. The NDCs (50) maintain absolute consistency between the source dataset and its projections at all NDC client terminator sites (24, 204B and 206) at which client workstations access the dataset. Channels (116) in each NDC (50) accumulate profiling data from the requests to access the dataset for which they have been claimed. The NDCs (50) use the accumulated profile data stored in channels (116) to anticipate future requests to access datasets, and, whenever possible, prevent any delay to client workstations in accessing data by asynchronously pre-fetching the data in advance of receiving a request from a client workstation.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 5611049
System for accessing distributed data cache channel at each network node

     to pass requests and data - US Patent 5611049 Drawing
System for accessing distributed data cache channel at each network node to pass requests and data
Inventor     Pitts; William M. (780 Mora Dr., Los Altos, CA 94024)
Owner/Assignee    
Patent assignment
All assignments
Publication Date     March 11, 1997
Application Number     08/343,477
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     November 28, 1994
US Classification     707/8 710/56 711/137 711/141
Int'l Classification     G06F 015/163
Examiner     Kim; Kenneth S.
Assistant Examiner    
Attorney/Law Firm     Schreiber; Donald E.
Address
Parent Case    
Priority Data    
USPTO Field of Search     395/200.03 395/200.09 395/200.18 395/876 395/200.15 395/464
Patent Tags     accessing distributed data cache channel each network node pass requests data
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5224205
Dinkin
709/226
Jun,1993

[0 after 0 votes]
5155808
Shimizu
709/202
Oct,1992

[0 after 0 votes]
5133053
Johnson
709/223
Jul,1992

[0 after 0 votes]
5113519
Johnson
707/201
May,1992

[0 after 0 votes]
5109515
Laggis
707/10
Apr,1992

[0 after 0 votes]
5077658
Bendert

Dec,1991

[0 after 0 votes]
5058000
Cox
707/10
Oct,1991

[0 after 0 votes]
5056003
Hammer
719/310
Oct,1991

[0 after 0 votes]
5001628
Johnson
707/10
Mar,1991

[0 after 0 votes]
4975830
Gerpheide
709/228
Dec,1990

[0 after 0 votes]
4897781
Chang
707/201
Jan,1990

[0 after 0 votes]
4714992
Gladney
707/206
Dec,1987

[0 after 0 votes]
4694396
Weisshaar
719/313
Sep,1987

[0 after 0 votes]
4463424
Mattson
711/136
Jul,1984

[0 after 0 votes]
4422145
Sacco
711/160
Dec,1983

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


What is claimed is:

1. In a network of digital computers that includes a first plurality of Network Distributed Cache ("NDC") sites, each NDC site including an NDC that has an NDC buffer, a method for projecting images of a stored dataset from an NDC server terminator site into a second plurality of NDC client terminator sites in response to requests to concurrently access such stored dataset transmitted from a third plurality of client sites respectively to the second plurality of NDC client terminator sites, the method comprising the steps of:

(a) the NDC receiving the request to access data in the stored dataset;

(b) the NDC checking the NDC buffer at this NDC site to determine if a projected image of data requested from the stored dataset is already present there;

(c) if the NDC buffer of this NDC site does not contain a projected image of all data requested from the stored dataset, and if the NDC site receiving the request is not the NDC server terminator site for the stored dataset, the NDC of this NDC site transmitting a request for data from this NDC site downstream to another NDC site closer to the NDC server terminator site for the stored dataset than the present NDC site;

(d) if the NDC buffer of this NDC site does not contain a projected image of all data requested from the stored dataset, and if the NDC site receiving the request is the NDC server terminator site for the stored dataset, the NDC of the NDC server terminator site accessing the stored dataset to project an image of the requested data into the NDC buffer of the NDC server terminator site;

(e) repeating the steps (a) through (d) until the NDC buffer of the downstream NDC site receiving the request contains a projected image of all requested data;

(f) each successive NDC site, having obtained a projected image of all the requested data, returning the requested data upstream to the NDC site from which the NDC site received the request until the requested data arrives at the NDC client terminator site, each NDC site that returns data upstream to the requesting NDC site retaining a copy of the returned data that the returning NDC site may subsequently transmit to an NDC site other than the NDC site to which the returning NDC site first returned the data, whereby images of the stored dataset may be projected concurrently from a single NDC site into the second plurality of NDC client terminator sites; and

(g) the NDC client terminator site, upon receiving the requested data, returning the requested data to the client site that requested access to the stored dataset.

2. The method of claim 1 wherein, prior to returning the requested data to the client site, the NDC client terminator site reformats the requested data from the protocol employed for communications between pairs of NDC sites into the protocol in which the client site requested access to the stored dataset from the NDC client terminator site.

3. The method of claim 2 wherein the NDC client terminator site selectively reformats the requested data from the protocol employed for communications between pairs of NDC sites into a particular one of a plurality of different protocols that matches the protocol in which the client site requested access to the stored dataset from the NDC client terminator site.

4. The method of claim 1 further comprising the steps of:

(h) each NDC upon receiving the initial request to access the stored dataset claiming a channel and designating the channel for storing various data relevant to processing requests to access the stored dataset;

(i) storing in the channel of this NDC site data collected by the NDC while processing requests to access the stored dataset; and

(j) if the NDC site is not performing any steps of the method that are required for responding to a request to access the stored dataset, the method at NDC sites further including:

i. periodically analyzing data stored in the channel of this NDC site to determine whether future requests to access the stored dataset may be anticipated;

ii. if the analysis of data stored in the channel of this NDC site establishes a possibility for anticipating future requests to access the stored dataset, further analyzing data stored in the channel to determine whether anticipated future requests will soon present this NDC site with another request to access the stored dataset and whether the projected image of data present in the NDC buffer includes sufficient data to respond immediately to the anticipated request; and

iii. if anticipated future requests to access the stored dataset will soon present this NDC site with another request to access the stored dataset and if the projected image of data present in the NDC buffer lacks sufficient data to respond immediately to the anticipated request, this NDC site, before receiving a request therefor, requesting data from the stored dataset from the next downstream NDC site.

5. The method of claim 4 wherein the NDC site, in requesting data from the next downstream NDC site, requests a quantity of data that is larger than the amount of data returned by the NDC client terminator site to the requesting client site in response to a request to access the stored dataset received by the NDC client terminator site from the client site.

6. The method of claim 1 wherein each NDC upon receiving the initial request to access the stored dataset claims a channel and designates the channel for storing various data relevant to processing requests to access the stored dataset, the method at NDC sites further comprising the step of:

(h) if the NDC is not performing any steps of the method that are required for responding to a request to access the stored dataset, the method at NDC sites further including:

i. periodically analyzing channels to determine if such channel is presently no longer needed for responding to requests to access the stored dataset for which the channel was claimed; and

ii. if the channel being analyzed is no longer needed for responding to requests to access the stored dataset, then processing the no longer needed channel to prepare such channel for immediate claiming in response to a subsequent request from a client site to access another dataset.

7. The method of claim 6 wherein the periodic analysis of channels to determine if such channel is presently no longer needed for responding to requests is halted if the number of channels available to respond to a future request to access a dataset exceeds a pre-established upper threshold.

8. The method of claim 7 wherein the NDC having stopped periodically analyzing channels, resumes periodically analyzing channels if the number of channels available to respond to a future request to access a dataset drops below a pre-established lower threshold that is less than the pre-established upper threshold.

9. The method of claim 1 further comprising the steps of:

(h) each NDC, upon receiving the initial request to access the stored dataset from an upstream NDC site, allocating an upstream site structure in which the NDC stores information indicating the type of activity being performed on the stored dataset at the upstream NDC site from which this NDC site received the request;

(i) each NDC, upon receiving a request to access the stored dataset if the type of activity occurring on the stored dataset differs from that already being supported for the stored dataset, transmitting a message to the downstream NDC site that returned requested data informing the downstream NDC site of the new type of activity now occurring on the stored dataset; and

(j) each NDC, upon receiving a message from an upstream NDC site informing the NDC of the type of activity being performed on the stored dataset at that upstream NDC site, storing such information in the upstream site structure for that upstream NDC site.

10. The method of claim 9 further comprising the steps of:

(k) each NDC, upon receiving information from a local client or from an upstream NDC site informing the NDC of the type of activity being performed on the stored dataset at that location, comparing the information just received with previously stored information recording the type of activity occurring on the stored dataset; and

(l) if the NDC determines from the comparison of the information just received with the previously stored information that the stored dataset is being accessed by at least two different NDC sites and one of those NDC sites is accessing the stored dataset to write data into the stored dataset, then a concurrent write sharing ("CWS") condition has occurred, and the NDC upon detecting the CWS condition becoming a consistency control site ("CCS") for the stored dataset.

11. The method of claim 10, after the NDC becomes the CCS, further comprising the steps of:

(m) if a request to access the stored dataset for writing creates the CWS condition, then the CCS transmitting disable messages to all upstream NDC sites other than the NDC site whose request created the CWS condition instructing such upstream NDC sites to disable any projected image of the dataset stored in the NDC buffer of such NDC sites; and

(n) if a request to access the stored dataset for reading creates the CWS condition, then transmitting a recall message to the upstream NDC site that is accessing the stored dataset to write data to the stored dataset instructing such upstream NDC site to transmit back to the CCS the projected image of the dataset stored in the NDC buffer of such NDC site.

12. The method of claim 11 further comprising the step of:

(o) the NDC that became the CCS for the stored dataset including with the data returned to all upstream NDC sites that access the stored dataset an indicator that instructs each such upstream NDC site not to maintain a projected image of the data in their NDC buffer after the data has traversed the NDC site.

13. The method of claim 12 further comprising the steps of:

(p) the NDC that became the CCS for the stored dataset, upon receiving information from a local client or from an upstream NDC site informing the CCS NDC of a cessation of a type of activity being performed on the stored dataset at that location, comparing the information just received with the previously stored information for the stored dataset;

(q) if the NDC determines from the comparison of the information just received with the previously stored information for the stored dataset that this NDC site need no longer function as the CCS for the stored dataset, then the NDC site ceasing to function as the CCS for the stored dataset; and

(r) upon this NDC site ceasing to function as the CCS for the stored dataset, permitting any upstream NDC site that is accessing the stored dataset to maintain in the NDC buffer of such NDC site an image of any subsequent projections of data from the stored dataset.

14. The method of claim 10 wherein; before a disable message or a recall message transmitted upstream by the NDC site that recently became the CCS reaches an NDC site having a projected image of the stored dataset present in the NDC buffer of that NDC site; such NDC site transmits downstream, through a channel toward the NDC site that became the CCS, a request to access the stored dataset; the request to access the stored dataset transmitted downstream arriving at an NDC site that has already transmitted the recall or disable message upstream; the method further comprising the steps of:

(o) the NDC site, that receives the request to access the stored dataset after having transmitted the recall or disable message upstream, responds to the request by rejecting the request to access the stored dataset;

(p) each upstream site upon receiving the response rejecting the request to access the stored dataset successively retransmitting the rejection response upstream until the rejection message reaches the client terminator site for the request to access the stored dataset; and

(g) upon receiving the rejection message, the NDC of the NDC client terminator site releasing the channel, waiting a short interval of time to allow the recall or disable message from the downstream CCS to be processed, and then generating and transmitting downstream a new request to access the stored dataset.

15. The method of claim 9 further comprising the steps of:

(m) the NDC site having become the CCS for the stored dataset, upon receiving information from a local client or from an upstream NDC site informing the CCS NDC of a cessation of a type of activity being performed on the stored dataset at that location, comparing the information just received with the previously stored information for the stored dataset; and

(n) if the NDC site determines from the comparison of the information just received with the previously stored information for the stored dataset that this NDC site need no longer function as the CCS for the stored dataset, then the NDC site ceasing to function as the CCS for the stored dataset.

16. A network of digital computers that includes a first plurality of client sites which request access to a stored dataset that is stored at a location that can be accessed through the network, the network comprising:

a second plurality of NDC sites, the stored dataset whose access is requested by the client sites being stored at an NDC server terminator site, a request from the client sites for access to the stored dataset being received by a third plurality of NDC client terminator sites, each NDC site including:

(a) an NDC that has an NDC buffer;

(b) means for the NDC to receive the request to access the stored dataset;

(c) means for the NDC to check the NDC buffer at this NDC site to determine if a projected image of data requested from the stored dataset is already present there, wherein:

i. if the NDC buffer of this NDC site does not contain a projected image of all data requested from the stored dataset, and if this NDC site is not the NDC server terminator site for the stored dataset, the NDC includes means for transmitting a request for data from this NDC site downstream to another NDC site closer to the NDC server terminator site for the stored dataset than the present NDC site;

ii. if the NDC buffer of this NDC site does not contain a projected image of all data requested from the stored dataset, and if this NDC site is the NDC server terminator site for the stored dataset, the NDC including means for accessing the stored dataset to project an image of the requested data into the buffer of this NDC; and

iii. if the NDC buffer of an NDC site contains a projected image of all requested data, the NDC including means for returning the data requested from this NDC site upstream to the NDC site from which this NDC site received the request, whereby through a succession of such returns of data from one NDC site to the next upstream NDC site the requested data ultimately arrives at the NDC client terminator site, each NDC site that returns data upstream to the requesting NDC site retaining a copy of the returned data that the returning NDC site may subsequently transmit to an NDC site other than the NDC site to which the returning NDC site first returned the data, whereby images of the stored dataset may be projected concurrently from a single NDC site into the third plurality of NDC client terminator sites; and

(d) means for the NDC client terminator site to return the requested data to the client site that requested access to the stored dataset.

17. The network of claim 16 wherein, prior to returning the requested data to the client site, said data return means reformats the requested data from the protocol employed for communications between pairs of NDC sites into the protocol in which the client site requested access to the stored dataset from the NDC client terminator site.

18. The network of claim 17 wherein the data return means selectively reformats the requested data from the protocol employed for communications between pairs of NDC sites into a particular one of a plurality of different protocols that matches the protocol in which the client site requested access to the stored dataset from the NDC client terminator site.

19. The network of claim 16 wherein each NDC site further comprises:

(e) means for the NDC, upon receiving the initial request to access the stored dataset, to claim a channel for storing various data relevant to processing requests to access the stored dataset;

(f) means for the NDC to store in the channel data collected by the NDC while processing requests to access the stored dataset;

(g) if the NDC site is not responding to a request to access the stored dataset, means for the NDC to periodically analyze data stored in the channel to determine whether future requests to access the stored dataset may be anticipated;

(h) if the analysis of data stored in the channel by the NDC establishes that future requests to access the stored dataset may be anticipated, means for the NDC to further analyze data stored in the channel to determine whether anticipated future requests will soon present this NDC with another request to access the stored dataset and whether the projected image of data present in the NDC buffer includes sufficient data to respond immediately to the anticipated request; and

(i) if anticipated future requests will soon present this NDC site with another request to access the stored dataset and if the projected image of data present in the NDC buffer lacks sufficient data to respond immediately to the anticipated request, means for the NDC to request from the next downstream NDC site data from the stored dataset before receiving a request therefor.

20. The network of claim 19 wherein the NDC site requests from the next downstream NDC site a quantity of data from the stored dataset before receiving a request therefor, the quantity of data requested by the NDC site being larger than the amount of data returned by the NDC client terminator site to the requesting client site in response to a request to access the stored dataset received by the NDC client terminator site from the client site.

21. The network of claim 16 wherein each NDC site further comprises:

(e) means for the NDC, upon receiving the initial request to access the stored dataset, to claim a channel for storing various data relevant to processing requests to access the stored dataset;

(f) if the NDC is not responding to a request to access the stored dataset, means for the NDC to periodically analyze channels to determine if such channel is presently no longer needed for responding to requests to access the stored dataset for which the channel was claimed; and

(g) if analysis of the channel establishes that the channel is no longer needed for responding to requests to access the stored dataset, means for the NDC to process the no longer needed channel to prepare such channel for immediate claiming in response to a subsequent request from a client site to access another stored dataset.

22. The network of claim 21 wherein each NDC site further comprises means for halting the analysis of channels to determine if such channels are presently no longer needed for responding to requests if the number of channels available to respond to future requests to access datasets exceeds a pre-established upper threshold.

23. The network of claim 22 wherein each NDC site further comprises means for resuming the previously halted analysis of channels to determine if such channels are presently no longer needed for responding to requests if the number of channels available to respond to future requests to access datasets drops below a pre-established lower threshold that is less than the pre-established upper threshold.

24. The network of claim 16 wherein each NDC site further comprises:

(e) means for the NDC, upon receiving the initial request to access the stored dataset from an upstream NDC site, to allocate an upstream site structure in which the NDC stores information indicating the type of activity being performed on the stored dataset at the upstream NDC site from which this NDC site received the request;

(f) means for each NDC, upon receiving a request to access the stored dataset if the type of activity occurring on the stored dataset differs from that already being supported for the stored dataset, to transmit a message to downstream NDC site that returned requested data informing the downstream NDC site of the new type of activity now occurring on the stored dataset; and

(g) means for each NDC, upon receiving a message from an upstream NDC site informing such NDC site of the type of activity being performed on the stored dataset at that upstream NDC site, to store such information in the upstream site structure for that upstream NDC site.

25. The network of claim 24 wherein each NDC site further comprises:

(h) means for each NDC, upon receiving information from a local client or from an upstream NDC site informing the NDC of the type of activity being performed on the stored dataset at that location, to compare the information just received with the previously stored information recording the type of activity occurring on the stored dataset; and

(i) if the NDC determines from the comparison of the information just received with the previously stored information for the stored dataset that the stored dataset is being accessed by at least two different NDC sites and one of those NDC sites is accessing the stored dataset to write data into the stored dataset, then means for the NDC to detect that a CWS condition has occurred, and to thereupon become a CCS for the stored dataset.

26. The network of claim 25 wherein the NDC site that has become of the CCS further comprises:

(j) if a request to access the stored dataset for writing creates the CWS condition, means for the NDC to transmit disable messages to all upstream NDC sites other than the NDC site whose request created the CWS condition instructing such upstream NDC sites to disable any projected image of the dataset stored in the NDC buffer of such NDC sites; and

(k) if a request to access the stored dataset for reading creates the CWS condition, means for the NDC to transmit a recall message to the upstream NDC site that is accessing the stored dataset to write data to the stored dataset instructing such upstream NDC site to transmit back to the CCS the projected image of the dataset stored in the NDC buffer of such NDC site.

27. The network of claim 26 wherein each NDC site further comprises:

(l) means for the NDC that became the CCS for the stored dataset to include with the data returned to all upstream NDC sites that access the stored dataset an indicator that instructs each such upstream NDC site not to maintain a projected image of the data in their NDC buffer after the data has traversed the NDC site.

28. The network of claim 27 wherein each NDC site further comprises:

(m) means for the NDC that became the CCS for the stored dataset, upon receiving information from a local client or from an upstream NDC site informing the CCS NDC of a cessation of a type of activity being performed on the stored dataset at that location, to compare the information just received with the previously stored information for the stored dataset;

(n) if the NDC determines from the comparison of the information just received with the previously stored information for the stored dataset that this NDC site need no longer function as the CCS for the stored dataset, means for the NDC site to cease functioning as the CCS for the stored dataset; and

(o) upon this NDC site ceasing to function as the CCS for the stored dataset, means for the NDC site to permit any upstream NDC site that is accessing the stored dataset to maintain in the NDC buffer of such NDC site an image of any subsequent projections of data from the stored dataset.

29. The network of claim 25 wherein each NDC site before a disable message or a recall message transmitted upstream by the NDC site that recently became the CCS reaches an NDC site having a projected image of the stored dataset present in the NDC buffer of that NDC site; such NDC site transmits downstream, through a channel toward the NDC site that became the CCS, a request to access the stored dataset; the request to access the stored dataset transmitted downstream arriving at an NDC site that has already transmitted the recall or disable message upstream; each NDC site further comprising:

(l) means for the NDC site, that receives the request to access the stored dataset after having transmitted the recall or disable message upstream, to respond to the request by rejecting the request to access the stored dataset;

(m) means for each upstream site upon receiving the response rejecting the request to access the stored dataset successively retransmitting the rejection response upstream until the rejection message reaches the client terminator site for the request to access the stored dataset; and

(n) upon receiving the rejection message, means for the NDC of the NDC client terminator site to release the channel, wait a short interval of time to allow the recall or disable message from the downstream CCS to be processed, and then to generate and to transmit downstream a new request to access the stored dataset.

30. The network of claim 24 wherein each NDC site further comprises:

(j) means for the NDC site having become the CCS for the stored dataset, upon receiving information from a local client or from an upstream NDC site informing the CCS NDC of a cessation of a type of activity being performed on the stored dataset at that location, to compare the information just received with the previously stored information for the stored dataset; and

(k) if the NDC site determines from the comparison of the information just received with the previously stored information for the stored dataset that this NDC site need no longer function as the CCS for the stored dataset, means for the NDC site to cease functioning as the CCS for the stored dataset.
 Description Submit all comments and votes
 


This application is the national stage of PCT/US92/04939 filed Jun. 3, 1992 and claims priority therefrom.

TECHNICAL FIELD

The present invention relates generally to the technical field of multi-processor digital computer systems and, more particularly, to multi-processor computer systems in which:

1. the processors are loosely coupled or networked together;

2. data needed by some of the processors is controlled by a different processor that manages the storage of and access to the data;

3. processors needing access to data request such access from the processor that controls the data;

4. the processor controlling data provides requesting processors with access to it.

BACKGROUND ART

Within a digital computer system, processing data stored in a memory; e.g., a Random Access Memory ("RAM") or on a storage device such as a floppy disk drive, a hard disk drive, a tape drive, etc.; requires copying the data from one location to another prior to processing: Thus, for example, prior to processing data stored in a file in a comparatively slow speed storage device such as hard disk, the data is first copied from the computer system's hard disk to its much higher speed RAM. After data has been copied from the hard disk to the RAM, the data is again copied from the RAM to the computer system's processing unit where it is actually processed. Each of these copies of the data, i.e., the copy of the data stored in the RAM and the copy of the data processed by the processing unit, can be considered to be image of the data stored on the hard disk. Each of these images of the data may be referred to as a projection of the data stored on the hard disk.

In a loosely coupled or networked computer system having several processors that operate autonomously, the data needed by one processor may be accessed only by communications passing through one or more of the other processors in the system. For example, in a Local Area Network ("LAN") such as Ethernet one of the processors may be dedicated to operating as a file server that receives data from other processors via the network for storage on its hard disk, and supplies data from its hard disk to the other processors via the network. In such networked computer systems, data may pass through several processors in being transmitted from its source at one processor to the processor requesting it.

In some networked computer systems, images of data are transmitted directly from their source to a requesting processor. One operating characteristic of networked computer systems of this type is that, as the number of requests for access to data increase and/or the amount of data being transmitted in processing each request increases, ultimately the processor controlling access to the data or the data transmission network becomes incapable of responding to requests within an acceptable time interval. Thus, in such networked computer systems, an increasing workload on the processor controlling access to data or on the data transmission network ultimately causes unacceptably long delays between a processor's request to access data and completion of the requested access.

In an attempt to reduce delays in providing access to data in networked computer systems, there presently exist systems that project an image of data from its source into an intermediate storage location in which the data is more accessible than at the source of the data. The intermediate storage location in such systems is frequently referred to as a "cache," and systems that project images of data into a cache are be referred to as "caching" systems.

An important characteristic of caching systems, frequently referred to as "cache consistency" or "cache coherency," is their ability to simultaneously provide all processors in the networked computer system with identical copies of the data. If several processors concurrently request access to the same data, one processor may be updating the data while another processor is in the process of referring to the data being updated. For example, in commercial transactions occurring on a networked computer system one processor may be accessing data to determine if a customer has exceeded their credit limit while another processor is simultaneously posting a charge against that customer's account. If a caching system lacks cache consistency, it is possible that one processor's access to data to determine if the customer has exceeded their credit limit will use a projected image of the customer's data that has not been updated with the most recent charge. Conversely, in a caching system that possesses complete or absolute cache consistency, the processor that is checking the credit limit is guaranteed that the data it receives incorporates the most recent modifications.

One presently known system that employs data caching is the Berkeley Software Distribution ("BSD") 4.3 version of the Unix timesharing operating system. The BSD 4.3 system includes a buffer cache located in the host computer's RAM for storing projected images of blocks of data, typically 8k bytes, from files stored on a hard disk drive. Before a particular item of data may be accessed on a BSD 4.3 system, the requested data must be projected from the hard disk into the buffer cache. However, before the data may be projected from the disk into the buffer cache, space must first be found in the cache to store the projected image. Thus, for data that is not already present in a BSD 4.3 system's buffer cache, the system must perform the following steps in providing access to the data:

Locate the buffer in the RAM that contains the Least Recently Used ("LRU") block of disk data.

Discard the LRU block of data which may entail writing that block of data back to the hard disk.

Project an image of the requested block of data into the now empty buffer.

Provide the requesting processor with access to the data.

If the data being accessed by a processor is already present in a BSD 4.3 system's data cache, then responding to a processor's request for access to data requires only the last operation listed above. Because accessing data stored in RAM is much faster that accessing data stored on a hard disk, a BSD 4.3 system responds to requests for access to data that is present in its buffer cache in approximately 1/250th the time that it takes to respond to a request for access to data that is not already present in the buffer cache.

The consistency of data images projected into the buffer cache in a BSD 4.3 system is excellent. Since the only path from processors requesting access to data on the hard disk is t