@@ -304,8 +304,11 @@ The target architecture is:
|
||||
### 3. Phase 3: Postgres-Ready Scale-Up
|
||||
- [x] Validate/add canonical `vm_hourly_stats` indexes for snapshot time, vCenter+time, VM identity+time, and trace lookup.
|
||||
- [x] Add PostgreSQL monthly partitioning for `vm_hourly_stats` behind migration controls.
|
||||
- [ ] Benchmark Go vs SQL on canonical Postgres tables using representative production-scale data.
|
||||
- Benchmark harness implemented via `-benchmark-aggregations` and `-benchmark-runs`; production-scale Postgres run pending.
|
||||
- [x] Benchmark Go vs SQL on canonical Postgres tables using representative production-scale data.
|
||||
- Production-scale Postgres run completed on 2026-04-21 via one-shot canonical benchmark (`-benchmark-aggregations` with `runs_per_mode=1`, `driver=postgres`).
|
||||
- Daily window `2026-04-20T00:00:00Z` to `2026-04-21T00:00:00Z`: Go `4.000602432s` (`14881` rows) vs SQL `1h17m19.039092561s` (`14920` rows), with Go ~`1159.59x` faster on this run.
|
||||
- Monthly window `2026-04-01T00:00:00Z` to `2026-05-01T00:00:00Z`: Go `3.529410947s` (`15871` rows) vs SQL `3.313037973s` (`15873` rows), near parity with SQL slightly faster (~`0.216s`, `6.1%`).
|
||||
- Decision remains unchanged: keep Go as scheduled default and treat SQL as fallback/backfill until SQL shows a clear, repeatable runtime win across canonical workloads.
|
||||
- [x] Keep Go as scheduled default unless SQL shows clear and repeatable runtime wins.
|
||||
- [x] If SQL wins, roll out behind a controlled flag before any default switch.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user