Thread: Lowering temp_buffers minimum

Lowering temp_buffers minimum

From
Andres Freund
Date:
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



Re: Lowering temp_buffers minimum

From
Andres Freund
Date:
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

Re: Lowering temp_buffers minimum

From
Robert Haas
Date:
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



Re: Lowering temp_buffers minimum

From
Matthias van de Meent
Date:
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.

Kind regards,

Matthias van de Meent