# Scheduler Parity Report · 2025-12-14 ## Scope - Backfill and parity verification for Scheduler (Sprint 3402 · PG-T2.9–T2.11). - Compare MongoDB source vs PostgreSQL target for job/trigger/lease history. ## Inputs - Mongo snapshot: - Postgres target: - Backfill tool: `Scheduler.Backfill` (version/hash) - Config: `Persistence:Scheduler=Postgres` after backfill? yes/no ## Methods - Backfill steps: 1) Restore Mongo snapshot (if applicable) 2) Run Scheduler.Backfill CLI 3) Capture logs and row counts per table - Parity checks: - Table counts: jobs, triggers, leases, job_history, metrics - Trigger next_fire_at sampling (top 100 by tenant) - Determinism checks: order by next_fire_at, tenant_id, id - Advisory-lock contention smoke: Acquire/Release sequence on Postgres - Optional clean-start path: if start-clean approved, document rationale and skip Mongo counts. ## Results - Counts Mongo/Postgres: - Jobs: / - Triggers: / - Leases: / - Job history: / - Metrics: / - Determinism sample: pass/fail; details - Lock smoke: pass/fail; details - Issues found: ## Verdict - Parity status: PASS / FAIL / START-CLEAN (approved) - Cutover readiness: YES/NO ## Next Actions - If PASS: mark PG-T2.9–T2.11 DONE and flip Scheduler to Postgres-only. - If FAIL: log defects + owners; rerun after fixes. - If START-CLEAN: ensure configs set to Postgres-only and document empty baseline.