Re: AIO v2.0

From: Andres Freund <andres(at)anarazel(dot)de>
To: Heikki Linnakangas <hlinnaka(at)iki(dot)fi>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: AIO v2.0
Date: 2024-09-03 14:29:07
Message-ID: 6mxxbdptyd4bvcomvy2sa2ovcnrrjptzncfic4bhpdpeluxtpk@26mvoz5mwvmz
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,

On 2024-09-02 13:03:07 +0300, Heikki Linnakangas wrote:
> On 01/09/2024 09:27, Andres Freund wrote:
> > In the next few days I'll add a bunch more documentation and comments as well
> > as some better perf numbers (assuming my workstation survived...).
>
> Yeah, a high-level README would be nice. Without that, it's hard to follow
> what "handed out" and "defined" above means for example.

Yea - I had actually written a bunch of that before, but then redesigns just
obsoleted most of it :(

FWIW, "handed out" is an IO handle acquired by code, which doesn't yet have an
operation associated with it. Once "defined" it actually could be - but isn't
yet - executed.

> A few quick comments the patches:
>
> v2.0-0001-bufmgr-Return-early-in-ScheduleBufferTagForWrit.patch
>
> +1, this seems ready to be committed right away.

Cool

> v2.0-0002-Allow-lwlocks-to-be-unowned.patch
>
> With LOCK_DEBUG, LWLock->owner will point to the backend that acquired the
> lock, but it doesn't own it anymore. That's reasonable, but maybe add a
> boolean to the LWLock to mark whether the lock is currently owned or not.

Hm, not sure it's worth doing that...

> The LWLockReleaseOwnership() name is a bit confusing together with
> LWLockReleaseUnowned() and LWLockrelease(). From the names, you might think
> that they all release the lock, but LWLockReleaseOwnership() just
> disassociates it from the current process. Rename it to LWLockDisown()
> perhaps.

Yea, that makes sense.

> v2.0-0008-aio-Skeleton-IO-worker-infrastructure.patch
>
> My refactoring around postmaster.c child process handling will conflict with
> this [1]. Not in any fundamental way, but can I ask you to review those
> patch, please? After those patches, AIO workers should also have PMChild
> slots (formerly known as Backend structs).

I'll try to do that soonish!

Greetings,

Andres Freund

In response to

  • Re: AIO v2.0 at 2024-09-02 10:03:07 from Heikki Linnakangas

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Jim Jones 2024-09-03 14:43:51 Re: [PATCH] Add CANONICAL option to xmlserialize
Previous Message Maxim Orlov 2024-09-03 13:53:47 Re: Add memory/disk usage for WindowAgg nodes in EXPLAIN