Re: Asynchronous and "direct" IO support for PostgreSQL.
Thomas Munro <thomas.munro@gmail.com>
From: Thomas Munro <thomas.munro@gmail.com>
To: Andres Freund <andres@anarazel.de>
Cc: Melanie Plageman <melanieplageman@gmail.com>,
Pg Hackers <pgsql-hackers@postgresql.org>
Date: 2021-07-31T00:42:47Z
Lists: pgsql-hackers
On Sat, Jul 31, 2021 at 7:52 AM Andres Freund <andres@anarazel.de> wrote: > 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... That's clearly the de facto situation (I think that was the case on the most popular compilers long before flexible array members were even standardised), but I think it might technically still be not allowed since this change has not yet been accepted AFAICS: http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2083.htm In any case, we already do it which is why wrasse (Sun Studio compiler) warns about indkey in pg_index.h. Curiously, indkey is not always the final member of the containing struct, depending on CATALOG_VARLEN...
Commits
-
aio: Add README.md explaining higher level design
- fdd146a8ef2b 18.0 landed
-
bufmgr: Use AIO in StartReadBuffers()
- 12ce89fd0708 18.0 landed
-
bufmgr: Implement AIO read support
- 047cba7fa0f8 18.0 landed
-
aio: Implement support for reads in smgr/md/fd
- 50cb7505b301 18.0 landed
-
aio: Add io_method=io_uring
- c325a7633fcb 18.0 landed
-
aio: Add io_method=worker
- 247ce06b883d 18.0 landed
-
aio: Infrastructure for io_method=worker
- 55b454d0e140 18.0 landed
-
aio: Add core asynchronous I/O infrastructure
- da7226993fd4 18.0 landed