Product Documentation

c-treeACE V10.0 Update Guide

Previous Topic

Next Topic

Corrective Checkpoint Logic for Buffer/Cache Pages Missing from Update Lists

The c-treeACE Server had been observed to retain an excessive number of transaction logs with a message similar to the following:

Tue Sep 1 00:05:55 2009

- User# 00122 The number of active log files increased to: 28

Tue Sep 1 00:05:55 2009

- User# 00122 Cache/Buffer Pending Flush

This message indicates that a buffer page has not been flushed and remains on the server’s internal list of updated buffers. While this can be expected in normal processing under a large transaction load, two unexpected buffer states have been considered as potential candidates for a “false” retention of the transaction log:

  • The buffer does not have its update flag set.
  • The buffer is not on the list of updated buffers.

c-treeACE now detects and corrects these unexpected buffer states during checkpoint processing.

In the first case, a placeholder transaction number is associated with the buffer.

To address the second case, a test is made. If a page is found off the update list for CMTPAG_CHECK_LIMIT consecutive checkpoints a message is logged to CTSTATUS.FCS and the buffer is subsequently placed on the update list for processing during the next checkpoint. CMTPAG_CHECK_LIMIT is set to 6 by default.

The following is a list of potential diagnostic messages that may be seen logged to CTSTATUS.FCS when one of these events occur and the action taken:

Index buffer on commit node list without update flag...

Data cache on commit data list without update flag...

The c-treeACE Server found an index buffer or data cache page on the commit list, however, the buffer’s update flag is not set. The c-treeACE Server enters zero transaction numbers into the commit list as this cache page has been written to disk.

Index buffer on commit node list is not on update list...

Data cache on commit data list is not on update list...

The index buffer or data cache page is on the commit node list, but not on the update list. The c-treeACE Server puts the buffer or cache page on the update list so that a subsequent checkpoint flushes that updated buffer or cache page.

TOCIndex