Re: WAL compression setting after PostgreSQL LZ4 default change

From: Christoph Berg <myon(at)debian(dot)org>
To: Andrey Borodin <x4mmm(at)yandex-team(dot)ru>
Cc: Tomas Vondra <tomas(at)vondra(dot)me>, wenhui qiu <qiuwenhuifx(at)gmail(dot)com>, Laurenz Albe <laurenz(dot)albe(at)cybertec(dot)at>, Andres Freund <andres(at)anarazel(dot)de>, Jelte Fennema-Nio <postgres(at)jeltef(dot)nl>, Michael Paquier <michael(at)paquier(dot)xyz>, Japin Li <japinli(at)hotmail(dot)com>, Fujii Masao <masao(dot)fujii(at)gmail(dot)com>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>, John Naylor <johncnaylorls(at)gmail(dot)com>
Subject: Re: WAL compression setting after PostgreSQL LZ4 default change
Date: 2026-07-31 15:50:41
Message-ID: amzEUaGtr8JsMVtR@msg.df7cb.de
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Re: Andrey Borodin
> FWIW on 19beta2, one client: a seqscan setting hint bits on a freshly
> checkpointed 380MB table with wal_log_hints on, so ~47k full-page images
> and little else. Best of three: off 765ms, pglz 1402ms, lz4 444ms, zstd
> 797ms, writing 382/105/107/67 MB of WAL (fsync off, so the I/O saving is
> understated). lz4 is the only setting faster than no compression at all,
> while pglz costs nearly double for the size lz4 gives away for free. zstd
> compresses a third better but pays for it in CPU, partly by allocating a
> ZSTD_CCtx per FPI - see the nearby thread "Compression of bigger WAL
> records". +1 for "on" meaning lz4 where available.

v4 moves lz4 first.

(I did not include any reason in the commit message about choosing lz4
over zstd yet.)

One minor bit: The patch now has

#if defined(USE_LZ4)
#define DEFAULT_WAL_COMPRESSION·WAL_COMPRESSION_LZ4
#elif defined(USE_ZSTD)
#define DEFAULT_WAL_COMPRESSION·WAL_COMPRESSION_ZSTD

when the old one had
#ifdef USE_ZSTD
#elif defined(USE_LZ4)

I left it at "#if defined(USE_LZ4)" because that looks more
symmetrical.

Christoph

Attachment Content-Type Size
v4-0001-Change-wal_compression-on-to-the-first-of-lz4-zst.patch text/x-diff 5.5 KB

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Noah Misch 2026-07-31 15:55:50 Re: sequencesync worker race with REFRESH SEQUENCES
Previous Message Yugo Nagata 2026-07-31 15:36:58 Re: Fold NOT IN / <> ALL expressions containing NULL to FALSE