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