Automatic caching greatly relieves systems support of its previous cache administration tasks while also providing optimum use of the available cache.
AutoDAB carries out the tasks described below.
Automatic selection of suitable files on a specified set of data media
Enters the files into the cache configuration when they are opened. Files already open when a cache area is created are entered during the first I/O to the cache area.
/MODIFY-DAB-CACHING
command cannot be added to or removed from the current cached file configuration by the file controller of AutoDAB.File classification according to their access profile
The files are allocated to one of the following three classes according to their access profile:
sequentially processed file
non-sequentially (random) processed file with temporal locality
non-sequentially (random) processed file without temporal locality
Caching according to analysis results
Sequentially processed files are well suited for caching if a large prefetch is executed during reading and saving to the disk is executed in large blocks. During reading with AutoDAB, several small cache segments are therefore filled with one cache I/O (multisegment prefetch) and when saving with AutoDAB, several small segments are written with adjacent data with a single cache I/O (multi-segment destage).
In addition, asynchronous caching is initiated with read accesses in case the data areas of the next prefetch I/O required have not yet been written into the cache. This further reduces the wait time for writing to the cache although in an ideal case the data is already in the cache before it is accessed.
If the space allocated to the cache area is already fully occupied and the supported data area exceeds the size defined in the subsystem initialization file, the system minimizes the occupation of cache segments for caching files of this class. This allows a data segment which is occupied for a data prefetch (from the disk) because of a read miss to be released for further data caching once all PAM pages in the segment have been referenced.
Non-sequentially (random) processed files with temporal locality are well suited for caching if, as far as possible, only the referenced data (which will very probably be rereferenced soon because of the temporal locality) is written to the cache to improve utilization of the cache area. AutoDAB takes this into consideration when caching data and executes a minimum prefetch (record level caching).
Non-sequentially (random) processed files without temporal locality are hardly suitable for caching since they cause continuous cache writes (or asynchronous saves) without rereferencing the data. This displaces other files, which utilize the cache better, from the cache. For this reason, AutoDAB excludes these files from caching once it detects this access behavior (after a synchronization phase). This class of files is only buffered if they fit completely into the cache without displacing other files.
Cyclic monitoring of the cache utilization of buffered files
The selected files (also those which are accessed non-sequentially, i.e. randomly) are initially buffered for a while before a check is made as to whether it is a good idea (as a whole) to cache the file. This means that checks are made at regular intervals to determine whether the performance of the files supported for the cache area is (still) satisfactory. The actual cache utilization rate is used as the criterion for this. The cache utilization rate determines the relationship between executed accesses and the segment allocations required for them. A large cache utilization rate value also means good cache utilization.
If the performance is poor for the supported files, caching is stopped for files with poor cache utilization.
Automatic FORCE-OUT correction
When a cache area is defined, systems support can use the command /START-DAB-CACHING
with the operand FORCE-OUT=...
to specify the threshold as of which write data is saved asynchronously from the cache to the relevant data storage media. This also defines which part of a cache area is to be held free for read data or caching new data, as far as possible. If this value is incorrectly set, it can have severe adverse effects on the performance of a cache area in borderline cases. This setting is therefore checked during automatic caching and corrected if necessary.
The possible values for FORCE-OUT=...
are arranged in the following order:
*NO
*AT-HIGH-FILLING
*AT-LOW-FILLING
The value specified for an operand by the user is corrected if processing the allocation of a new cache segment causes a cache overflow. The system then switches to the next lower level if possible. If no further switching is possible and cache overflows occur during several monitoring periods, systems support is informed via a console message that the cache area is defined too small for the current load.
Caching data areas on shared pubsets
Shared allocated disks are served by AutoDAB with read caching. In contrast to the previous DAB support, it is no longer necessary to ensure that disks are only read. DAB guarantees the data consistency of read caching by only reading files used on the local system (processed either without shared update or only with local shared update) and invalidating the cache contents when the files are closed.
This ensures that the latest data is accessed after the files have been updated from other systems. Files opened on shared pubsets in a HIPLEX in shared update mode and with LOCK-ENVIRONMENT=*XCS, i.e. which are subject to a system-global shared update, are not served by DAB in this case.