Re: Asynchronous and "direct" IO support for PostgreSQL.

Andres Freund <andres@anarazel.de>

From: Andres Freund <andres@anarazel.de>
To: Melanie Plageman <melanieplageman@gmail.com>
Cc: Pg Hackers <pgsql-hackers@postgresql.org>, Thomas Munro <thomas.munro@gmail.com>
Date: 2021-07-30T19:52:31Z
Lists: pgsql-hackers
Hi,

On 2021-07-30 15:35:30 -0400, Melanie Plageman wrote:
> * I think that having TBMIterateResult inside of TBMIterator is not
>   well-defined C language behavior. In [1], it says
> 
>   "Structures with flexible array members (or unions who have a
>   recursive-possibly structure member with flexible array member) cannot
>   appear as array elements or as members of other structures."

> [1] https://en.cppreference.com/w/c/language/struct

I think it is ok as long as the struct with the flexible array member is
at the end of the struct it is embedded in. I think even by the letter
of the standard, but it's as always hard to parse...

Greetings,

Andres Freund



Commits

  1. aio: Add README.md explaining higher level design

  2. bufmgr: Use AIO in StartReadBuffers()

  3. bufmgr: Implement AIO read support

  4. aio: Implement support for reads in smgr/md/fd

  5. aio: Add io_method=io_uring

  6. aio: Add io_method=worker

  7. aio: Infrastructure for io_method=worker

  8. aio: Add core asynchronous I/O infrastructure