Обсуждение: Xlogprefetcher: Use atomic add for increment counter
Hi.
Use pg_atomic_fetch_add_u64 to replace pg_atomic_read_u64 and
pg_atomic_write_u64 calls.
This simplifies the logic and this increases the likelihood that the operation will be successful.
patch attached.
best regards,
Ranier Vilela
Вложения
Hi, On 2025-11-07 11:28:06 -0300, Ranier Vilela wrote: > Use pg_atomic_fetch_add_u64 to replace pg_atomic_read_u64 and > pg_atomic_write_u64 calls. > > This simplifies the logic and this increases the likelihood that the > operation will be successful. How does it do so? As the assertions indicate, this can only be run from a single process. Greetings, Andres Freund
Em sex., 7 de nov. de 2025 às 11:41, Andres Freund <andres@anarazel.de> escreveu:
Hi,
On 2025-11-07 11:28:06 -0300, Ranier Vilela wrote:
> Use pg_atomic_fetch_add_u64 to replace pg_atomic_read_u64 and
> pg_atomic_write_u64 calls.
>
> This simplifies the logic and this increases the likelihood that the
> operation will be successful.
How does it do so? As the assertions indicate, this can only be run from a
single process.
Can I rephrase that?
That simplifies the logic a bit.
That simplifies the logic a bit.
best regards,
Ranier Vilela
On 2025-11-07 11:52:37 -0300, Ranier Vilela wrote: > Em sex., 7 de nov. de 2025 às 11:41, Andres Freund <andres@anarazel.de> > escreveu: > > On 2025-11-07 11:28:06 -0300, Ranier Vilela wrote: > > > Use pg_atomic_fetch_add_u64 to replace pg_atomic_read_u64 and > > > pg_atomic_write_u64 calls. > > > > > > This simplifies the logic and this increases the likelihood that the > > > operation will be successful. > > > > How does it do so? As the assertions indicate, this can only be run from a > > single process. > > > Can I rephrase that? > > That simplifies the logic a bit. Maybe simpler, but also vastly slower than before. An atomic increment is maybe two orders of magnitude more expensive than an unlocked read & write.
Em sex., 7 de nov. de 2025 às 11:59, Andres Freund <andres@anarazel.de> escreveu:
On 2025-11-07 11:52:37 -0300, Ranier Vilela wrote:
> Em sex., 7 de nov. de 2025 às 11:41, Andres Freund <andres@anarazel.de>
> escreveu:
> > On 2025-11-07 11:28:06 -0300, Ranier Vilela wrote:
> > > Use pg_atomic_fetch_add_u64 to replace pg_atomic_read_u64 and
> > > pg_atomic_write_u64 calls.
> > >
> > > This simplifies the logic and this increases the likelihood that the
> > > operation will be successful.
> >
> > How does it do so? As the assertions indicate, this can only be run from a
> > single process.
> >
> Can I rephrase that?
>
> That simplifies the logic a bit.
Maybe simpler, but also vastly slower than before. An atomic increment is
maybe two orders of magnitude more expensive than an unlocked read & write.
Seriously, I didn't know.
It's best to withdraw the patch then.
Thanks for clarifying this.
best regards,
Ranier Vilela