Hi, On 2022-10-03 19:40:30 +0200, Matthias van de Meent wrote: > On Mon, 3 Oct 2022, 19:01 Andres Freund, <and...@anarazel.de> wrote: > > Random idea: xl_prev is large. Store a full xl_prev in the page header, but > > only store a 2 byte offset from the page header xl_prev within each record. > > With that small xl_prev we may not detect partial page writes in > recycled segments; or other issues in the underlying file system. With > small record sizes, the chance of returning incorrect data would be > significant for small records (it would be approximately the chance of > getting a record boundary on the underlying page boundary * chance of > getting the same MAXALIGN-adjusted size record before the persistence > boundary). That issue is part of the reason why my proposed change > upthread still contains the full xl_prev.
What exactly is the theory for this significant increase? I don't think xl_prev provides a meaningful protection against torn pages in the first place? Greetings, Andres Freund