Thread: Lowering temp_buffers minimum
Hi, I am working on writing some tests for temporary tables. One of the tests is that we correctly handle running out of buffer pins. That's a bit more annoying than it needs to because the minimum for temp_buffers is 100. It seems rather odd that our minimum for temp_buffers is 100 while the minimum for shared_buffers, which is shared across connections!, is 16. Does anybody see a reason we shouldn't lower temp_buffers to match shared_buffers? Greetings, Andres Freund
Hi, On 2025-02-25 09:33:36 -0500, Andres Freund wrote: > I am working on writing some tests for temporary tables. One of the tests is > that we correctly handle running out of buffer pins. That's a bit more > annoying than it needs to because the minimum for temp_buffers is 100. > > It seems rather odd that our minimum for temp_buffers is 100 while the minimum > for shared_buffers, which is shared across connections!, is 16. > > Does anybody see a reason we shouldn't lower temp_buffers to match > shared_buffers? FWIW, here's a set of patches adding some testing for temp table corner cases that aren't currently hit, even in master. They work with temp_buffers = 100, but would require a smaller table if a lower minimum . And indeed the test would currently fail without the preceding commits I included, which are from https://www.postgresql.org/message-id/CA%2BhUKGK_%3D4CVmMHvsHjOVrK6t4F%3DLBpFzsrr3R%2BaJYN8kcTfWg%40mail.gmail.com Greetings, Andres Freund
Attachment
On Tue, Feb 25, 2025 at 9:33 AM Andres Freund <andres@anarazel.de> wrote: > Does anybody see a reason we shouldn't lower temp_buffers to match > shared_buffers? I do not see any such reason. I'd say go for it. -- Robert Haas EDB: http://www.enterprisedb.com
On Tue, 25 Feb 2025 at 15:33, Andres Freund <andres@anarazel.de> wrote:
> It seems rather odd that our minimum for temp_buffers is 100 while the minimum
> for shared_buffers, which is shared across connections!, is 16.
Hmm, given that, I'd say we also increase that minimum shared_buffers to a value >= 33 as the highest number of pages that can be addressed in one WAL record: We allow users to write WAL records with 33 pages without pinning the relevant buffers, but recovery doesn't do direct-to-disk options. So, I think it's better to increase this limit.
> Does anybody see a reason we shouldn't lower temp_buffers to match
> shared_buffers?
None that I can think of. As Robert said, go for it.
> It seems rather odd that our minimum for temp_buffers is 100 while the minimum
> for shared_buffers, which is shared across connections!, is 16.
Hmm, given that, I'd say we also increase that minimum shared_buffers to a value >= 33 as the highest number of pages that can be addressed in one WAL record: We allow users to write WAL records with 33 pages without pinning the relevant buffers, but recovery doesn't do direct-to-disk options. So, I think it's better to increase this limit.
> Does anybody see a reason we shouldn't lower temp_buffers to match
> shared_buffers?
None that I can think of. As Robert said, go for it.
Kind regards,
Matthias van de Meent
Neon (https://neon.tech)