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-08T07:24:55Z
Lists: pgsql-hackers
> 8 апр. 2021 г., в 03:30, Thomas Munro <thomas.munro@gmail.com> написал(а): > > Here's another approach that is a little less exciting than > "tournament RR" (or whatever that should be called; I couldn't find an > established name for it). This version is just our traditional linear > search, except that it stops at 128, and remembers where to start from > next time (like a sort of Fisher-Price GCLOCK hand). This feels more > committable to me. You can argue that all buffers above 128 are bonus > buffers that PostgreSQL 13 didn't have, so the fact that we can no > longer find the globally least recently used page when you set > xact_buffers > 128 doesn't seem too bad to me, as an incremental step > (but to be clear, of course we can do better than this with more work > in later releases). I agree that this version of eviction seems much more effective and less intrusive than RR. And it's still LRU, which is important for subsystem that is called SLRU. shared->search_slotno is initialized implicitly with memset(). But this seems like a common practice. Also comment above "max_search = Min(shared->num_slots, MAX_REPLACEMENT_SEARCH);" does not reflect changes. Besides this patch looks good to me. 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