Blocked I/O

Blocking I/O is the process that D3 uses to group several disk reads into one larger disk access in order to improve disk performance.

Processes performing sequential disk accesses, such as file-saves or AQL statements, have the possibility of grouping several disk reads into one larger disk access. This has the advantage of reducing the number of disk accesses and, therefore, improving performance. For example, selecting a 10,000 frame file normally requires 10,000 disk accesses. If the process can read four frames at a time, it runs only 2,500 disk accesses. Even if reading 4 frames (8 KB on a 2 KB frame system) takes a little bit longer than reading only 1 frame (2 KB), reducing the number of disk accesses usually results in a noticeable performance improvement.

Blocked I/O places greater memory demands on the system, and can have some impact on multiuser performance.

The net effect of grouping the disk reads is reducing the number of frame faults (that is, when a D3 process requires a page that is not currently in memory). This can be monitored with the TCL buffers command.

The blocking factor (or number of frames read in one disk access) can be set for the whole system using the TCL blkio command, or as an argument in the configuration file.