| From: | Peter Geoghegan <pg(at)bowt(dot)ie> |
|---|---|
| To: | Andres Freund <andres(at)anarazel(dot)de> |
| Cc: | Tomas Vondra <tomas(at)vondra(dot)me>, Thomas Munro <thomas(dot)munro(at)gmail(dot)com>, Nazir Bilal Yavuz <byavuz81(at)gmail(dot)com>, Robert Haas <robertmhaas(at)gmail(dot)com>, Melanie Plageman <melanieplageman(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, Georgios <gkokolatos(at)protonmail(dot)com>, Konstantin Knizhnik <knizhnik(at)garret(dot)ru>, Dilip Kumar <dilipbalaut(at)gmail(dot)com> |
| Subject: | Re: index prefetching |
| Date: | 2025-11-24 00:03:44 |
| Message-ID: | CAH2-Wz=_QYsGVc7W9QasrsGwTn4aewC_jMMHLXph=U3n2ZpN6w@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
On Fri, Nov 21, 2025 at 6:31 PM Andres Freund <andres(at)anarazel(dot)de> wrote:
> On 2025-11-21 18:14:56 -0500, Peter Geoghegan wrote:
> > On Fri, Nov 21, 2025 at 5:38 PM Andres Freund <andres(at)anarazel(dot)de> wrote:
> > > Another benfit is that it helps even more when there multiple queries running
> > > concurrently - the high rate of lock/unlock on the buffer rather badly hurts
> > > scalability.
> >
> > I haven't noticed that effect myself. In fact, it seemed to be the
> > other way around; it looked like it helped most with very low client
> > count workloads.
>
> It's possible that that effect is more visible on larger machines - I did test
> that on a 2x 24cores/48 threads machine. I do see a smaller effect on a
> 2x10c/20t machine.
Update: I find that when I build Postgres with -march=native, I see
performance characteristics that are much more in line with what you
saw when you ran your own experiments (experiments with minimizing the
number of heap buffer locks acquired during index scans). At 1 client
count, there's now only about a 10% increase in throughput for a
pgbench variant that uses the type of range queries that you'd expect
to benefit the most from this work (that was more like 18%-20% without
-march=native). Whereas with 32 clients, it's an ~18% improvement in
throughput (where before it was only around 15% - 16%).
Are you in the habit of using -march=native? I'm not. I assume that
most Postgres users aren't using packages that were built with the
flags that -march=native implies, which is why I largely go with
defaults for my release/benchmarking builds (the only exception is my
use of -fno-omit-frame-pointer).
In case it matters, my workstation uses a Ryzen 9 5950X CPU (which is Zen 3).
--
Peter Geoghegan
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Michael Paquier | 2025-11-24 00:10:29 | Re: [Proposal] Adding callback support for custom statistics kinds |
| Previous Message | Thomas Munro | 2025-11-23 23:44:52 | Re: Cygwin support |