Re: explain analyze rows=%.0f - Mailing list pgsql-hackers

From Robert Haas
Subject Re: explain analyze rows=%.0f
Date
Msg-id CA+TgmoZp7LstKmDwyfUuB+6aFFhn0N3fv2QxTD=dkrxXVJ5dZA@mail.gmail.com
Whole thread Raw
In response to Re: explain analyze rows=%.0f  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
On Fri, Feb 21, 2025 at 9:11 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:
> I apologize if I ruffled your feathers.  But the buildfarm is a shared
> resource and it doesn't do to leave it significantly broken over a
> weekend, which I feared you might be about to do.  Committing stuff
> at 4PM on a Friday is perhaps not the best plan if your intention
> is to not work weekends.

I really, really think we need some policy changes. Several committers
have told me that they literally won't commit anything on Friday for
fear of this exact kind of problem, but that means we lose a lot of
hours every week that people could potentially be dealing with patches
that have been waiting for an exceedingly long time for someone to
commit them. I feel like this is entirely a self-inflicted injury. We
could decide that CI is primary and the buildfarm is secondary, so
that as long as CI is green, you have a week to deal with anything
else that breaks. We could decide, as I said on the new thread I
started, to insist on having a vehicle for pre-commit buildfarm
testing. We could decide to just chill out over a couple of lines of
regression test diffs over a weekend where most people aren't going to
be working anyway. We could *at the very least* decide that you get 24
hours before you have to revert, perhaps with an exception if we're in
the last 14 days before feature freeze. There are probably other
things we could do. Yelling at people every time a patch turns the
buildfarm red for a few hours seems worse to me than MANY of the other
options.

Really, I feel like the way the buildfarm works is a relic of the
past. We're living in an era where cfbot is testing hundreds of
branches on a daily basis, all of which are completely untrusted code
downloaded from the Internet, but our buildfarm can't manage more than
about six and can't provide any testing resources even to committers.
In 2025, that's really far from the state of the art -- and CI seems
to be progressing a great deal faster than the BF, so the gap between
them figures to only get wider.

> On a positive note, at least some of the formerly-pink members
> seem to be happy now.  So as you hoped, we can get more info about
> whether there are less-frequent problems.

Cool.

> As for a permanent fix: maybe, instead of printing fractions when
> actual nloops > 1, we should print fractions if *potential*
> nloops > 1?  That is, anytime we're on the inside of a nestloop,
> under a Gather, etc.  Seems like this'd not be too hard to track
> while recursively descending the PlanState tree.

I guess we could do that, but how about just always displaying two
decimal places? I feel like you're really worried that people will be
confused if the row count is not an integer, but I'm not sure anyone
else has echoed that concern, and I am doubtful that it's really a
problem. Either people don't understand that the row count is divided
through by nloops, in which case the decimal places might actually
give them a clue that they've misunderstood, or they do understand
that, in which case the decimal places are not confusing. I feel like
we've gone to a lot of trouble to come up with complex solutions --
what was actually committed was one of the simpler things proposed --
but I am still not convinced that the simplest solution isn't for the
best.

--
Robert Haas
EDB: http://www.enterprisedb.com



pgsql-hackers by date:

Previous
From: Andres Freund
Date:
Subject: Re: explain analyze rows=%.0f
Next
From: Robert Haas
Date:
Subject: Re: a very significant fraction of the buildfarm is now pink