Datacom Multiple Index Queue Processors
search cancel

Datacom Multiple Index Queue Processors

book

Article ID: 55556

calendar_today

Updated On:

Products

Datacom Datacom/AD Datacom/DB

Issue/Introduction

One of the improvements to Datacom/DB and Datacom/AD several versions ago was the addition of multiple index queue processors. With this change, the Multi User Facility (MUF) can process the index queue more effectively, which can in turn boost application and MUF performance.

 

Environment

Component : Datacom/AD

Component : Datacom/DB

Resolution

To understand how the use of the Index Queue can help performance, you must first understand what the queue is. The index queue is used to asynchronously balance the tree structure of the index which in turn minimizes the number of index blocks that must be accessed in order to find a row. This balancing by the index queue is done in two cases:

  1. Index balancing is always done when an index block is deleted (reclaimed for free space). This occurs when all entries in the block are deleted and the associated data changes have been committed. This delete code removes pointers to the index block in both the horizontal and vertical tree structure and allows the block to become a free block for future reuse. Since this process is I/O intensive, it is offloaded from the original task that was processing the delete request to the index queue processor so that the actual delete request is not unnecessarily delayed.
  2. Second, if an index block splits because it is full and a new index entry needs to be inserted, the balancing work of adding additional index blocks to the vertical index structure can be offloaded to the index queue so that the actual insert request is not unnecessarily delayed.

The index queue runs at a high priority and in a normal environment, it keeps pace with the amount of work offloaded to it. But there are special cases in which the index queue can get behind due to a large spike in the index workload. Typically, this is seen at sites that repeatedly build large CBS temporary indexes, use them for very few requests, and then free or delete the temporary indexes. It can also occur when a user program deletes a large number of rows from a table all at once.

The index queue has been changed from a single task to as many as ten tasks that are used on an as-needed basis to handle all the processing. Each of these ten tasks can simultaneously process index queue entries as long as they are for different DBIDs. Index balancing for multiple databases can now be done both simultaneously and independently. For example, CBS index balancing does not affect index balancing for a user database.

Statistics are provided in the MUF EOJ report related to the index queue processors and the depth of the index queue.

Additional Information

As always, please contact Broadcom support for Datacom if you have further questions.