| From: | Dhruv Aron <dhruv(dot)aron(at)gmail(dot)com> |
|---|---|
| To: | Alexandre Felipe <o(dot)alexandre(dot)felipe(at)gmail(dot)com> |
| Cc: | pgsql-hackers(at)postgresql(dot)org |
| Subject: | Re: Restructured Shared Buffer Hash Table |
| Date: | 2026-10-12 20:01:50 |
| Message-ID: | CAAStW3KitUuDbLB17N53aGj-X89unTRpV1BYYqjSc-UV+Xz-5w@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
On Mon, Oct 12, 2026 at 1:40 PM Alexandre Felipe <
o(dot)alexandre(dot)felipe(at)gmail(dot)com> wrote:
> 1. mod vs bitwise and
> Instead of computing [hashcode % num_buckets] you could save
> bucket_mask = num_bucket - 1, and do hashcode & bucket_mask.
>
> 2. the 1.5 factor
> On my first review I pointed out that in one specific test for
> shared_buffers
> as a power of two the number of buckets in your patch ended up being half
> as many as the previous version (maybe that is the correct way to go).
> Or maybe you want at least to rewrite that line using integer arithmetic.
>
Regarding 1: Yes, the bitwise-AND should work and would most likely be more
performant than using modulo.
Regarding 2: Since the patched table does not allow inserting a new entry
before deleting the stale entry for the same slot, there was no need to
additionally allocate NUM_BUFFER_PARTITIONS buckets (the reason why the
number of buckets for the master code was rounded up to 0x8000 instead of
0x4000 for 128MB SB). Could you elaborate more on what you mean by
'[rewriting] that line using integer arithmetic?'
> 4. scalability
> In your 16 GB test the gains are minimal. What changes at that scale?
> That suggests that maybe the gain at 4 GB was due to a high cache hit
> (not a bad thing, but important to have it clear).
>
As you point out, the primary factor should be that larger sizes result in
higher cache hit rates, which boosts the mainstream buffer table's
performance closer to that of the patched code.
Best,
Dhruv
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Melanie Plageman | 2026-10-12 20:06:51 | Re: WAL_LOG CREATE DATABASE strategy broken for non-standard page layouts |
| Previous Message | Alexander Lakhin | 2026-10-12 20:00:01 | Test publication.sql racing with subscription.sql might fail due to cache lookup error |