v1.2.0 — Performance at Scale
Performance at Scale
Resolves gateway timeouts on the overview page with large datasets (millions of rows). #27
Benchmark (100K jobs on PostgreSQL)
| Pain Point | Before | After | Speedup |
|---|---|---|---|
| Stats calculation | 75ms | 3ms | 24x |
| Chart data (1d) | 148ms | 22ms | 7x |
| Chart data (1w) | 771ms | 89ms | 9x |
| Filter queries | 7ms | 1.6ms | 5x |
| Queue stats (N+1) | 37ms | 7ms | 5x |
Changed
- BREAKING: Dashboard "Total Jobs" and "Completed" stats replaced with "Active Jobs" (sum of ready + scheduled + in-progress + failed)
Fixed
- Overview stats no longer query
solid_queue_jobs— all counts derived from execution tables - Chart data service uses SQL GROUP BY bucketing instead of loading timestamps into memory
- All filter methods use subqueries instead of unbounded
.pluck(:job_id) - Queue stats pre-aggregated, eliminating N+1 per-queue COUNT queries
Added
config.show_chartoption to disable the job activity chart and skip chart queries entirely
Full Changelog: v1.1.0...v1.2.0