Write pacing

Write Pacing works by injecting a small delay as each XRC record set is created in cache for a given volume. As device residual count increases, so does the magnitude of the pacing, eventually reaching a maximum value at a target residual count. Both this maximum value, and the target residual count at which it is effective, can be specified for each volume through XRC commands. This provides a greater level of flexibility than Device Blocking. Further, the device remains ready to process I/O requests, allowing Application read activity to continue while the device is being paced.

There are fifteen different levels of maximum pacing that you can specify. They are identified by the hexadecimal digits 1 through F, and are specified in XRC commands through the DVCBLOCK keyword values WP1 through WPF. Each volume in the session may be assigned its own value, or you may use a session-level value to apply to a group of volumes. The session-level setting is defined in the XRC PARMLIB value DfltWritePacingLvl, and a special DVCBLOCK value (WP0) is used in XRC commands to assign this attribute to volumes. DfltWritePacingLvl is also used for newly added volumes on write-pacing capable storage subsystems unless overridden on the XADDPAIR command.

WP0 specifies that the session default level will be used, as specified the SHADOW DfltWritePacingLvl PARMLIB value.

WP1-WP7 results in pacing maximums ranging from 0.02 to 2 ms per recordset, and are useful for volumes with high rates of small blocksize writes, such as data base logs and LOGPLUS volumes, where minimal response time impact is essential.

WP8-WPB results in pacing maximums ranging from 5 to 50 ms per recordset, useful for volumes with high mb/sec write rates.

WPC-WPF results in pacing maximums ranging from 100 to 1000 ms per recordset, and should be used in exceptional situations where a high degree of pacing is required.

Target residual count is specified at the session level, through the XRC PARMLIB value WrtPacingResidualCnt. The value is multiplied by 64 to determine the residual count at which the maximum level of pacing will be in effect for write-paced volumes.

Volume blocking and pacing attributes are initially established through the XADDPAIR command, and the presence or absence of the DONOTBLOCK or DVCBLOCK parameters. Once established, they can be changed for the life of the session with the XSET command using the VOLUME and DVCBLOCK parameters.

Care should be taken in selecting write pacing levels and residual count. Insufficient pacing can result in extended long busy conditions and volume suspension, while excessive pacing can result in unacceptable application throughput and response time.

You can monitor write pacing using the new XQUERY VOLUME_PACE report. Since existing XRC monitors and automation rely on indications of "blocking", a method has been provided to roughly equate "excessive" pacing to a blocking event. This is done with the XRC PARMLIB PacingReportThreshold value, which specifies the average injected pacing per write I/O, in milliseconds, that must exist for a volume to be considered blocked. This blocking indication is reflected in the usual way at the volume and session level in XQUERY reports, XRC monitor data, and XRC Performance Montior displays and messages.