Skip to content

perf: get_health_summary uses one query instead of 4 per source - #32

Merged
codeapplied merged 1 commit into
mainfrom
perf/health-summary-query
Sep 1, 2026
Merged

codeapplied merged 1 commit into
mainfrom
perf/health-summary-query

Conversation

@codeapplied

Copy link
Copy Markdown
Owner

Closes #29.

get_health_summary() previously ran 4 separate queries per source (last_run, last_success, error_count, total_runs) — 4N+1 total for N sources. Reworked to fetch every SyncLog row once (ordered newest-first) and aggregate per source in Python — O(1) queries regardless of source count.

Also closed a real coverage gap found while touching this file: there was no test_health.py at all before this. Added 8 tests covering empty-DB, single/multiple sources, error counting, and specifically that last_success correctly reflects an earlier success even when the most recent run failed (the reason last_success is tracked separately from last_run in the first place).

Verified: 64/64 tests pass (56 existing + 8 new); smoke-tested tendertracker health end-to-end, output unchanged from before the refactor.

@codeapplied
codeapplied merged commit 7803b1f into main Sep 1, 2026
1 check passed
@codeapplied
codeapplied deleted the perf/health-summary-query branch September 1, 2026 07:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

health.py: N+1 query pattern in get_health_summary

1 participant