On Wed, 25 Jan 2023 at 16:52, Robert Haas <robertmh...@gmail.com> wrote:

> On Wed, Jan 25, 2023 at 3:52 AM Maxim Orlov <orlo...@gmail.com> wrote:
>
> Well, that's something we - and ideally you, as the patch author -
> need to analyze and figure out. We can't just take a shot and hope for
> the best.
>

I thank you for your advices. I've dived deeper into the problem and I
think v2 patch is wrong.
Accessing threshold_timestamp and threshold_xid in
TransactionIdLimitedForOldSnapshots
without lock would lead to an improper xlimit calculation.

So, my choice would be (3b). My goal is to optimize access to the
threshold_timestamp to avoid
multiple spinlock acquisition on read. In the same time, simultaneous
access to these variable
(threshold_timestamp and threshold_xid) should be protected with spinlock.

I remove atomic for threshold_xid and add comments on mutex_threshold. PFA,
v3. I

-- 
Best regards,
Maxim Orlov.

Attachment: v3-0001-Use-atomic-old_snapshot_threshold.patch
Description: Binary data

Reply via email to