perf/hardware summary perf - #2064
Conversation
de73f5d to
9119e6e
Compare
There was a problem hiding this comment.
this is probably intentional, but just checking. The builds are still joining tests, so they are not really being optimized like boots/tests, right?
There was a problem hiding this comment.
Good catch. I am including this on builds as well.
There was a problem hiding this comment.
nit: For this kind of change, it would be nice to have a before-and-after comparison to highlight the improvement. Just a nit though — no need to do it now.
There was a problem hiding this comment.
I agree. I am including a small local benchmark on the PR.
918227c to
cdd5a05
Compare
|
Local DB: 9.6M tests, 44k builds, 48k checkouts. Window: 2026-08-21 .. 2026-08-26 (5 days). Timed with Example platforms: Changed queries
Both on cc: @felipebergamin |
* Split platform test predicates into a UNION so each arm uses its index * Use array_position on the builds branch to avoid per-build GIN bitmaps * Probe tree heads via LATERAL on builds.build_id * Skip the unfiltered summary query when SQL already matches heads * Coerce hardware details timestamps so URL rewrite does not refetch Signed-off-by: Alan Peixinho <alan.peixinho@profusion.mobi>
89b2cb8 to
dc17beb
Compare
What
Faster hardware details
/summaryfor the default 5-day window. Same response.The tests-branch
ORon platform identity is split into aUNIONso each arm can use its index. The builds branch usesarray_positioninstead of@>so Postgres does not rebuild the compatible GINbitmap per build. Tree heads are probed with a
LATERALjoin onbuilds.build_id. The unfiltered summary query is skipped when the filtered SQL already matches head commits. Frontend timestamps are coercedto numbers so a URL rewrite does not refetch.
How to test
Confirm behavior is unchanged:
bcm2711-rpi-4-b, maestro, last 5 days) with no filters. Summary counts, trees, compatibles, and filter options matchmain.