Start of change

Refreshing cross-invalidated buffer pool pages through prefetch

If the buffer pool is very large and your applications depend on large objects which are expected to be in memory mostly, you can turn on the REFPF option so as to avoid synchronous read due to cross invalidation.

About this task

Db2 automatically converts updated page sets or partitions from read-write intent to read-only intent state, which is controlled by the pseudo-close mechanism using the pseudo-close intervals,which are specified by the PCLOSET subsystem parameter value. Conversion takes place when the elapsed time since a page set or partition was last updated becomes PCLOSET. The page set or partition becomes GBP-independent and the pages in local buffer pools are cross-invalidated.

Later, when read-write activity starts again, the page set or partition switches to GBP dependency, and the pages in the buffer pools are cross-invalidated again. This repeated invalidation behavior can be painful for applications that depend on large indexes, which are expected to be in memory mostly. This invalidation behavior can defeat the purpose of having large buffer pools and increase synchronous reads and impact online workload performance.

However, you can avoid the impacts of these synchronous reads by using prefetch to refresh the cross-invalidated pages that exist in the buffer pool. You can also change the pseudo-close interval for specific buffer pools.

Procedure

To reduce the performance impact of synchronous reads for cross-invalidated buffer pool pages, take the following actions:

  • For buffer pools that use PGSTEAL(FIFO) or PGSTEAL(LRU), issue the ALTER BUFFERPOOL command and specify REFPF(YES) option.
  • Change the pseudo-close interval for buffer pool by issuing the ALTER BUFFERPOOL command with the VPLCOSET(integer) option. The integer value specifies the number of minutes that a partition or page set remains read-write after it is last updated. It must be 0–32767, inclusive. The initial default value is 0, which means that the PCLOSET subsystem parameter value specifies the pseudo-close interval for the buffer pool.
End of change