From: | Tomas Vondra <tomas(at)vondra(dot)me> |
---|---|
To: | Peter Geoghegan <pg(at)bowt(dot)ie> |
Cc: | Aleksander Alekseev <aleksander(at)timescale(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: strange perf regression with data checksums |
Date: | 2025-05-19 20:17:16 |
Message-ID: | 51332170-5a27-4482-ba13-48d13e5582f2@vondra.me |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 5/19/25 20:44, Peter Geoghegan wrote:
> On Mon, May 19, 2025 at 2:19 PM Peter Geoghegan <pg(at)bowt(dot)ie> wrote:
>> On Mon, May 19, 2025 at 2:01 PM Tomas Vondra <tomas(at)vondra(dot)me> wrote:
>>> The regular index scan however still have this issue, although it's not
>>> as visible as for IOS.
>>
>> We can do somewhat better with plain index scans than my initial v1
>> prototype, without any major difficulties. There's more low-hanging
>> fruit.
>>
>> We could also move the call to BufferGetLSNAtomic (that currently
>> takes place inside _bt_readpage) over to _bt_drop_lock_and_maybe_pin.
>> That way we'd only need to call BufferGetLSNAtomic for those leaf
>> pages that will actually need to have some index tuples returned to
>> the scan (through the btgettuple interface).
>
> Attached is v2, which does things this way. What do you think?
>
> v2 also manages to avoid calling BufferGetLSNAtomic during all bitmap
> index scans. You didn't complain about any regressions in bitmap index
> scans, but I see no reason to take any chances (it's easy to just not
> call BufferGetLSNAtomic there).
>
Same effect as v1 for IOS, with regular index scans I see this:
64 clients: 0.7M tps
96 clients: 1.5M tps
So very similar improvement as for IOS.
regards
--
Tomas Vondra
From | Date | Subject | |
---|---|---|---|
Next Message | Heikki Linnakangas | 2025-05-19 20:22:25 | Thread-safe getopt() (was: report on not thread-safe functions) |
Previous Message | Peter Geoghegan | 2025-05-19 19:45:01 | Re: strange perf regression with data checksums |