Chained Anticipatory Buffer handler (CAB)
The Chained Anticipatory Buffer handler (CAB) is a highly efficient HSSR buffer handler for ESDSs, OSAM databases, and OSAM LDSs. It is designed to reduce the I/O time, I/O wait time, and elapsed time for HSSR application programs.
CAB is the more advanced of the two HSSR buffer handlers. CAB uses the following buffering methods to improve buffering performance:
- Direct I/O
- Enables direct access to a single ESDS CI, OSAM LDS CI, or OSAM block.
- Immediate (non-overlapped) chained sequential I/O
- Enables reading of multiple consecutive ESDS CIs, OSAM LDS CIs, or OSAM blocks (called ranges) through Channel Command Word (CCW) chaining.
- Anticipatory (overlapped) chained sequential I/O
- Allows CAB to perform overlapped "look-ahead" I/O. This involves the overlapping of CAB I/O with processing and other I/O of the same job step. (Overlapped I/O is also performed with CCW chaining.) CAB decides dynamically when to start overlapped I/O, based on the reference pattern analysis.
- Reference pattern analysis
- Forecasts and decides whether chained sequential I/O of multiple blocks or CIs or direct I/O of
one single block or CI is preferable.
The forecast is based on statistics about reference patterns within the most recently referred-to relative byte address (RBA) ranges of the data set. For example, assume that a segment was inserted after the last database load or reload, and that this segment was stored in an OSAM block, OSAM LDS CI, or ESDS CI far away from the blocks or CIs containing the other segments of either the same or neighboring database records. In such a case, CAB might forecast that direct I/O is superior to chained sequential I/O for reading the block or CI containing the inserted segment.
- Look-aside buffering
- Is an efficient buffering method also used by BB and DL/I buffer handlers.
- Inter-PCB look-aside buffering (optional)
- Inter-PCB look-aside is a method that enables CAB to attempt to find a requested RBA in buffers of other HSSR PCBs. If HSSR PCB 1 and HSSR PCB 2 refer to the same database, and if look-aside buffering for HSSR PCB 1 is unsuccessful, HSSR buffer handler tries to find the requested data in the CAB buffers of HSSR PCB 2. If the data is found, the buffer of HSSR PCB 2 is copied into a buffer of HSSR PCB 1.
Restrictions when using CAB for ESDS data sets and OSAM LDS data sets
When CAB is used for ESDS data sets or OSAM LDS data sets:
- The number of VSAM buffers for the ESDS data set or OSAM LDS data set is chosen by CAB. This number must not be overridden by means of JCL specifications or IDCAMS specifications. Do not code the BUFND, BUFSP, and STRNO operands in the AMP parameter of the DD statements. Avoid coding the BUFFERSPACE parameter on a DEFINE or ALTER command.
- If multiple HSSR PCBs defined in the PSB refer to the same ESDS database or OSAM LDS database, CAB can be used to buffer only one of these PCBs. Use the BB to buffer the other PCBs referring to this ESDS database or OSAM LDS database. Inter-PCB look-aside buffering option can be activated between CAB buffer and BB buffer for the same ESDS database or OSAM LDS database.