Re: LogwrtResult contended spinlock

From: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
To: Andres Freund <andres(at)anarazel(dot)de>
Cc: pgsql-hackers(at)lists(dot)postgresql(dot)org, Jaime Casanova <jaime(dot)casanova(at)2ndquadrant(dot)com>
Subject: Re: LogwrtResult contended spinlock
Date: 2021-11-18 22:15:58
Message-ID: 202111182215.hyrzuy7hbh3x@alvherre.pgsql
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

Here's a further attempt at this. Sorry it took so long.
In this version, I replaced the coupled-in-a-struct representation of
Write&Flush with two separate global variables. The reason to do this
is to cater to Andres' idea to keep them up-to-date separately. Of
course, I could kept them together, but it seems more sensible this way.

Andres also suggested to not use monotonic-advance in XLogWrite, because
these update are always done with WALWriteLock held in exclusive mode.
However, that doesn't work (and tests fail pretty quickly) because
XLogWrite seems to be called possibly out of order, so you still have to
check if the current value is newer than what you have to write anyway;
using stock atomic write doesn't work.

So this is v4.

Álvaro Herrera 39°49'30"S 73°17'W —

Attachment Content-Type Size
logwrt-4.patch text/x-diff 20.6 KB

In response to


Browse pgsql-hackers by date

  From Date Subject
Next Message Melanie Plageman 2021-11-18 22:23:54 Re: Showing I/O timings spent reading/writing temp buffers in EXPLAIN
Previous Message Tom Lane 2021-11-18 21:57:52 Re: Mixing CC and a different CLANG seems like a bad idea