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

Alexey Lesovsky <alexey.lesovsky@dataegret.com>

From: Alexey Lesovsky <alexey.lesovsky@dataegret.com>
To: Andres Freund <andres@anarazel.de>
Cc: pgsql-hackers@postgresql.org, Thomas Munro <thomas.munro@gmail.com>
Date: 2021-02-25T17:07:22Z
Lists: pgsql-hackers
Hi,

On 25.02.2021 02:03, Andres Freund wrote:
>> pg_stat_aio_backends.
>> This stat is based on COUNTERs, which is great, but the issue here is that
>> its lifespan is limited by the lifespan of the backend processes - once the
>> backend exits the stat will no longer be available - which could be
>> inappropriate in workloads with short-lived backends.
> There's a todo somewhere to roll over the per-connection stats into a
> global stats piece on disconnect. In addition I was thinking of adding a
> view that sums up the value of "already disconnected backends" and the
> currently connected ones.  Would that mostly address your concerns?

Yes, approach with separated stats for live and disconnected backends 
looks good and solves problem with "stats loss".

Or it can be done like a stats for shared objects in pg_stat_databases, 
where there is a special NULL database is used.

Regards, Alexey



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