public inbox for [email protected]
help / color / mirror / Atom feedFrom: Justin Pryzby <[email protected]>
To: Tom Lane <[email protected]>
Cc: Robert Haas <[email protected]>
Cc: Devrim Gündüz <[email protected]>
Cc: [email protected]
Cc: Michael Paquier <[email protected]>
Subject: Re: head fails to build on SLES 12 (wal_compression=zstd)
Date: Thu, 31 Mar 2022 17:42:30 -0500
Message-ID: <[email protected]> (raw)
In-Reply-To: <[email protected]>
References: <[email protected]>
<[email protected]>
<[email protected]>
<[email protected]>
<[email protected]>
On Thu, Mar 31, 2022 at 11:44:40AM -0400, Tom Lane wrote:
> Justin Pryzby <[email protected]> writes:
> > Possible responses look like:
> > - Use 0 which also means "default" (need to verify that works across versions);
> > - Or #ifndef ZSTD_CLEVEL_DEFAULT #define ZSTD_CLEVEL_DEFAULT 3;
> > - Add a test for a minimum zstd version v1.3.7. This may be a good idea for
> > v15 in any case, since we're using a few different APIs (at least
> > ZSTD_compress and ZSTD_compressStream2 and execve(zstd)).
>
> In view of 51c0d186d ("Allow parallel zstd compression"), I agree
> that some clarity about the minimum supported version of zstd
> seems essential. I don't want to be dealing with threading bugs
> in ancient zstd versions. However, why do you suggest 1.3.7 in
> particular?
That's where I found that ZSTD_CLEVEL_DEFAULT was added, in their git.
I've just installed a .deb for 1.3.8, and discovered that the APIs used by
basebackup were considered experimental/nonpublic/static-lib-only until 1.4.0
https://github.com/facebook/zstd/releases/tag/v1.4.0
ZSTD_CCtx_setParameter ZSTD_c_compressionLevel ZSTD_c_nbWorkers ZSTD_CCtx_reset ZSTD_reset_session_only ZSTD_compressStream2 ZSTD_e_continue ZSTD_e_end
FYI: it looks like parallel, thread workers were also a nonpublic,
"experimental" API until v1.3.7. Actually, ZSTD_p_nbThreads was renamed to
ZSTD_p_nbWorkers and then (in 1.3.8) renamed to ZSTD_c_nbWorkers.
Versions less than 1.3.8 would have required compile-time conditionals for both
ZSTD_CLEVEL_DEFAULT and ZSTD_p_nbThreads/ZSTD_p_nbWorkers/ZSTD_c_nbWorkers (but
that is moot).
Negative compression levels were added in 1.3.4 (but I think the range of their
levels was originally -1..-7 and now expanded). And long-distance matching
added in 1.3.2.
cirrus has installed:
linux (debian bullseye) 1.4.8
macos has 1.5.0
freebsd has 1.5.0
debian buster (oldstable) has v1.3.8, which is too old.
ubuntu focal LTS has 1.4.4 (bionic LTS has 1.3.3 which seems too old)
rhel7 has 1.5.2 in EPEL;
SLES 12.5 has zstd 1.3.3, so it won't be supported. But postgres should fail
gracefully during ./configure rather than during build.
Note that check-world fails if wal_compression is enabled due to two
outstanding issues, so it's not currently possible to set that in CI or
buildfarm...
https://www.postgresql.org/message-id/c86ce84f-dd38-9951-102f-13a931210f52%40dunslane.net
view thread (14+ messages) latest in thread
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: [email protected]
Cc: [email protected], [email protected], [email protected], [email protected], [email protected], [email protected]
Subject: Re: head fails to build on SLES 12 (wal_compression=zstd)
In-Reply-To: <[email protected]>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox