On 9/1/21, 10:06 AM, "Andres Freund" <and...@anarazel.de> wrote: > On 2021-09-01 15:01:43 +0900, Fujii Masao wrote: >> Thanks for clarifying that! Unless I misunderstand that, when recovery ends >> at a partially-flushed segment-spanning record, it sets >> XLP_FIRST_IS_ABORTED_PARTIAL in the next segment before starting writing >> new WAL data there. Therefore XLP_FIRST_IS_CONTRECORD or >> XLP_FIRST_IS_ABORTED_PARTIAL must be set in the next segment following >> a partially-flushed segment-spanning record. If none of them is set, >> the validation code in recovery should report an error. > > Right. With the small addition that I think we shouldn't just do this for > segment spanning records, but for all records spanning pages.
This approach seems promising. I like that it avoids adding extra work in the hot path for writing WAL. I'm assuming it won't be back- patchable, though. Nathan