摘要 |
A cache is distributed among processors in a multiple processor system with no shared memory to maintain the cached data. Each processor maintains a cache which identifies the opened files being cached, the blocks of each file which are cached and the state of caching for each file. The state of each opened file is one of "no-caching", "read-caching" and "read/write caching". So long as only one processor opens a file, and opens it for read/write access, that processor is allowed to do read/write caching on the file. When a processor opens a file for read access, that processor is allowed to do read caching, unless another processor has the file open for read/write access. After the last processor having read/write access to a file closes the file, the disk system upgrades the cache state for the file. The downgrading of the caching state is communicated via an asynchronous cache callback signal, while the upgrading of a cache is not indicated to a processor until the processor sends a disk request for the file. The replay to the request contains the new cache state.
|