72 lines
3.0 KiB
Markdown
72 lines
3.0 KiB
Markdown
# Phase Metrics Comparison and Gate Decisions
|
|
|
|
Date captured: 2026-04-20 (Australia/Sydney)
|
|
|
|
## Scope and method
|
|
|
|
- Baseline source: `phase0-baseline.md`.
|
|
- Post-change source: live local workspace state (`db.sqlite3`, `reports/`) and one-shot canonical benchmark run.
|
|
- Commands used:
|
|
- `sqlite3 -readonly db.sqlite3 "<query>"`
|
|
- `find reports -type f | wc -l`
|
|
- `go run . -settings settings.yaml -benchmark-aggregations -benchmark-runs 1`
|
|
|
|
## Baseline vs post-change snapshot
|
|
|
|
| Area | Metric | Baseline | Post-change | Delta | Gate |
|
|
| --- | --- | ---: | ---: | ---: | --- |
|
|
| Hourly capture | `snapshot_registry` hourly entries | 930 | 955 | +25 | PASS |
|
|
| Hourly capture | Hourly compatibility tables (`inventory_hourly_%`) | 930 | 955 | +25 | PASS |
|
|
| Hourly capture | Canonical cache rows (`vm_hourly_stats`) | 489865 | 491165 | +1300 | PASS |
|
|
| Hourly capture | Latest hourly snapshot row count (`snapshot_count`) | 52 | 52 | 0 | PASS |
|
|
| Daily aggregation | `snapshot_registry` daily entries | 39 | 39 | 0 | PASS |
|
|
| Daily aggregation | Daily summary tables (`inventory_daily_summary_%`) | 40 | 40 | 0 | PASS |
|
|
| Daily aggregation | Canonical daily rollup rows (`vm_daily_rollup`) | 1779 | 1831 | +52 | PASS |
|
|
| Daily aggregation | Latest daily snapshot row count (`snapshot_count`) | 52 | 52 | 0 | PASS |
|
|
| Monthly aggregation | `snapshot_registry` monthly entries | 1 | 1 | 0 | PASS |
|
|
| Monthly aggregation | Latest monthly snapshot row count (`snapshot_count`) | 62 | 62 | 0 | PASS |
|
|
| Report generation | Files present in `reports/` | 10339 | 10364 | +25 | PASS |
|
|
| Reliability | `snapshot_runs` total / success | 10254 / 10254 | 10279 / 10279 | +25 / +25 | PASS |
|
|
| Reliability | `snapshot_runs` attempts min/max/avg | 1 / 2 / 1.0001 | 1 / 2 / 1.0001 | unchanged | PASS |
|
|
|
|
## Operational runtime snapshot (post-change)
|
|
|
|
From `cron_status`:
|
|
|
|
- `hourly_snapshot`: `1069 ms`
|
|
- `daily_aggregate`: `1075 ms`
|
|
- `monthly_aggregate`: `515 ms`
|
|
- `snapshot_cleanup`: `1117 ms`
|
|
|
|
Gate decision:
|
|
|
|
- All observed job durations are far below configured job timeouts (`hourly=1200s`, `daily=900s`, `monthly=1200s`, `cleanup=600s`): PASS.
|
|
|
|
## Canonical aggregation benchmark snapshot (post-change)
|
|
|
|
Command:
|
|
|
|
- `go run . -settings settings.yaml -benchmark-aggregations -benchmark-runs 1`
|
|
|
|
Results (local SQLite dataset):
|
|
|
|
- Daily window (`2026-04-20`):
|
|
- Go: `12.676 ms` (`52` rows)
|
|
- SQL: `9.026667 ms` (`52` rows)
|
|
- Monthly window (`2026-04`):
|
|
- Go: `4.077125 ms` (`52` rows)
|
|
- SQL: `2.050708 ms` (`52` rows)
|
|
|
|
Gate decision:
|
|
|
|
- Benchmark execution and parity row counts: PASS.
|
|
- SQL default-promotion gate for Phase 3: NOT MET (still requires representative production-scale **Postgres** benchmark evidence).
|
|
|
|
## Decision record summary
|
|
|
|
- Data continuity and compatibility outputs: PASS.
|
|
- Canonical cache growth and aggregation continuity: PASS.
|
|
- Report output continuity: PASS.
|
|
- Reliability indicators (`snapshot_runs`): PASS.
|
|
- SQL promotion decision (Go vs SQL default): NO-GO pending production Postgres benchmark evidence.
|