> On 16 Jan 2026, at 21:17, Andrey Borodin <[email protected]> wrote:
> 
> That's a very good idea! We don't need to replace current behavior, we can 
> just complement it.
> I'll implement this idea!

Here's the implementation. Previously existing buffers are now combined
into single allocation, which is GUC-controlled (you can add more memory).

However, now this buffer is just enough to accommodate most of records...
So, maybe we do not need a GUC at all, because keeping it minimal (same
consumption as before the patch) is just enough.

Now the patch essentially have no extra memory footprint, but allows to
save 25% of WAL on index creation (in case of random data).

User can force FPI-only compression by increasing wal_compression_threshold
to 1GB.

The decision chain is now a bit complicated:
- assemble record without compression FPIs
- try whole record compression
- if compression enlarged record fallback to FPI compression
I think the case can be simplified to "Try only one compression approach that
is expected to work, if not - insert uncompressed".

What do you think?


Best regards, Andrey Borodin.

Attachment: v6-0001-Add-whole-record-WAL-compression-alongside-FPI-co.patch
Description: Binary data

Reply via email to