public inbox for [email protected]help / color / mirror / Atom feed
[PATCH 08/10] Default to zstd.. 2+ messages / 2 participants [nested] [flat]
* [PATCH 08/10] Default to zstd.. @ 2021-03-12 21:35 Justin Pryzby <[email protected]> 0 siblings, 0 replies; 2+ messages in thread From: Justin Pryzby @ 2021-03-12 21:35 UTC (permalink / raw) for CI, not for merge --- configure | 6 ++++-- configure.ac | 2 +- src/backend/access/transam/xlog.c | 2 +- src/backend/utils/misc/guc.c | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/configure b/configure index 81e23418b2..253f028fc4 100755 --- a/configure +++ b/configure @@ -1582,7 +1582,7 @@ Optional Packages: use system time zone data in DIR --without-zlib do not use Zlib --without-lz4 build without LZ4 support - --with-zstd build with Zstd compression library + --without-zstd build without Zstd compression library --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-ssl=LIB use LIB for SSL/TLS support (openssl) --with-openssl obsolete spelling of --with-ssl=openssl @@ -8740,7 +8740,9 @@ $as_echo "#define USE_ZSTD 1" >>confdefs.h esac else - with_zstd=no + with_zstd=yes + +$as_echo "#define USE_ZSTD 1" >>confdefs.h fi diff --git a/configure.ac b/configure.ac index d6f6349067..8d72710fa7 100644 --- a/configure.ac +++ b/configure.ac @@ -1005,7 +1005,7 @@ fi # ZSTD # AC_MSG_CHECKING([whether to build with zstd support]) -PGAC_ARG_BOOL(with, zstd, no, [build with Zstd compression library], +PGAC_ARG_BOOL(with, zstd, yes, [build without Zstd compression library], [AC_DEFINE([USE_ZSTD], 1, [Define to 1 to build with zstd support. (--with-zstd)])]) AC_MSG_RESULT([$with_zstd]) AC_SUBST(with_zstd) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index 307eee6626..92023de9f5 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -99,7 +99,7 @@ bool EnableHotStandby = false; bool fullPageWrites = true; bool wal_log_hints = false; bool wal_compression = false; -int wal_compression_method = WAL_COMPRESSION_LZ4; +int wal_compression_method = WAL_COMPRESSION_ZSTD; char *wal_consistency_checking_string = NULL; bool *wal_consistency_checking = NULL; bool wal_init_zero = true; diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c index 52f9cd0242..8031e027aa 100644 --- a/src/backend/utils/misc/guc.c +++ b/src/backend/utils/misc/guc.c @@ -4728,7 +4728,7 @@ static struct config_enum ConfigureNamesEnum[] = NULL }, &wal_compression_method, - WAL_COMPRESSION_LZ4, wal_compression_options, + WAL_COMPRESSION_ZSTD, wal_compression_options, NULL, NULL, NULL }, -- 2.17.0 --jozmn01XJZjDjM3N Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="0009-Add-zstd-compression-levels.patch" ^ permalink raw reply [nested|flat] 2+ messages in thread
* connection establishment versus parallel workers @ 2024-12-11 20:42 Nathan Bossart <[email protected]> 0 siblings, 0 replies; 2+ messages in thread From: Nathan Bossart @ 2024-12-11 20:42 UTC (permalink / raw) To: pgsql-hackers; +Cc: [email protected] My team recently received a report about connection establishment times increasing substantially from v16 onwards. Upon further investigation, this seems to have something to do with commit 7389aad (which moved a lot of postmaster code out of signal handlers) in conjunction with workloads that generate many parallel workers. I've attached a set of reproduction steps. The issue seems to be worst on larger machines (e.g., r8g.48xlarge, r5.24xlarge) when max_parallel_workers/max_worker_process is set very high (>= 48). Our theory is that commit 7389aad (and follow-ups like commit 239b175) made parallel worker processing much more responsive to the point of contending with incoming connections, and that before this change, the kernel balanced the execution of the signal handlers and ServerLoop() to prevent this. I don't have a concrete proposal yet, but I thought it was still worth starting a discussion. TBH I'm not sure we really need to do anything since this arguably comes down to a trade-off between connection and worker responsiveness. -- nathan setup: psql -h "$host" -U "$user" postgres <<EOF create database mydb; \c mydb create table mytable (a int); insert into mytable (a) select * from generate_series(1, 500000); EOF -- start many parallel workers (may need to change -c and -j): pgbench -h "$host" -U "$user" mydb -c 30 -j 2 -T 300 -f <(echo ' begin; select count(*) from mytable; end;') -- while pgbench is running, check connection establishment times: while :; do time pg_isready -h "$host" -U "$user" -d postgres sleep 1 done Attachments: [text/plain] repro.txt (504B, ../../Z1n5UpAiGDmFcMmd@nathan/2-repro.txt) download | inline: setup: psql -h "$host" -U "$user" postgres <<EOF create database mydb; \c mydb create table mytable (a int); insert into mytable (a) select * from generate_series(1, 500000); EOF -- start many parallel workers (may need to change -c and -j): pgbench -h "$host" -U "$user" mydb -c 30 -j 2 -T 300 -f <(echo ' begin; select count(*) from mytable; end;') -- while pgbench is running, check connection establishment times: while :; do time pg_isready -h "$host" -U "$user" -d postgres sleep 1 done ^ permalink raw reply [nested|flat] 2+ messages in thread
end of thread, other threads:[~2024-12-11 20:42 UTC | newest] Thread overview: 2+ messages (download: mbox mbox.gz follow: Atom feed) -- links below jump to the message on this page -- 2021-03-12 21:35 [PATCH 08/10] Default to zstd.. Justin Pryzby <[email protected]> 2024-12-11 20:42 connection establishment versus parallel workers Nathan Bossart <[email protected]>
This inbox is served by agora; see mirroring instructions for how to clone and mirror all data and code used for this inbox