Db2 for z/OS and its ecosystem

 View Only

Take a new look at fast index traversal (FTBs) in Db2 12

By Paul McWilliams posted Thu October 08, 2020 12:01 PM


By Akiko Hoshikawa and Paul McWilliams.

The fast index traversal feature of Db2 12 (often called "FTB" for "fast traverse blocks") delivers valuable Db2 transaction performance improvements without the need for application changes. FTBs use a cache-friendly optimized in-memory structure to accelerate index-tree traversals, which can significantly reduce get page operations and CPU consumption. They are enabled by default in Db2 12 by the INDEX_MEMORY_CONTROL subsystem parameter setting and can take effect as soon as Db2 12 function level 100.

Some early adopters of FTBs encountered high-impact problems related to the timing of updates to the in-memory structures, and some clients who encountered these issues disabled the use of FTBs in their Db2 environments.

In response, Db2 development has undertaken extensive analysis and quality improvements for FTBs, including: improved serviceability, improved test coverage, and resolution of all known FTB-related software defects, whether reported externally or resulting from the improved internal serviceability and test coverage.

If you currently have FTBs enabled in your Db2 12 environment, ensure that you have tested in pre-production and applied all APAR fixes listed below, to ensure that you resolve potential timing or data quality issues.

If you are waiting to re-enable FTBs or preparing to enable them for the first time, we suggest that you follow a three-step approach to start using them:

Step 1: Apply important APAR fixes

The following table lists the most important APARs to apply at the time of writing. It is not a comprehensive list of the APARs and PTFs in this area. If you apply these however, all other known relevant APARS and PTFs will be pulled in.

APAR / PTF Correction for...
PH43565 / UI79317 INCORROUT for FTB and non-unique index with greater than predicates
PH19484 / UI67068 Handling variable-length index keys with include columns
PH38212/UI76239 Handling a timing issue during creation of FTB in data sharing environments
PH21916 / UI68631,
PH29336/ UI71351
FTB p-lock handling at various index operations in data sharing environments
PH36531/ UI75391 Timing window between mass-delete and FTB creation
PH26109 / UI70271 Error handling of SYSIBM.SYSINDEXCONTROL entries
PH26845 / UI70523 Avoid a loop in insert/delete against the index with FTB
PH40269/UI77189 Avoid returning index keys out of order when index page is involved in split and FTB is in use.

To enable you to more easily identify FTB-related fixes, we also created a new FIXCAT (SMP/E Fix category) IBM.DB2.FTB with keyword DB2FTB/K. For more information about FIXCATs and a complete list, see Fix Categories and RETAIN Keywords. Use these keywords to identify and apply any FTB-related additional fixes that might have become available since the writing of this blog entry.

Step 2: Enable and test the use of FTBs for specific indexes

In addition to the maintenance listed above, APAR PH23238 / UI69968 introduces a new index-level granularity capability that you can use to enable and test FTBs for a specific set of selected indexes.

To use this new capability, set the INDEX_MEMORY_CONTROL subsystem parameter to (SELECTED,AUTO) or (SELECTED,n) and add a row with ACTION='A' in the SYSINDEXCONTROL catalog table for each selected index. The criteria for building FTB structures remains the same: Db2 builds FTBs on unique indexes from the list when a sufficient number of random accesses are detected.

For more information, see Enabling or disabling fast index traversal at the index level.

Step 3: Consider system-level reactivation based on your testing

Based on the results of your testing and use of FTBs for specific indexes, consider whether your Db2 environment is best served by maintaining index-level control, or if it might benefit from system-level reactivation of FTBs by setting the INDEX_MEMORY_CONTROL subsystem parameter to AUTO.

Stay tuned for more news about FTBs

We also plan to extend the usability and capabilities of FTBs in the future, including enhancements to help you identify candidate indexes that are likely to benefit the most from FTB processing.

We'll notify you about the availability of these new features in future entries in this blog and in the other usual channels, such as in Recent Enhancements to Db2 12.

Akiko Hoshikawa is an IBM Distinguished Engineer for Db2 for z/OS development, and Paul McWilliams is an Information Developer for Db2 for z/OS documentation.

Sign in and subscribe to always get the latest news about Db2 for z/OS from the IBM lab: http://ibm.biz/db2znews-subscribe