1) v12-0001-Use-simple-hash-for-PrivateRefCount.patch > > - seems like a (mostly) mechanical switch for a different hashtable
But Andres slapped me with a question: "Did you try on a real query?" When I tried on a real query it was a bit slower on the that Andres gave as an example: SELECT sum(balance) INTO s FROM uncorrelated WHERE id > 1000 and id < 500000; It is marginal but consistently slower, I guess it is just the presence of more code patched: 120.36 - 124.98 master: 116.19 - 118.09 Passing -falign-functionns=64 patched: 117.82 - 118.88 master: 115.40 - 119.91 Maybe just the presence of more the code, because we don't touch the hash. I tried with SH_SCOPE `static` or `static pg_noinline` but that doesn't help either. Assuming one ReadBuffer/ReleaseBuffer per row, we can infer infer that it was ~3ms / 5e5 = 6ns slower. On micro benchmarking it cuts the gap by half when holding 100 to 1000 buffers. [image: image.png] If we can accept one more pointer dereference, by having a pointer instead of a static array we can reduce by the ramp by 80% (and no, that is not achieved by placing the bottom of the ramp half way up hehe) Regards, Alexandre
