Re: SimpleLruTruncate() mutual exclusion - Mailing list pgsql-hackers

From Thomas Munro
Subject Re: SimpleLruTruncate() mutual exclusion
Date
Msg-id CA+hUKGKoZAZ2CpvYa-ZQ8-Ee4BW9NGcwQv-KRZViDsMGObWtew@mail.gmail.com
Whole thread Raw
In response to Re: SimpleLruTruncate() mutual exclusion  (Noah Misch <noah@leadboat.com>)
Responses Re: SimpleLruTruncate() mutual exclusion  (Noah Misch <noah@leadboat.com>)
List pgsql-hackers
On Thu, Aug 1, 2019 at 6:51 PM Noah Misch <noah@leadboat.com> wrote:
> vac_truncate_clog() instance 1 starts, considers segment ABCD eligible to unlink
> vac_truncate_clog() instance 2 starts, considers segment ABCD eligible to unlink
> vac_truncate_clog() instance 1 unlinks segment ABCD
> vac_truncate_clog() instance 1 calls SetTransactionIdLimit()
> vac_truncate_clog() instance 1 finishes
> some backend calls SimpleLruZeroPage(), creating segment ABCD
> vac_truncate_clog() instance 2 unlinks segment ABCD
>
> Serializing vac_truncate_clog() fixes that.

I've wondered before (in a -bugs thread[1] about unexplained pg_serial
wraparound warnings) if we could map 64 bit xids to wide SLRU file
names that never wrap around and make this class of problem go away.
Unfortunately multixacts would need 64 bit support too...

[1]
https://www.postgresql.org/message-id/flat/CAEBTBzuS-01t12GGVD6qCezce8EFD8aZ1V%2Bo_3BZ%3DbuVLQBtRg%40mail.gmail.com



pgsql-hackers by date:

Previous
From: Thomas Munro
Date:
Subject: Re: fe-utils - share query cancellation code
Next
From: Amit Kapila
Date:
Subject: Re: [HACKERS] Block level parallel vacuum