Re: LogwrtResult contended spinlock
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Alvaro Herrera <alvherre@alvh.no-ip.org>
Cc: Andres Freund <andres@anarazel.de>, pgsql-hackers@lists.postgresql.org,
Jaime Casanova <jcasanov@systemguards.com.ec>
Date: 2022-03-22T13:59:16Z
Lists: pgsql-hackers
Alvaro Herrera <alvherre@alvh.no-ip.org> writes: > On 2022-Mar-21, Andres Freund wrote: >> Are you aiming this for v15? Otherwise I'd like to move the entry to the next >> CF. Marked as waiting-on-author. > I'd like to get 0001 pushed to pg15, yes. I'll let 0002 sit here for > discussion, but I haven't seen any evidence that we need it. If others > vouch for it, I can push that one too, but I'd rather have it be a > separate thing. I looked briefly at 0001, and I've got to say that I disagree with your decision to rearrange the representation of the local LogwrtResult copy. It clutters the patch tremendously and makes it hard to understand what the actual functional change is. Moreover, I'm not entirely convinced that it's a notational improvement in the first place. Perhaps it'd help if you split 0001 into two steps, one to do the mechanical change of the representation and then a second patch that converts the shared variable to atomics. Since you've moved around the places that read the shared variable, that part is subtler than one could wish and really needs to be studied on its own. regards, tom lane
Commits
-
Remove bogus assertion in pg_atomic_monotonic_advance_u64
- 768f0c3e21b3 18.0 landed
- 3a9d0d774d90 17.0 landed
-
Add XLogCtl->logInsertResult
- f3ff7bf83bce 17.0 cited
-
Operate XLogCtl->log{Write,Flush}Result with atomics
- ee1cbe806dad 17.0 landed
-
Split XLogCtl->LogwrtResult into separate struct members
- c9920a9068ea 17.0 landed
-
Introduce atomic read/write functions with full barrier semantics.
- bd5132db558b 17.0 cited
-
Reduce the number of GetFlushRecPtr() calls done by walsenders.
- e369f3708636 13.0 cited
-
Remove most volatile qualifiers from xlog.c
- 6ba4ecbf477e 9.5.0 cited