|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|
|Views:||Raw Message | Whole Thread | Download mbox | Resend email|
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 — https://www.EnterpriseDB.com/
|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|