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

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature

Reply via email to