From: | Nathan Bossart <nathandbossart(at)gmail(dot)com> |
---|---|
To: | Andres Freund <andres(at)anarazel(dot)de> |
Cc: | pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: locked reads for atomics |
Date: | 2023-11-27 21:00:30 |
Message-ID: | 20231127210030.GA140335@nathanxps13 |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Here's a v2 of the patch set in which I've attempted to address all
feedback. I've also added a pg_write_membarrier_u* pair of functions that
provide an easy way to write to an atomic variable with full barrier
semantics. In the generic implementation, these are just aliases for an
atomic exchange.
0002 demonstrates how these functions might be used to eliminate the
arch_lck spinlock, which is only ever used for one boolean variable. My
hope is that the membarrier functions make eliminating spinlocks for
non-performance-sensitive code easy to reason about.
(We might be able to use a pg_atomic_flag instead for 0002, but that code
seems intended for a slightly different use-case and has more complicated
barrier semantics.)
--
Nathan Bossart
Amazon Web Services: https://aws.amazon.com
Attachment | Content-Type | Size |
---|---|---|
v2-0001-add-membarrier-operations.patch | text/x-diff | 5.0 KB |
v2-0002-replace-force_dir_scan-with-atomics.patch | text/x-diff | 2.2 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Robert Haas | 2023-11-27 21:03:50 | Re: POC, WIP: OR-clause support for indexes |
Previous Message | Tom Lane | 2023-11-27 20:59:29 | Re: Partial aggregates pushdown |