Re: scalability bottlenecks with (many) partitions (and more)

Andrew Dunstan <andrew@dunslane.net>

From: Andrew Dunstan <andrew@dunslane.net>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Andres Freund <andres@anarazel.de>, Tomas Vondra <tomas@vondra.me>, Jakub Wartak <jakub.wartak@enterprisedb.com>, Robert Haas <robertmhaas@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2025-03-04T23:25:53Z
Lists: pgsql-hackers

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Make FP_LOCK_SLOTS_PER_BACKEND look like a function

  2. Fix asserts in fast-path locking code

  3. Increase the number of fast-path lock slots

On 2025-03-04 Tu 5:28 PM, Tom Lane wrote:
> Andrew Dunstan <andrew@dunslane.net> writes:
>> I think I found a logic bug. Testing.
> Not sure what you are looking at, but I was trying to fix it
> by making the loop over test modules skip unbuilt modules,
> borrowing the test you added in v19 to skip unbuilt contrib
> modules.  It's a little more complicated for the other modules
> because some of them have no .c files to be built, and I could
> not get that to work.  I eventually concluded that there's
> something wrong with the "scalar glob()" idiom you used.
> A bit of googling suggested "grep -e, glob()" instead, and
> that seems to work for me.  sifaka seems happy with the
> attached patch.


Well, in scalar context it should give us back the first item found, or 
undef if nothing is found, AIUI.

But you're right, it might read better if I use a different formulation.


I didn't much like this, though:


+
+        # can't test it if we haven't built it
+        next unless grep -e, glob("$testdir/*.o $testdir/*.obj")
+            or not grep -e, glob("$testdir/*.c");
+


Too many negatives makes my head hurt.

I also note you said in a later email there were issues.


cheers


andrew

--
Andrew Dunstan
EDB: https://www.enterprisedb.com