Overlapped I/O on Windows NT

by Charlie Caro 17th Nov 1998


Improve multi-user (or single user/multi-threaded) performance by enabling overlapped disk I/O on Windows NT.

User Interface/Usability

The purpose is to allow multiple I/Os to a database file simultaneously. The current I/O model that InterBase employs on Windows NT is serial; no more than a single I/O is queued to a database file at any instant. This is an historical artifact of the Classic architecture where each process can issue a single I/O and achieve the multiple I/O benefits through multiple processes.

Without this support, InterBase cannot reap the benefits of hardware optimizations provided by intelligent storage devices and drivers. A couple of optimizations that come to mind:

  • Disk controllers which reorder I/O requests to minimize the collective seek time of a batch of I/O requests.
  • Overlapped seeks when a database file is spread across multiple disks in a RAID configuration.

Requirements And Constraints

This feature is not available on Windows 95/98; it is an exclusive Windows NT capability. Windows 95/98 will continue to use the existing I/O model.

Migration Issues

N/A. This NT I/O model is a core capability that was designed into Windows NT from its inception and made visible as an application API since the intial Win32 API.

Reference Documents

Please see the Win32 function references for CreateFile, ReadFile, WriteFile, and GetOverlappedResult.