Servers having file-read-intensive workloads will find it beneficial to cache frequently-read files. Usually the application relies upon CMS's FSREAD cache and minidisk caching to achieve good performance, but these facilities have their limits.
To overcome these limits and extend the caching facilities available to the server writer, the reusable server kernel offers a file caching scheme based on VM Data Spaces. 1 A file cache is simply a data space whose contents -- files -- are controlled for the server by the server kernel. The server author decides the number and sizes of file caches he creates; he has both APIs and operator commands at his disposal for both creating and deleting file caches. Using APIs alone, the server program requests that files be cached in these data spaces; in response to the server's requests, the server kernel reads files using conventional CMS file APIs and holds them in data spaces, removing them either when they become stale or when data space storage becomes constrained. When storage constraints are an issue, the server kernel removes files in LRU (least recently used) fashion. Such removal is not visible to the server program.