z/TPF - Group home

z/TPFDF recoup optimized chain chasing (APARs PH30068 and PJ46413)

By Chris Filachek posted Tue November 30, 2021 04:31 PM

  

z/TPFDF recoup optimized chain chasing reduces the amount of DASD I/O resources and the time required by recoup to chain chase z/TPFDF indexed databases that contain a large number of detail subfiles with only a single pool record. 

Recoup is a maintenance utility that is used to find all in-use pool records and return any lost pools to the z/TPF system.  Standard z/TPFDF recoup chain chasing finds in-use pool records by reading all z/TPFDF subfiles and the pool records used by those subfiles.  If your z/TPFDF database contains tens of millions of pool records or less, recoup might be able to chain chase the database in less than an hour.  However, as your database grows into the billions or tens of billions of pool records, the time required for recoup to chain chase the database can grow from a few minutes or hours to more than a day.  With a database this large, the total recoup run time can exceed the recoup runtime window allowed by your business and negatively impact other utilities or business-critical processing.

When recoup optimized chasing is enabled for a z/TPFDF database, recoup uses an optimized chain chase for detail subfiles that consist of only 1 pool record.  As part of this process, recoup marks the pool record as in use without reading the detail subfile.  With optimized chain chasing, recoup can find all in-use pool records, return lost pools, and chain chase your z/TPFDF databases with fewer I/O resources and in less time.

For example, standard z/TPFDF recoup chain chasing performs 81 billion I/O’s and needs almost 2 days to chain chase an indexed database with 1 billion fixed record ordinals and 80 billion detail subfiles, assuming each detail subfile consists of only 1 pool record and recoup can read at a rate of 500,000 I/O's per second.  In comparison, recoup optimized chain chasing performs 1 billion I/O's and only needs about 30 minutes to chain chase the same database with the same assumptions.  In a database with a large number of single-record detail subfiles, optimized chain chasing can reduce the recoup run time to a fraction of the time compared to standard chain chasing and complete within the time required by your business.

Use on new and existing z/TPFDF databases

z/TPFDF recoup optimized chain chasing can be enabled on new and existing databases, including databases that contain large logical records (LLRs) and overflow chains.  Recoup optimized chain chasing can be used with a variety of indexed database structures, including databases with multiple indexes and multiple index paths. 

Within a z/TPFDF indexed database, recoup optimized chain chasing is supported on single-level index paths that use 8-byte file address references.  A single level index path is a top-level fixed record index that directly references the detail file.  If a database has multiple indexes, you can enable recoup optimized chain chasing on only those paths that meet the requirements for this support.  For example, you might enable this support for an email index that meets the requirements but leave it disabled for a phone number index that uses 4-byte file address references or is a multi-level index. 

For more information on the requirements for using z/TPFDF recoup optimized chain chasing or the z/TPFDF indexed database structures where it can be used, see Plan for z/TPFDF recoup optimized chain chasing

Enabling a z/TPFDF database for recoup optimized chain chasing

This support is enabled for a z/TPFDF database by setting the ID1=(RCPOPTIDX) parameter on the DBDEF macro for the index file and by setting IMI bit 4 on one or more backward index paths on the DBDEF macro for the detail file.  After a z/TPFDF database is enabled for recoup optimized chain chasing, z/TPFDF automatically begins managing recoup optimized chain chase information in the index file for detail subfiles referenced by the index.  This information is used by recoup to determine if recoup can use standard or optimized chain chasing for the detail subfile. 

See Enabling recoup optimized chain chasing for more information on enabling this support for a z/TPFDF database.

Using optimized chain chasing during recoup

After your z/TPFDF database is enabled for recoup optimized chain chasing, you can use the DFOPTMZ parameter on the ZRECP PROFILE command to enable or disable optimized chain chasing in recoup.  This parameter is initially set to DISABLE, which forces recoup to use standard chain chasing for all z/TPFDF databases even if recoup optimized chain chasing is enabled on the DBDEFs for one or more databases. 

When the DFOPTMZ parameter is set to ENABLE, recoup uses optimized chain chasing for all detail subfiles that consist of a single pool record and were indexed after the DBDEFs for this database were enabled for recoup optimized chain chasing.  All other detail subfiles continue to use standard recoup chain chasing.

While recoup can use optimized chain chasing, CRUISE only uses standard chain chasing.  This allows you to run CRUISE as a low priority utility in the background to read and verify all records in a database.

See How z/TPFDF recoup optimized chain chasing works for more information how the recoup optimized chain chase information in the index file is used by recoup and is automatically maintained by z/TPFDF.

Additional information

For more information about z/TPFDF recoup optimized chain chasing, see z/TPFDF recoup optimized chain chasing in the IBM z/TPFDF documentation. 

For more information about APARs PH30068 and PJ46413, see the APEDITs.

0 comments
10 views