Re: Detecting File Damage & Inconsistencies - Mailing list pgsql-hackers

From Craig Ringer
Subject Re: Detecting File Damage & Inconsistencies
Date
Msg-id CAGRY4nz9T-mJvEpJT=yTZAtF2YmKfr7trhWc-7PTcx_KOg=gAQ@mail.gmail.com
Whole thread Raw
In response to Detecting File Damage & Inconsistencies  (Simon Riggs <simon@2ndquadrant.com>)
Responses Re: Detecting File Damage & Inconsistencies  (Simon Riggs <simon.riggs@enterprisedb.com>)
List pgsql-hackers
On Mon, 15 Mar 2021 at 21:01, David Steele <david@pgmasters.net> wrote:
On 11/18/20 5:23 AM, Simon Riggs wrote:
> On Wed, 18 Nov 2020 at 06:42, Craig Ringer
> <craig.ringer@enterprisedb.com> wrote:
>>
>> On Fri, Nov 13, 2020 at 7:24 PM Simon Riggs <simon@2ndquadrant.com> wrote:
>>>
>>>
>>> What I'm proposing is an option to add 16 bytes onto each COMMIT
>>> record
>>
>>
>> Would it make sense to write this at the time we write a topxid assignment to WAL instead?
>>
>> Otherwise it won't be accessible to streaming-mode logical decoding.
>
> Do you mean extend the xl_xact_assignment record? My understanding is
> that is not sent in all cases, so not sure what you mean by "instead".

Craig, can you clarify?

Right. Or write a separate WAL record when the feature is enabled. But it's probably sufficient to write it as an optional chunk on xl_xact_assignment records. We often defer writing them so we can optimise away xacts that never actually wrote anything, but IIRC we still write one before we write any WAL that references the xid. That'd be fine, since we don't need the info any sooner than that during decoding. I'd have to double check that we write it in all cases and won't get to that too soon, but I'm pretty sure we do...

pgsql-hackers by date:

Previous
From: Fujii Masao
Date:
Subject: Re: fdatasync performance problem with large number of DB files
Next
From: Peter Smith
Date:
Subject: Re: [HACKERS] logical decoding of two-phase transactions