On 5/6/25 11:55 AM, Andres Freund wrote:
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.
I took this word-for-word.
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.
I believe it came from Melanie/Thomas (or both) when I was asking around how to provide a general claim. I feel that something directional for the beta is "good enough", and we can fine tune the statement for the GA announcement.
### 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?
Hm, I actually think it'd be good to mention that in the beta in case people need to plan for that. I added a small line to that.
Jonathan
OpenPGP_signature.asc
Description: OpenPGP digital signature