Re: MultiXact\SLRU buffers configuration
x4mmm@yandex-team.ru
From: Andrey Borodin <x4mmm@yandex-team.ru>
To: Thomas Munro <thomas.munro@gmail.com>
Cc: Gilles Darold <gilles@darold.net>,
Tomas Vondra <tomas.vondra@enterprisedb.com>,
Tomas Vondra <tomas.vondra@2ndquadrant.com>,
Alexander Korotkov <aekorotkov@gmail.com>,
Anastasia Lubennikova <a.lubennikova@postgrespro.ru>,
Daniel Gustafsson <daniel@yesql.se>,
Kyotaro Horiguchi <horikyota.ntt@gmail.com>,
pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2021-04-03T19:57:23Z
Lists: pgsql-hackers
> 1 апр. 2021 г., в 06:40, Thomas Munro <thomas.munro@gmail.com> написал(а): > > 2. Remove the cap of 128 buffers for xact_buffers as agreed. We > still need a cap though, to avoid a couple of kinds of overflow inside > slru.c, both when computing the default value and accepting a > user-provided number. I introduced SLRU_MAX_ALLOWED_BUFFERS to keep > it <= 1GB, and tested this on a 32 bit build with extreme block sizes. BTW we do not document maximum values right now. I was toying around with big values. For example if we set different big xact_buffers we can get something like FATAL: not enough shared memory for data structure "Notify" (72768 bytes requested) FATAL: not enough shared memory for data structure "Async Queue Control" (2492 bytes requested) FATAL: not enough shared memory for data structure "Checkpointer Data" (393280 bytes requested) But never anything about xact_buffers. I don't think it's important, though. > > Likewise, I removed the cap of 16 buffers for commit_ts_buffers, but > only if you have track_commit_timestamp enabled. Is there a reason to leave 16 pages if commit_ts is disabled? They might be useful for some artefacts of previously enabled commit_ts? > 4. Change the default for commit_ts_buffers back to shared_buffers / > 1024 (with a minimum of 4), because I think you might have changed it > by a copy and paste error -- or did you intend to make the default > higher? I changed default due to some experiments with https://www.postgresql.org/message-id/flat/20210115220744.GA24457%40alvherre.pgsql In fact most important part of that thread was removing the cap, which is done by the patchset now. Thanks! Best regards, Andrey Borodin.
Commits
-
Rework new SLRU test with injection points
- 94a3373ac5c3 18.0 landed
-
injection_point: Add injection_points.stats
- 2e35c67f9568 18.0 landed
-
injection_points: Add initialization of shmem state when loading module
- b2b023aa3706 18.0 landed
-
Add injection-point test for new multixact CV usage
- 768a9fd5535f 18.0 landed
-
Use conditional variable to wait for next MultiXact offset
- a0e0fb1ba56f 17.0 landed
-
Improve performance of subsystems on top of SLRU
- 53c2a97a9266 17.0 landed
-
Adjust VACUUM hastup LP_REDIRECT comments.
- 325bc54eed4e 16.0 cited
-
Test replay of regression tests, attempt II.
- f47ed79cc8a0 15.0 cited