Comment by the8472

7 years ago

io_uring supports issuing async sync_file_range requests, which can be used to do most of the heavy lifting.

You will still need a final fsync to also get the metadata written, but that should faster at that point.

It should be noted that io_uring landed (in 5.1) a fair while after the whole Postgres back-and-forth started in 2018.

  • It should also be noted that even sync_file_range's manpage warns you against using it, which tells you how reliable that thing is.

    • It's not really that you shouldn't use it because it is dangerous in itself. It's just doesn't do what one would naively expect it to do. It's still useful as "flush dirty pages" hinter while preparing the real fsync.