Re: AIO v2.0 - Mailing list pgsql-hackers

From Andres Freund
Subject Re: AIO v2.0
Date
Msg-id 6mxxbdptyd4bvcomvy2sa2ovcnrrjptzncfic4bhpdpeluxtpk@26mvoz5mwvmz
Whole thread Raw
In response to Re: AIO v2.0  (Heikki Linnakangas <hlinnaka@iki.fi>)
Responses Re: AIO v2.0
List 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



pgsql-hackers by date:

Previous
From: Maxim Orlov
Date:
Subject: Re: Add memory/disk usage for WindowAgg nodes in EXPLAIN
Next
From: Robert Haas
Date:
Subject: Re: scalability bottlenecks with (many) partitions (and more)