Re: PostgreSQL 18 Beta 1 release announcement draft - Mailing list pgsql-hackers

From Andres Freund
Subject Re: PostgreSQL 18 Beta 1 release announcement draft
Date
Msg-id rkwewovsp664cvyz4ijzphqt2fgmekp5mvhyyb4frcyp7xmfsy@hoixj3fixgig
Whole thread Raw
In response to PostgreSQL 18 Beta 1 release announcement draft  ("Jonathan S. Katz" <jkatz@postgresql.org>)
Responses Re: PostgreSQL 18 Beta 1 release announcement draft
Re: PostgreSQL 18 Beta 1 release announcement draft
List pgsql-hackers
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
bydefault 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



pgsql-hackers by date:

Previous
From: Junwang Zhao
Date:
Subject: Re: queryId constant squashing does not support prepared statements
Next
From: Matthias van de Meent
Date:
Subject: Re: Small fixes needed by high-availability tools