Hi, On 2025-05-05 15:07:01 -0400, Jonathan S. Katz wrote: > ### Performance > > PostgreSQL 18 introduces an asynchronous I/O (AIO) subsystem using > `io_uring` on Linux, which, when combined with direct I/O (DIO), lets > PostgreSQL directly interface with storage interfaces. This new subsystem > gives PostgreSQL the opportunity to maximize its usage of hardware transfer > capacity, and this initial release supporting file system reads such as > sequential scans, bitmap heap scans, and vacuums, with tests showing up to a > 2-3x performance improvements.
This isn't quite right: - AIO is usable on all platforms, it *optionally* can use io_uring on linux - the default is to use AIO using worker processes - One can see substantial perf benefits *without* using direct IO - in fact, DIO remains a "developer oriented" option, because our use of AIO is too limited for it to be generally usable I think for now I would probably just not mention DIO. Hopefully we can make it more widely usable in 19. How about something like: PostgreSQL 18 introduces an asynchronous I/O (AIO) subsystem. This new subsystem allows to increase I/O throughput and to hide I/O latency. On Linux `io_uring` can be used for AIO, a worker based implementation is available on all platforms. This initial release supporting file system reads such as sequential scans, bitmap heap scans, and vacuums, with tests showing up to a 2-3x performance improvements. Where's that 2-3x number from, btw? Depending on how narrow a case one is looking at, it's possible to see bigger wins... But I'm not sure it's worth looking too narrowly. > ### Other Highlights > > Starting with PostgreSQL 18, data checksums, which are used to validate the > integrity of stored data, are now enabled by default on new PostgreSQL > clusters. You can choose to disable this behavior using the `initdb > --no-data-checksums` command. Should we point out that this might require adjustments for upgrade scripts? Probably not in the release announcement? Greetings, Andres Freund