On Thu, Jul 2, 2026 at 11:24 AM Jakub Wartak
<[email protected]> wrote:
>
> On Tue, Jun 30, 2026 at 2:51 PM Jakub Wartak
> <[email protected]> wrote:
> >
> > On Mon, Jun 29, 2026 at 9:42 AM Jakub Wartak
> > <[email protected]> wrote:
> > >
> > > On Thu, Jun 25, 2026 at 3:49 PM Tomas Vondra <[email protected]> wrote:
> > > >
> > > > >> I have some results from a new round of benchmarks, and it's a bit
> > > > >> disappointing. Or rather, there seem to be some issues that I can't
> > > > >> figure out, causing regressions.
> > > > > [..]
> > > > >> This chart is for median latency (in milliseconds):
> > > > >>
> > > > >>   clients       master     0003      0004    0003/on    0004/on
> > > > >>   -------------------------------------------------------------
> > > > >>         1        12767    12582     14509      12807      15307
> > > > >>         8        14383    14355     14149      14069      16165
> > > > >>        32        14756    15198     14836      14984      17128
> > > > >>        --------------------------------------------------------
> > > > >>         1                  103%      114%       100%       120%
> > > > >>         8                  101%       98%        98%       112%
> > > > >>        32                  102%      101%       102%       116%
> > > > >>
> >
> > [..lots of variables..]
> >
> > > > I'll try, but if you could try running some experiments on your own,
> > > > that might be helpful.
> > > [..]
> > > > > Hopefully next week I'll try to repro those numbers to see if I can
> > > > > help more.
> > > > >
> > > >
> > > > Thank you! That'd be great.
> > >
> > > Yeah, I'll try my best, we'll see how it goes. Right now I've just dropped
> > > that fscachenuma proggie to aid us in troubleshooting.
> > >
> > > -J.
> > >
> > > [0] - https://github.com/jakubwartakEDB/fscachenuma
> >
> > Hi Tomas,
> >
> > OK, so I've run couple of tests and modified run.sh and also tried to fix
> > some inefficiencies spotted while testing this. Note the attached
> > performance matrix is in TPS (so more is better). Raw results/CSV and
> > scripts are attached too.
> >
> > * run2 = 2 workloads, partitioned pgbench_accounts
> > * run3 = just pgbenchS w/o partitioning + warmup
> > * run4 = semi-like pgbenchS w/o partitioning but 100k rows + warmup
> >
> [..]
> >
> > Stil on the table:
> >
> > 1. maybe even better balancing is possible (?), but this one is seems 
> > enough?
> >    I'm out of other ideas, well other than the
> >    "shared-relation-use-by-foreign-node" idea described much earlier (but
> >    I won't be able to pull that off), so I'm not entering this rabbit hole
> >    any deeper.
>
> See below, seems like not needed (?)
>
> > 2. Digging into io_method=worker optimizations (answering question: are they
> >    necessary?) Maybe I'll throw in run5 quite soon, this is going to be
> >    crucial to answer.
>
> OK, I'm attaching are results from mine runs 5 and 6:
> - only seqconcurrscans was tested, well because for other workloads io_worker
>   method was not getting load for those workers (only seq scans were 
> offloaded)
> - checksums were disabled, because IMHO that would be unfair comparision
>   (AFAIR there are offloaded)
> - those optimizations for 0008 "optimized (numa=on, bal=on)" easily beat
>   "patched (numa=on, bal=on)" and seem to be crucial. We get like 1.2x-1.4x
>   across every io_method, but only with 0008.
> - even when then doing just those logical fully cached reads from fully VFS
>   cached case, io_urings shines (I've added raw TPS number to show this,
>   compare across tables e.g. io_uring vs sync  13.378/8.993=1.487x for
>   io_uring with NUMA, but for master's for io_uring:sync it was just 
> 8.79/7.389
>   = 1.189x without NUMA); seems like io_uring is more lightweight to show
>   more benefits of remote memory latencies
> - there's some more juice to get out of the balancer for 0-reuse workloads
>   (but IMHO it's pointless to squeeze more, it's hard already)
> - I was probably wrong when expecting that io_worker's worker processes/queues
>   should get NUMA affinity. They don't need to be apparently for me to see
>   benefits (maybe they could  be and it would even better, but meh).
>   So with ruling io_method impact (I speculated earlier that his could be it),
>   this means that you were either hitting lack of opimizations needed from
>   0008 or were impacted by lack of drop_caches before the runs
>
> > Maybe You could run those run*.sh with master vs inst-patchset/optimized?
> > (I'm not sure, maybe there's even different factor at play too...)
>
> This is seems to be crucial now, to double confirm the results / loaded-tested
> on your hw with 0008. (but that hardware really needs to have effective 
> latency
> difference between at least 2 NUMA nodes -- Intel's mlc is good for this);
> maybe also tweak those 125% inside 0008 to some other values, I've got 4 
> nodes,
> so 100/4=25%)
>
> > 3. Potentially mentioned earlier BAS strategies (forcing just use of local
> >    partitions for known-to-be-only-local-users: CTAS/VACCUM/etc), but I'm
> >    afarid that's not for me as I would certainly break/violate some
> >    invisible to me boundary.
>
> And this one is still potentially on the table as nice thing to have.

Hi Tomas,

I've took another look at this thread and got some new further progress:

TL;DR;
1. We seem to crash on CXL setups and need some auto-detection of system
   (code).
2. Verification of patchset + some further tweaks gives ~120% for
   seqconcurrscans on modern hardware.
3. Doubts why we are not getting more, how many partitions , HB176v4 and so
   on.
3a. 1 client results explanation theory
3b. Benchmarking $this optimized patchset against Greg's/Jim's batched to see
   how much potential juice we have left on of the table (=> not much)
4. Some self-relfections on my previous BAS strategy idea (== meh!)

---

0. Patch needs rebase. For below I've just used master as of Jul 2026

1. In order to verify if we even reach the lowest bar (not crash): Andres
   wrote:
   > Given the relative unavailability of CXL memory systems, I think just
   > not crashing is good enough for now[..]

   I've found nice/fast way to verify CXL without access to CXL hardware but
   w/o CXL latency simulation. With this CPU-less NUMA setup which boils down
   to commands that setup QEmu, we do crash:

   qemu-img create -f qcow2 debian.qemu 10G
   qemu-system-x86_64 -smp 4 -m 8G -enable-kvm \
    -object memory-backend-ram,id=ram0,size=4G \
    -object memory-backend-ram,id=ram1,size=4G \
    -numa node,nodeid=0,cpus=0-3,memdev=ram0 \
    -numa node,nodeid=1,memdev=ram1 \
    -numa dist,src=0,dst=1,val=30 \
    -hda debian.qemu

   In the above nodeid=1, has no cpus and that results in CXL-like thingy as
   per numactl --hardware/libnuma goes. Of course one needs to install using ISO
   on the emulator and try to apply the $patchset. So if I add hugepages
   just to node0 (via /sys/devices/system/node/) then we get failure to start
   with "Bus error" with failure coming from ShmemInitRequested()->
   BufferManagerShmemInit()->ConditionVariableInit(). Anyway, the code today
   just did blind mbind() to that CPU-less NUMA-node (e.g. node1) where we do
   not have hugepages , so it crashes with SIGBUS.

   After adding hugepages to node1 too (CPU-less one), of course it boots
   (similiar to sysctl's -w combining nr_hugepages setup which is divided into
   multiple nodes), but then it will start using memory from that simulated
   node1 CXL memory - which would be terrible for latency (degraded system?).

   So within the patchset in 0003 in BufferPartitionsCalcuate() assumes
      nnodes = numa_num_configured_nodes();
      nparts_per_node = 1;    /* at least one partition per node */
   but those two lines are wrong. We have two options:
   a) detect CPU-less nodes and avoid mbind()ing to them (assume they are
      CXL)
   b) or have explict configuration to which NUMA node we want allocate memory

   AFAIR my understanding is that You wanted to avoid configuraiton as long
   as possible and just stick to what's available/exposed by the OS that could
   be usable, so I've tried wit attached n1 [0] proggie to see if that's
   possible (to certain extent it is, check n1*txt files and especially "way3"
   to result how we could detect such setups and avoid mbind() and SIGBUS).

   Orthogonal thing for configuration is CPU where we can run on (
   sched_getaffinity() and similiar). There's also need for handling another
   situation: some users could use numactl/systemd to force NUMAMask (check
   systemd.exec(5)) and we should auto-detect that and not issue mbind()
   there too.

   So, the bigger problem with all of that is that the NUMA nodes cannot be
   consecutive loops as it is (for PoC it's fine, but especially with CXL you
   can get hotplugged stuff that appears / disappears and so on, so I think we
   cannot assume that simple loop to mbind(n):
   for nodes = 0..#numa_num_configured_nodes_nodes() is fine, it seems it
   isn't.

2. You guys doubted my hardware, so I've got my hands on much more modern
   i4i.metal on AWS (with specs like 2s64c128t and 2 NUMA real nodes with
   105:170ns latency difference according to Intel's mlc and 175GB/s vs 55GB/s
   bw for local:remote QPI speeds).

   run7/20260825 shows it that "optimized" (so thats +0008 patch) clearly wins
   against not having it across all three io_method modes on that modern
   hardware too. In essence the patchset (w/ 0008) couldn't give pgbenchS boost,
   but gives ~9-10% in seqconcurrscans. I was kind of woried about those
   1-1.5% pgbenchS/pgbenchS100krows regressions for optimized though, so I've
   started looking for more and took a look on number of clocksweep partitions
   and putting stuff into dedicated cachelines (especially nextVictimBuffer
   even when it would be partitioned, because why not to try it blind):

   run12 20260828 cover comparision between raw checking impact of number of
   partitions vs
   - master (from around Jul 2026)
   - optimized-aligned (+0008, +pg_attribute_aligned(PG_CACHE_LINE_SIZE),
   - optimized-16parts (MIN_BUFFER_PARTITIONS=16)
   - optimized-aligned-16parts (+0008, +pg_attribute_aligned, 16 parts too),

   It seems that forcing patchset certain struct members does provide minimal
   boost, (1-2%? for bal=on), but if anything then 16 clock-sweep partitions
   help a little bit more benefit and get us into 120%+ for seqconcurrscans
   without regressions from pgbenchS.

   However this is started kind of worrying to me.

3. This is kind of worrying and sad of not getting better results (1 year there
   was this quote by Tomas):

   > That's not bad - the clocksweep partitioning increases the throughput
   > 2-3x. Having 16 partitions (instead of 4) helps yet a bit more, to 3-4x.

   So i've got the following results for patchset+0008+aligned still on that
   i4i.metal when measuring with perf that seqconcurrscans -c 128:

   clocksweep partitions    | StrategyGetBuffer() CPU% | TPS | --vs-baseline
   1 (master, baseline)     |  9.09%                   |  68 | -
   2 (1 per node,optimized) |  4.84%                   |  73 | 107.3%
   16 (8 per node,optimized)|  0.32%                   |  79 | 116.3%

   Certainly far from 2-3-4x reported earlier.  And then:

   > For epyc (hb176), the differences are pretty massive.

   I dont have acess to hb176v4, to replicate those results (maybe it's
   special, EPYC with 4 nodes?? and apparently BIOS set to NPS=2, L3-as-NUMA
   disabled), but Your's testing generate.sh from that old incarnation of
   patchset had some stuff like that:
     CREATE TABLE x (id int, val text) WITH (fillfactor=10);
     INSERT INTO x SELECT 1, md5(i::text) FROM generate_series(1, 1442000);
   Which is exactly 1GB (!), and single such socket Genona-X handles 1152MB of
   3D V-Cache alone, so sounds like it? (somehow unlocking CPU prefetching
   everything from DRAM to such enormous L3 in one go? maybe something with
   lower dTLB misses because of that)

   Anyway, I've started digging this time on my legacy 4s32c64t 4 nodes box
   (with just 4x 64 MB LLC :P) to  find max optimal seqconcurrscans
partitions vs
   clients and got this TPS results for similiar seqconcurrscans:

   clients | master | ppn=1 (4 parts) | ppn=2 (8 parts) | ppn=4 (16 parts)
   1       | 0.714  | 0.457 (−25%)    | 0.361 (−47%)    | 0.351 (−49%)
   8       | 2.177  | 2.567 (+19%)    | 2.515 (+21%)    | 2.577 (+21%)
   32      | 5.664  | 7.238 (+29%)    | 7.722 (+37%)    | 7.887 (+39%)
   64      | 9.201  | 11.675 (+31%)   | 12.486 (+37%)   | 12.646 (+38%)
   (ppn=partitions per node, that is 4s32c64 4 NUMA nodes box, that was quick
   look without turbo boost disabled and so on)

3a.mini-problem A): IMHO the c=1 regressions are worrying and I think I saw
   them seen earlier, so it's not that we can just throw more parts, right ?
   It looks it's just clocksweep part. size (NBuffers / parts) vs. the
   scanned relation size (1.6GB here, under NBuffers/4 => does not use ring
   buffer for seq scans). So with s_b=8GB the per-partiton size is:
   - 2GB (with 4 parts)
   - 1GB (with 8 parts) and so on
   - against full 8 GB which is undivided on master.
   At c=1 only one table is touched all the time, so on master the whole
   table becomes resident and all scans just hit s_b. Once a backend is
   locked to a partition smaller than 1.6 GB (8 parts) it can never retain
   the table and stuff degrades (spreading starts to cost us too much?). So
   that would indicate 1-2 partitions per node is OKayish, but more is not?
   (but that's contrary to what Andres I think mentioned during live
   presentation to have partitioned clocksweep even per CPU?)

3b.bigger doubt B): why we are not getting more juice here if in the past
   people did report more? Even worse Greg & Jim, reported in [1] with
   simplest form of batch-updating the nextVictimBuffer consistent reports
   up to +16..20% for __pgbenchS(RO)__, but here we cannot even do so for
   seqconcurrscans?

   So I've compared those two ideas against each other, result in run15:
   - master
   - inst-optimized-aligned was still with just 4 parts (on that 4s32c64/4
     nodes) and with that pg_attribute_aligned thingy
   - batchedincr was same master, but just with Jim's/Greg v1 addon.

   I couldn't see any increase of pgbenchS (RO), nor even 2x for
   seqconcurrscans, but I could see that this patchset more or less gives
   1.2x today, while their batched-atomic-fetches yield ~1.3x.

   Anyway, I think that crosscheck result is quite good result, because this
   thread/patchset+some optimizations is right path a good basis for building
   further optimizations in the future.

4. My earlier BAS strategy idea == meh.
   BAS strategy (BufferAccessStrategy-derived affinity; local-only rings for
   certain operations): I've tried to implement that idea from [2], but it
   appears that even if I forced ring assigned from local NUMA node memory
   (e.g. for CTAS from generate_series) it  realy doesn't matter, as
   everything is rarely touching remote DRAM, most of stuff is simply cached
   by L1 (multiple hits into same *page* < L1d cache size) or L2/L3 and that
   hides the remote latency.

   The only thing that actually could benefit is the random btree index probe
   hitting remote latencies (that would be hitting more than L3/LLC size, but
   still within s_b size), stuff that would disarm CPU memory prefetcher.

   However with +0008 allocator already seems to be placing lots of stuff on
   local node first if possible, so it appears we seem not need anything
   else to benefit from special BAS that would pin it to just local s_b in
   places where we know about. I think that's good sign actually (less code).

   BTW: I've failed to even come-up with operation that would:
   1. be dependent on latency , random memory fetching that would stall (low
      IPC, random, not prefetchable)
   2. The data being larger than L3/LLC, to ensure we hit remote DRAM really
   3. Remote DRAM data that would be repeatably hammered (with #2 being
      larger than L3/LLC)
   4. Not being blocked by I/O

   Maybe something with HashJoin, dunno, way out of my area.

4b.The only thing that showed some promise would be meta-data (such as
   SharedBufHash?), but realistically with those NUMA latencies effects, I
   could just get like 3-4% improvement if force-pinning it to loca/remote
   memories just to see what would be the effect..

-J.

[0] - https://github.com/jakubwartakEDB/n1

[1] - 
https://www.postgresql.org/message-id/79629577-3ad8-4b1c-a469-ebc2cb4c5104%40app.fastmail.com:
  r8i.metal-96xl (384 vCPUs, 2 sockets, 6 NUMA nodes via SNC3):
    pgbench RO:
      Clients   Stock    Patched   Delta
      64        31,457   36,353    +16%
      128       31,678   37,864    +20%
      [..]

[2] - "I. BufferAccessStrategy: we could derrive affinity from the BAS
strategy itself, couldn't
      we?" from
https://www.postgresql.org/message-id/CAKZiRmzo9xnJSgO4b26DTZqPuObcQ-6ncay%2BmOEKs9rzCkegUA%40mail.gmail.com
Title: Master Baseline Performance Dashboard

Multi-Variant Performance Dashboard (Baseline: inst-master default)

Complete Performance Relative to inst-master default (100.00%)

Variance within ±2% of baseline is treated as noise. Green indicates peak performance, red indicates lowest floor.

Benchmark Clients master default (Baseline) optimized-aligned (numa=off, bal=off) optimized-aligned (numa=on, bal=off) optimized-aligned (numa=on, bal=on) optimized-16parts (numa=off, bal=off) optimized-16parts (numa=on, bal=off) optimized-16parts (numa=on, bal=on) optimized-aligned-16parts (numa=off, bal=off) optimized-aligned-16parts (numa=on, bal=off) optimized-aligned-16parts (numa=on, bal=on)
pgbenchS 32 100.00% 100.90% 100.11% 100.79% 99.81% 100.57% 100.01% 99.96% 100.33% 99.91%
pgbenchS 64 100.00% 100.80% 99.58% 100.23% 100.60% 100.67% 100.75% 100.17% 100.36% 100.20%
seqconcurrscans 32 100.00% 103.70% 111.26% 111.98% 114.00% 119.00% 118.95% 117.37% 118.88% 120.58% 🟢
seqconcurrscans 64 100.00% 102.41% 119.94% 118.67% 121.18% 125.05% 🟢 120.53% 121.62% 123.34% 123.71%
1 inst-master interleave seqconcurrscans 8 off off sync 4.561578 1767413 1706730 1773134 1793641 1797654
1 inst-master interleave seqconcurrscans 8 off off worker 5.369936 1464631 1414697 1509075 1525260 1576191
1 inst-master interleave seqconcurrscans 8 off off io_uring 5.666139 1422530 1347229 1424644 1430637 1482497
1 inst-master interleave seqconcurrscans 32 off off sync 15.609069 2026249 1921240 2060127 2121488 2124502
1 inst-master interleave seqconcurrscans 32 off off worker 20.290658 1553400 1542048 1569484 1733948 1760784
1 inst-master interleave seqconcurrscans 32 off off io_uring 21.312744 1465036 1425007 1500060 1726223 1764426
1 inst-master interleave pgbenchS 8 off off sync 151501.809020 52 51 52 53 58
1 inst-master interleave pgbenchS 8 off off worker 150431.293159 52 51 52 54 58
1 inst-master interleave pgbenchS 8 off off io_uring 150664.561865 52 51 52 56 58
1 inst-master interleave pgbenchS 32 off off sync 592276.696901 52 52 53 57 62
1 inst-master interleave pgbenchS 32 off off worker 594105.553915 52 51 53 57 61
1 inst-master interleave pgbenchS 32 off off io_uring 595066.535179 52 52 53 57 61
1 inst-master interleave pgbenchS100krows 8 off off sync 449.226802 17610 17555 17659 18628 23027
1 inst-master interleave pgbenchS100krows 8 off off worker 445.095494 17687 17650 17733 19464 24916
1 inst-master interleave pgbenchS100krows 8 off off io_uring 444.350686 17645 17618 17681 20131 26256
1 inst-master interleave pgbenchS100krows 32 off off sync 1600.619797 18207 17815 20674 28193 34095
1 inst-master interleave pgbenchS100krows 32 off off worker 1622.461833 18040 17747 20162 27583 33585
1 inst-master interleave pgbenchS100krows 32 off off io_uring 1643.200279 17897 17722 19803 26566 32574
1 inst-master default seqconcurrscans 8 off off sync 4.452388 1724753 1650861 1800284 1887200 1909169
1 inst-master default seqconcurrscans 8 off off worker 5.482875 1453898 1382045 1474662 1549653 1595894
1 inst-master default seqconcurrscans 8 off off io_uring 5.540210 1428762 1351949 1452132 1503259 1505964
1 inst-master default seqconcurrscans 32 off off sync 14.985394 2117561 2028932 2134349 2174075 2190049
1 inst-master default seqconcurrscans 32 off off worker 19.749652 1548095 1536692 1561303 1651675 1721481
1 inst-master default seqconcurrscans 32 off off io_uring 21.405158 1443238 1409699 1490191 1707316 1740965
1 inst-master default pgbenchS 8 off off sync 151671.530604 52 51 52 53 57
1 inst-master default pgbenchS 8 off off worker 152021.122284 51 51 52 54 58
1 inst-master default pgbenchS 8 off off io_uring 151236.091356 52 51 52 54 58
1 inst-master default pgbenchS 32 off off sync 591053.898964 52 52 54 57 62
1 inst-master default pgbenchS 32 off off worker 595476.964882 52 51 53 57 61
1 inst-master default pgbenchS 32 off off io_uring 595129.655160 52 52 53 57 61
1 inst-master default pgbenchS100krows 8 off off sync 444.076661 17725 17684 17776 19407 25088
1 inst-master default pgbenchS100krows 8 off off worker 445.510405 17654 17612 17705 19488 24714
1 inst-master default pgbenchS100krows 8 off off io_uring 445.655669 17612 17580 17653 19811 26038
1 inst-master default pgbenchS100krows 32 off off sync 1586.498515 18558 17784 21119 28337 33057
1 inst-master default pgbenchS100krows 32 off off worker 1604.755596 18297 17770 20614 27949 33638
1 inst-master default pgbenchS100krows 32 off off io_uring 1638.085332 18047 17760 19995 26295 31432
1 inst-patched default seqconcurrscans 8 off off sync 4.419164 1771192 1700904 1867568 1967851 1995653
1 inst-patched default seqconcurrscans 8 off off worker 5.114845 1484470 1452358 1606214 1652511 1669872
1 inst-patched default seqconcurrscans 8 off off io_uring 5.444820 1460395 1393881 1504380 1516865 1526897
1 inst-patched default seqconcurrscans 8 on on sync 4.123675 1859286 1830082 1895886 1943433 1969156
1 inst-patched default seqconcurrscans 8 on on worker 4.698854 1669903 1634400 1742667 1812006 1820115
1 inst-patched default seqconcurrscans 8 on on io_uring 4.901657 1590140 1540093 1625015 1661839 1668855
1 inst-patched default seqconcurrscans 8 on off sync 4.750005 1734690 1681294 1799900 1916617 1950785
1 inst-patched default seqconcurrscans 8 on off worker 5.533393 1512432 1014181 1551840 1691020 1694116
1 inst-patched default seqconcurrscans 8 on off io_uring 5.729447 1514508 998904 1555146 1653734 1656541
1 inst-patched default seqconcurrscans 32 off off sync 14.903572 2111223 2057218 2131503 2150960 2158772
1 inst-patched default seqconcurrscans 32 off off worker 20.921218 1493923 1473185 1518427 1616495 1634746
1 inst-patched default seqconcurrscans 32 off off io_uring 22.129102 1406450 1375295 1447716 1526200 1611428
1 inst-patched default seqconcurrscans 32 on on sync 13.763817 2305204 2238722 2350477 2397366 2400793
1 inst-patched default seqconcurrscans 32 on on worker 18.354844 1712356 1687449 1721803 1732640 1749983
1 inst-patched default seqconcurrscans 32 on on io_uring 21.088403 1493767 1470316 1514268 1551018 1560825
1 inst-patched default seqconcurrscans 32 on off sync 13.963163 2300914 2279974 2319327 2344853 2348274
1 inst-patched default seqconcurrscans 32 on off worker 19.570868 1611753 1597585 1637029 1655715 1659459
1 inst-patched default seqconcurrscans 32 on off io_uring 22.078629 1419200 1377339 1434283 1448752 1464531
1 inst-patched default pgbenchS 8 off off sync 150668.001154 52 51 53 54 57
1 inst-patched default pgbenchS 8 off off worker 149352.283917 52 52 53 56 58
1 inst-patched default pgbenchS 8 off off io_uring 151480.110985 52 51 52 54 59
1 inst-patched default pgbenchS 8 on on sync 151203.926989 52 51 52 53 57
1 inst-patched default pgbenchS 8 on on worker 150738.629532 52 51 53 53 57
1 inst-patched default pgbenchS 8 on on io_uring 150466.419763 52 51 53 55 57
1 inst-patched default pgbenchS 8 on off sync 151302.359905 52 51 52 53 57
1 inst-patched default pgbenchS 8 on off worker 150385.471043 52 52 53 54 58
1 inst-patched default pgbenchS 8 on off io_uring 151663.888638 52 51 52 53 58
1 inst-patched default pgbenchS 32 off off sync 589644.457924 53 52 54 57 62
1 inst-patched default pgbenchS 32 off off worker 591926.895323 52 52 54 58 62
1 inst-patched default pgbenchS 32 off off io_uring 588539.399121 53 52 54 58 63
1 inst-patched default pgbenchS 32 on on sync 590904.392258 53 52 53 57 61
1 inst-patched default pgbenchS 32 on on worker 590423.877334 52 52 54 58 62
1 inst-patched default pgbenchS 32 on on io_uring 591560.116737 52 52 53 58 62
1 inst-patched default pgbenchS 32 on off sync 594337.710755 52 52 53 57 61
1 inst-patched default pgbenchS 32 on off worker 592333.603763 52 52 53 57 62
1 inst-patched default pgbenchS 32 on off io_uring 591673.814357 52 52 53 57 63
1 inst-patched default pgbenchS100krows 8 off off sync 450.320832 17435 17407 17464 19967 24892
1 inst-patched default pgbenchS100krows 8 off off worker 447.201149 17455 17424 17500 20721 26164
1 inst-patched default pgbenchS100krows 8 off off io_uring 449.870164 17439 17390 17510 19950 24770
1 inst-patched default pgbenchS100krows 8 on on sync 450.376523 17362 17303 17421 20729 25616
1 inst-patched default pgbenchS100krows 8 on on worker 445.523706 17470 17443 17502 21299 26850
1 inst-patched default pgbenchS100krows 8 on on io_uring 447.716941 17472 17434 17564 20347 24954
1 inst-patched default pgbenchS100krows 8 on off sync 443.598163 17483 17457 17517 22219 27636
1 inst-patched default pgbenchS100krows 8 on off worker 447.666412 17445 17421 17476 20962 26226
1 inst-patched default pgbenchS100krows 8 on off io_uring 447.666331 17420 17397 17448 21246 25963
1 inst-patched default pgbenchS100krows 32 off off sync 1673.715037 17945 17533 19654 24700 28516
1 inst-patched default pgbenchS100krows 32 off off worker 1681.056533 17875 17550 19556 24301 28093
1 inst-patched default pgbenchS100krows 32 off off io_uring 1636.754572 18269 17601 20288 26092 30121
1 inst-patched default pgbenchS100krows 32 on on sync 1682.768115 17980 17547 19698 23782 26866
1 inst-patched default pgbenchS100krows 32 on on worker 1642.316942 18447 17505 20661 24787 27883
1 inst-patched default pgbenchS100krows 32 on on io_uring 1644.749914 18526 17580 20491 24509 27561
1 inst-patched default pgbenchS100krows 32 on off sync 1650.289993 18292 17540 20410 24744 27844
1 inst-patched default pgbenchS100krows 32 on off worker 1652.607528 18327 17534 20436 24471 27248
1 inst-patched default pgbenchS100krows 32 on off io_uring 1665.670607 18250 17532 20152 23947 26873
1 inst-optimized default seqconcurrscans 8 off off sync 4.645551 1639998 1606494 1771792 1845735 1862836
1 inst-optimized default seqconcurrscans 8 off off worker 5.280785 1500969 1429383 1532849 1577225 1582885
1 inst-optimized default seqconcurrscans 8 off off io_uring 5.698725 1392914 1312972 1419577 1441450 1472869
1 inst-optimized default seqconcurrscans 8 on on sync 4.902080 1601033 1583661 1627538 1649012 1657681
1 inst-optimized default seqconcurrscans 8 on on worker 6.220332 1237760 1209395 1281592 1329862 1344249
1 inst-optimized default seqconcurrscans 8 on on io_uring 6.228823 1286725 1266137 1319306 1351636 1369299
1 inst-optimized default seqconcurrscans 8 on off sync 5.702164 1371215 1314887 1531169 1565950 1584112
1 inst-optimized default seqconcurrscans 8 on off worker 6.485965 1282340 1083033 1311028 1359275 1366307
1 inst-optimized default seqconcurrscans 8 on off io_uring 6.569876 1217671 1208924 1233721 1288913 1292563
1 inst-optimized default seqconcurrscans 32 off off sync 14.332471 2229831 2186307 2251964 2266617 2268666
1 inst-optimized default seqconcurrscans 32 off off worker 19.935242 1581960 1546706 1618826 1636732 1639589
1 inst-optimized default seqconcurrscans 32 off off io_uring 21.837518 1455242 1396320 1476353 1509855 1535460
1 inst-optimized default seqconcurrscans 32 on on sync 15.310395 2037098 1960746 2059310 2100714 2106126
1 inst-optimized default seqconcurrscans 32 on on worker 21.938965 1427254 1400284 1454908 1463878 1466723
1 inst-optimized default seqconcurrscans 32 on on io_uring 24.032690 1320365 1306233 1333107 1371219 1483515
1 inst-optimized default seqconcurrscans 32 on off sync 15.402583 2043586 1965726 2059878 2085318 2091944
1 inst-optimized default seqconcurrscans 32 on off worker 21.339737 1448514 1432205 1454960 1461088 1463182
1 inst-optimized default seqconcurrscans 32 on off io_uring 24.719224 1263504 1239692 1294637 1333235 1362380
1 inst-optimized default pgbenchS 8 off off sync 149150.863891 52 52 53 55 58
1 inst-optimized default pgbenchS 8 off off worker 149635.642336 52 52 53 54 58
1 inst-optimized default pgbenchS 8 off off io_uring 149727.330148 52 52 53 56 59
1 inst-optimized default pgbenchS 8 on on sync 150594.179148 52 52 53 53 58
1 inst-optimized default pgbenchS 8 on on worker 149877.969626 52 52 53 55 58
1 inst-optimized default pgbenchS 8 on on io_uring 148672.870761 53 52 53 54 59
1 inst-optimized default pgbenchS 8 on off sync 149875.211572 52 52 53 54 59
1 inst-optimized default pgbenchS 8 on off worker 149516.804959 52 52 53 54 58
1 inst-optimized default pgbenchS 8 on off io_uring 146756.359920 53 52 54 57 61
1 inst-optimized default pgbenchS 32 off off sync 584906.414051 53 53 54 57 61
1 inst-optimized default pgbenchS 32 off off worker 583407.543452 53 52 54 59 63
1 inst-optimized default pgbenchS 32 off off io_uring 589276.349055 53 52 54 57 61
1 inst-optimized default pgbenchS 32 on on sync 588478.781023 53 52 54 57 61
1 inst-optimized default pgbenchS 32 on on worker 584116.028031 53 52 54 58 62
1 inst-optimized default pgbenchS 32 on on io_uring 586826.688725 53 52 54 58 62
1 inst-optimized default pgbenchS 32 on off sync 590478.851247 53 52 53 57 62
1 inst-optimized default pgbenchS 32 on off worker 588718.093874 53 52 54 57 61
1 inst-optimized default pgbenchS 32 on off io_uring 590230.041190 53 52 53 57 62
1 inst-optimized default pgbenchS100krows 8 off off sync 439.877070 17789 17754 17833 20858 25898
1 inst-optimized default pgbenchS100krows 8 off off worker 443.466692 17762 17736 17800 19614 24325
1 inst-optimized default pgbenchS100krows 8 off off io_uring 439.790088 17783 17755 17818 20821 26414
1 inst-optimized default pgbenchS100krows 8 on on sync 439.737805 17788 17757 17827 21011 26095
1 inst-optimized default pgbenchS100krows 8 on on worker 435.702904 17778 17728 17890 21778 28765
1 inst-optimized default pgbenchS100krows 8 on on io_uring 440.225793 17760 17741 17788 21001 25778
1 inst-optimized default pgbenchS100krows 8 on off sync 439.129722 17761 17733 17790 21537 26873
1 inst-optimized default pgbenchS100krows 8 on off worker 438.731132 17777 17753 17808 21447 26871
1 inst-optimized default pgbenchS100krows 8 on off io_uring 441.712053 17762 17741 17788 20553 25026
1 inst-optimized default pgbenchS100krows 32 off off sync 1633.759347 18365 17917 20131 25411 29641
1 inst-optimized default pgbenchS100krows 32 off off worker 1653.564158 18067 17855 19813 25031 29093
1 inst-optimized default pgbenchS100krows 32 off off io_uring 1633.247854 18219 17862 20203 25813 30065
1 inst-optimized default pgbenchS100krows 32 on on sync 1642.997295 18292 17870 20245 24702 28244
1 inst-optimized default pgbenchS100krows 32 on on worker 1605.072937 18866 17917 21045 25559 28929
1 inst-optimized default pgbenchS100krows 32 on on io_uring 1598.315636 18842 17889 21244 26005 29509
1 inst-optimized default pgbenchS100krows 32 on off sync 1646.189521 18464 17865 20353 23947 26821
1 inst-optimized default pgbenchS100krows 32 on off worker 1656.281197 18290 17865 20116 23782 26603
1 inst-optimized default pgbenchS100krows 32 on off io_uring 1659.610190 18291 17874 19941 23779 26889
2 inst-master interleave seqconcurrscans 8 off off sync 4.579190 1765908 1697890 1770596 1792647 1795451
2 inst-master interleave seqconcurrscans 8 off off worker 5.340753 1484535 1423255 1520391 1543157 1589482
2 inst-master interleave seqconcurrscans 8 off off io_uring 5.686736 1418762 1352604 1429212 1436334 1458332
2 inst-master interleave seqconcurrscans 32 off off sync 15.123891 2044563 2010349 2076443 2118622 2145931
2 inst-master interleave seqconcurrscans 32 off off worker 19.976572 1527373 1512815 1549742 1739989 1747510
2 inst-master interleave seqconcurrscans 32 off off io_uring 21.556036 1465305 1428711 1506106 1671250 1677652
2 inst-master interleave pgbenchS 8 off off sync 151164.131077 52 51 52 54 59
2 inst-master interleave pgbenchS 8 off off worker 151249.847464 52 51 52 54 58
2 inst-master interleave pgbenchS 8 off off io_uring 151151.004872 52 51 52 53 57
2 inst-master interleave pgbenchS 32 off off sync 591772.156331 52 52 53 57 62
2 inst-master interleave pgbenchS 32 off off worker 591278.669453 52 52 54 57 62
2 inst-master interleave pgbenchS 32 off off io_uring 590130.321882 52 52 54 57 62
2 inst-master interleave pgbenchS100krows 8 off off sync 445.362808 17659 17623 17718 19688 24401
2 inst-master interleave pgbenchS100krows 8 off off worker 446.480019 17632 17595 17678 19323 25182
2 inst-master interleave pgbenchS100krows 8 off off io_uring 446.649340 17614 17558 17683 19482 24414
2 inst-master interleave pgbenchS100krows 32 off off sync 1601.833946 18292 17817 20674 27952 33494
2 inst-master interleave pgbenchS100krows 32 off off worker 1557.811707 18835 17770 21642 29509 35375
2 inst-master interleave pgbenchS100krows 32 off off io_uring 1620.227218 18159 17793 20236 27389 33024
2 inst-master default seqconcurrscans 8 off off sync 4.441583 1719861 1649039 1840201 1927913 1936282
2 inst-master default seqconcurrscans 8 off off worker 5.304106 1464096 1405844 1522821 1560775 1592303
2 inst-master default seqconcurrscans 8 off off io_uring 5.585987 1424905 1352540 1448413 1500174 1502598
2 inst-master default seqconcurrscans 32 off off sync 15.501752 2084985 1879436 2107541 2141322 2161025
2 inst-master default seqconcurrscans 32 off off worker 20.359672 1529963 1490213 1552399 1637024 1674747
2 inst-master default seqconcurrscans 32 off off io_uring 21.514990 1446837 1411566 1497148 1685094 1761730
2 inst-master default pgbenchS 8 off off sync 150089.965874 52 51 53 55 58
2 inst-master default pgbenchS 8 off off worker 151986.373359 51 51 52 53 57
2 inst-master default pgbenchS 8 off off io_uring 151474.221942 52 51 52 54 58
2 inst-master default pgbenchS 32 off off sync 596536.750789 52 52 53 56 60
2 inst-master default pgbenchS 32 off off worker 590265.203893 52 52 54 58 62
2 inst-master default pgbenchS 32 off off io_uring 598338.944392 52 52 53 55 60
2 inst-master default pgbenchS100krows 8 off off sync 443.472212 17640 17610 17681 20438 26452
2 inst-master default pgbenchS100krows 8 off off worker 443.523441 17656 17610 17712 20367 26223
2 inst-master default pgbenchS100krows 8 off off io_uring 448.247166 17612 17578 17649 19167 23324
2 inst-master default pgbenchS100krows 32 off off sync 1581.870864 18540 17834 20966 28780 34642
2 inst-master default pgbenchS100krows 32 off off worker 1617.158192 18240 17780 20491 26807 32520
2 inst-master default pgbenchS100krows 32 off off io_uring 1569.199033 18800 17837 21434 28728 33929
1 inst-master interleave seqconcurrscans 32 off off io_uring 21.810566 1439127 1413752 1467581 1625380 1681110
1 inst-master interleave seqconcurrscans 64 off off io_uring 39.355823 1621917 1521082 1656141 1820863 1832919
1 inst-master interleave pgbenchS 32 off off io_uring 597804.013351 52 51 53 58 63
1 inst-master interleave pgbenchS 64 off off io_uring 978843.681163 62 59 69 72 75
1 inst-master default seqconcurrscans 32 off off io_uring 21.273317 1462421 1430397 1504852 1739110 1754201
1 inst-master default seqconcurrscans 64 off off io_uring 40.916261 1567701 1488148 1601011 1745082 1751905
1 inst-master default pgbenchS 32 off off io_uring 593214.106214 52 51 53 58 63
1 inst-master default pgbenchS 64 off off io_uring 979343.050720 62 59 69 72 75
1 inst-optimized-aligned-16parts default seqconcurrscans 32 off off io_uring 24.967762 1268319 1247460 1285337 1312812 1316107
1 inst-optimized-aligned-16parts default seqconcurrscans 32 on on io_uring 25.651252 1215320 1174789 1260055 1297504 1307295
1 inst-optimized-aligned-16parts default seqconcurrscans 32 on off io_uring 25.289221 1239675 1217123 1269558 1303520 1331194
1 inst-optimized-aligned-16parts default seqconcurrscans 64 off off io_uring 49.760535 1262000 1243802 1277914 1302904 1343921
1 inst-optimized-aligned-16parts default seqconcurrscans 64 on on io_uring 50.618589 1238795 1210426 1267169 1340778 1428216
1 inst-optimized-aligned-16parts default seqconcurrscans 64 on off io_uring 50.466552 1246030 1209277 1267755 1305039 1351448
1 inst-optimized-aligned-16parts default pgbenchS 32 off off io_uring 592975.396708 52 51 53 58 65
1 inst-optimized-aligned-16parts default pgbenchS 32 on on io_uring 592694.609196 52 51 53 58 62
1 inst-optimized-aligned-16parts default pgbenchS 32 on off io_uring 595190.270842 52 51 53 58 62
1 inst-optimized-aligned-16parts default pgbenchS 64 off off io_uring 980986.742550 62 58 69 72 75
1 inst-optimized-aligned-16parts default pgbenchS 64 on on io_uring 981327.170498 62 59 69 72 74
1 inst-optimized-aligned-16parts default pgbenchS 64 on off io_uring 982844.663096 62 59 69 72 74
1 inst-optimized-16parts default seqconcurrscans 32 off off io_uring 24.252424 1282213 1266618 1313587 1341135 1343164
1 inst-optimized-16parts default seqconcurrscans 32 on on io_uring 25.303891 1249343 1219833 1275280 1295845 1307411
1 inst-optimized-16parts default seqconcurrscans 32 on off io_uring 25.314833 1218561 1198790 1262477 1307533 1324021
1 inst-optimized-16parts default seqconcurrscans 64 off off io_uring 49.582068 1274277 1259797 1292582 1325027 1360447
1 inst-optimized-16parts default seqconcurrscans 64 on on io_uring 49.317429 1254513 1223343 1277338 1352877 1423479
1 inst-optimized-16parts default seqconcurrscans 64 on off io_uring 51.167116 1224447 1198572 1259863 1321811 1386762
1 inst-optimized-16parts default pgbenchS 32 off off io_uring 592085.604448 52 51 53 58 62
1 inst-optimized-16parts default pgbenchS 32 on on io_uring 593250.526728 52 51 53 58 62
1 inst-optimized-16parts default pgbenchS 32 on off io_uring 596619.201691 52 51 53 57 61
1 inst-optimized-16parts default pgbenchS 64 off off io_uring 985213.746350 62 58 69 72 74
1 inst-optimized-16parts default pgbenchS 64 on on io_uring 986705.592469 62 58 68 71 74
1 inst-optimized-16parts default pgbenchS 64 on off io_uring 985944.506260 61 58 69 72 74
1 inst-optimized-aligned default seqconcurrscans 32 off off io_uring 22.059914 1403117 1379991 1439323 1534095 1572089
1 inst-optimized-aligned default seqconcurrscans 32 on on io_uring 23.820936 1322973 1290733 1349691 1388607 1412324
1 inst-optimized-aligned default seqconcurrscans 32 on off io_uring 23.668763 1322876 1303193 1339745 1358429 1367621
1 inst-optimized-aligned default seqconcurrscans 64 off off io_uring 41.901174 1496242 1463218 1540302 1603442 1634690
1 inst-optimized-aligned default seqconcurrscans 64 on on io_uring 48.553999 1298135 1278612 1317019 1442187 1517332
1 inst-optimized-aligned default seqconcurrscans 64 on off io_uring 49.075525 1289275 1268545 1305917 1378418 1449340
1 inst-optimized-aligned default pgbenchS 32 off off io_uring 598529.783809 52 51 53 57 63
1 inst-optimized-aligned default pgbenchS 32 on on io_uring 597900.756673 52 51 53 57 61
1 inst-optimized-aligned default pgbenchS 32 on off io_uring 593874.135174 52 51 53 58 66
1 inst-optimized-aligned default pgbenchS 64 off off io_uring 987192.086643 61 58 69 71 74
1 inst-optimized-aligned default pgbenchS 64 on on io_uring 981575.818533 62 59 69 72 74
1 inst-optimized-aligned default pgbenchS 64 on off io_uring 975262.356310 62 59 69 72 76
1 inst-batchedincr interleave pgbenchS 8 off off io_uring 47457.110966 163 162 164 175 182
1 inst-batchedincr interleave pgbenchS 32 off off io_uring 165778.971674 185 183 188 200 210
1 inst-batchedincr interleave seqconcurrscans 8 off off io_uring 2.257097 3417494 3141333 3490065 3549328 3576372
1 inst-batchedincr interleave seqconcurrscans 32 off off io_uring 10.211799 3047812 2924363 3132712 3261285 3276471
1 inst-batchedincr default pgbenchS 8 off off io_uring 47770.685486 162 161 163 172 184
1 inst-batchedincr default pgbenchS 32 off off io_uring 166802.214400 184 181 187 198 209
1 inst-batchedincr default seqconcurrscans 8 off off io_uring 2.488193 2976422 2926996 3140484 3507890 3565139
1 inst-batchedincr default seqconcurrscans 32 off off io_uring 9.943397 3027490 2934409 3119096 3311087 3416176
1 inst-optimized-aligned default pgbenchS 8 off off io_uring 48522.784999 159 158 161 172 180
1 inst-optimized-aligned default pgbenchS 8 on off io_uring 47532.858570 163 162 164 173 181
1 inst-optimized-aligned default pgbenchS 8 on on io_uring 48050.718007 161 160 162 172 179
1 inst-optimized-aligned default pgbenchS 32 off off io_uring 167933.482918 182 180 186 198 210
1 inst-optimized-aligned default pgbenchS 32 on off io_uring 167900.966753 183 180 186 197 208
1 inst-optimized-aligned default pgbenchS 32 on on io_uring 166320.863427 184 182 188 199 209
1 inst-optimized-aligned default seqconcurrscans 8 off off io_uring 2.017174 3488287 3446201 3931263 4205122 4275902
1 inst-optimized-aligned default seqconcurrscans 8 on off io_uring 2.464708 2930382 2847276 3245933 3741418 3790320
1 inst-optimized-aligned default seqconcurrscans 8 on on io_uring 2.404589 2969738 2946593 3546704 3833712 3866597
1 inst-optimized-aligned default seqconcurrscans 32 off off io_uring 7.399395 4045249 3947504 4184606 4329854 4428299
1 inst-optimized-aligned default seqconcurrscans 32 on off io_uring 10.029495 3092392 2999619 3158407 3274962 3386251
1 inst-optimized-aligned default seqconcurrscans 32 on on io_uring 9.468531 3226804 3137532 3322153 3491187 3569808
1 inst-master interleave pgbenchS 8 off off io_uring 47918.634595 162 161 163 168 179
1 inst-master interleave pgbenchS 32 off off io_uring 166464.136265 184 182 188 199 209
1 inst-master interleave seqconcurrscans 8 off off io_uring 2.058593 3511423 3410906 3884443 4097925 4178077
1 inst-master interleave seqconcurrscans 32 off off io_uring 7.620356 4036117 3733003 4211888 4353080 4506303
1 inst-master default pgbenchS 8 off off io_uring 47882.462761 161 160 163 173 179
1 inst-master default pgbenchS 32 off off io_uring 166783.296467 184 182 187 198 209
1 inst-master default seqconcurrscans 8 off off io_uring 2.107635 3514938 3319961 3811794 4095833 4121759
1 inst-master default seqconcurrscans 32 off off io_uring 7.543610 4222032 3819952 4350895 4462764 4516168
2 inst-batchedincr interleave pgbenchS 8 off off io_uring 47259.563409 163 162 165 176 182
2 inst-batchedincr interleave pgbenchS 32 off off io_uring 165594.975320 185 183 188 200 210
2 inst-batchedincr interleave seqconcurrscans 8 off off io_uring 2.356985 3430873 2939519 3465332 3516689 3522720
2 inst-batchedincr interleave seqconcurrscans 32 off off io_uring 9.840089 3076013 2948842 3221783 3422146 3537979
2 inst-batchedincr default pgbenchS 8 off off io_uring 47176.701729 164 162 166 175 183
2 inst-batchedincr default pgbenchS 32 off off io_uring 165849.872633 185 183 188 199 210
2 inst-batchedincr default seqconcurrscans 8 off off io_uring 2.312028 3047546 2870560 3457128 3583792 3649868
2 inst-batchedincr default seqconcurrscans 32 off off io_uring 9.965532 3087877 2997829 3201146 3311542 3364664
2 inst-optimized-aligned default pgbenchS 8 off off io_uring 47456.188409 162 161 164 176 185
2 inst-optimized-aligned default pgbenchS 8 on off io_uring 47836.190632 161 160 163 177 182
2 inst-optimized-aligned default pgbenchS 8 on on io_uring 48362.010662 160 159 161 169 179
2 inst-optimized-aligned default pgbenchS 32 off off io_uring 167020.646425 183 181 187 198 209
2 inst-optimized-aligned default pgbenchS 32 on off io_uring 166853.839313 184 181 187 198 209
2 inst-optimized-aligned default pgbenchS 32 on on io_uring 167459.108153 183 181 187 198 209
2 inst-optimized-aligned default seqconcurrscans 8 off off io_uring 2.044978 3565112 3386250 3981291 4100339 4133581
2 inst-optimized-aligned default seqconcurrscans 8 on off io_uring 2.378536 3045763 2902340 3529090 3708174 3730244
2 inst-optimized-aligned default seqconcurrscans 8 on on io_uring 2.379024 3009893 2966100 3531033 3740503 3771668
2 inst-optimized-aligned default seqconcurrscans 32 off off io_uring 7.141788 4184447 4096404 4303401 4402342 4412172
2 inst-optimized-aligned default seqconcurrscans 32 on off io_uring 9.573431 3239960 3131387 3333889 3495877 3644995
2 inst-optimized-aligned default seqconcurrscans 32 on on io_uring 8.843770 3345550 3233378 3472804 3651043 3901293
2 inst-master interleave pgbenchS 8 off off io_uring 48184.029390 161 159 162 171 179
2 inst-master interleave pgbenchS 32 off off io_uring 166207.656993 185 182 188 199 209
2 inst-master interleave seqconcurrscans 8 off off io_uring 2.087665 3673710 3365597 3949641 4054625 4101094
2 inst-master interleave seqconcurrscans 32 off off io_uring 7.504028 4060622 3714908 4216333 4407528 4429969
2 inst-master default pgbenchS 8 off off io_uring 48081.366478 161 160 162 173 182
2 inst-master default pgbenchS 32 off off io_uring 167198.861187 183 181 187 198 209
2 inst-master default seqconcurrscans 8 off off io_uring 2.071262 3577816 3380511 4021857 4100614 4162808
2 inst-master default seqconcurrscans 32 off off io_uring 7.641262 3848846 3632783 4158109 4300469 4374423
Title: Master Default Baseline Dashboard - Results Analysis

Isolated Performance Dashboard (Baseline: Master Default)

Table View: Isolated SYNC Architecture Comparisons

Baseline anchor is configured to SYNC Master Default. Variance within ±2% is stripped of color tags.

Benchmark Clients master default (Baseline) optimized (numa=off, bal=off) optimized (numa=on, bal=off) optimized (numa=on, bal=on) patched (numa=off, bal=off) patched (numa=on, bal=off) patched (numa=on, bal=on)
pgbenchS 8 100.00% 98.85% 99.33% 99.81% 99.86% 100.28% 100.21%
pgbenchS 32 100.00% 98.50% 99.44% 99.10% 99.30% 100.09% 99.51%
pgbenchS100krows 8 100.00% 99.12% 98.95% 99.09% 101.48% 99.96% 101.49%
pgbenchS100krows 32 100.00% 103.13% 103.91% 103.71% 105.65% 104.17% 106.22% 🟢
seqconcurrscans 8 100.00% 104.47% 128.23% 🟢 110.23% 99.37% 106.81% 92.73% 🔴
seqconcurrscans 32 100.00% 94.02% 101.04% 100.44% 97.77% 91.60% 90.29% 🔴

Table View: Isolated WORKER Architecture Comparisons

Baseline anchor is configured to WORKER Master Default. Variance within ±2% is stripped of color tags.

Benchmark Clients master default (Baseline) optimized (numa=off, bal=off) optimized (numa=on, bal=off) optimized (numa=on, bal=on) patched (numa=off, bal=off) patched (numa=on, bal=off) patched (numa=on, bal=on)
pgbenchS 8 100.00% 98.44% 98.36% 98.60% 98.26% 98.94% 99.17%
pgbenchS 32 100.00% 98.40% 99.30% 98.52% 99.84% 99.91% 99.59%
pgbenchS100krows 8 100.00% 99.76% 98.70% 98.02% 100.60% 100.71% 100.23%
pgbenchS100krows 32 100.00% 102.64% 102.81% 99.63% 104.35% 🟢 102.59% 101.95%
seqconcurrscans 8 100.00% 97.91% 120.26% 🟢 115.33% 94.83% 102.59% 87.12% 🔴
seqconcurrscans 32 100.00% 99.40% 106.41% 109.40% 🟢 104.32% 97.59% 91.52% 🔴

Table View: Isolated IO_URING Architecture Comparisons

Baseline anchor is configured to IO_URING Master Default. Variance within ±2% is stripped of color tags.

Benchmark Clients master default (Baseline) optimized (numa=off, bal=off) optimized (numa=on, bal=off) optimized (numa=on, bal=on) patched (numa=off, bal=off) patched (numa=on, bal=off) patched (numa=on, bal=on)
pgbenchS 8 100.00% 98.92% 96.96% 🔴 98.23% 100.08% 100.20% 99.41%
pgbenchS 32 100.00% 98.75% 98.91% 98.34% 98.63% 99.15% 99.13%
pgbenchS100krows 8 100.00% 98.40% 98.83% 98.50% 100.65% 100.16% 100.17%
pgbenchS100krows 32 100.00% 101.85% 103.49% 99.67% 102.06% 103.87% 🟢 102.56%
seqconcurrscans 8 100.00% 102.44% 118.10% 🟢 111.97% 97.87% 102.99% 88.11% 🔴
seqconcurrscans 32 100.00% 101.76% 115.19% 🟢 111.99% 103.12% 102.88% 98.27%
Title: Performance Benchmark Report

Benchmark Performance Analysis Dashboard

Normalized throughput percentages relative to master default baseline (100.00%). Deviations within ±2% are classified as noise.

Benchmark Clients master default (Baseline) master interleave batchedincr default batchedincr interleave optimized-aligned (numa=off, bal=off) optimized-aligned (numa=on, bal=off) optimized-aligned (numa=on, bal=on)
pgbenchS 8 100.00% 100.14% 98.94% 98.70% 100.02% 99.38% 100.47%
pgbenchS 32 100.00% 99.61% 99.60% 99.22% 100.29% 100.23% 99.94%
seqconcurrscans 8 100.00% 99.22% 114.87% 110.41% 97.21% 🔴 115.90% 🟢 114.47%
seqconcurrscans 32 100.00% 99.60% 131.11% 132.05% 🟢 95.76% 🔴 129.10% 120.60%
Maximum Performance Gain (Out of Noise)
Minimum Performance Floor (Out of Noise)
Grey Text Noise Window (±2% of Baseline)

Attachment: atomics_cacheline.patch.nocfbot
Description: Binary data

Reply via email to