Environment: Azure Container Apps Job (D32-benchmark, 32 vCPU / 64 GiB), westus3 ClickHouse Cloud Production tier (3 replicas × 16 vCPU × 64 GiB = 48 vCPU / 192 GiB) Connection: HTTPS, Compression=true, set_async_insert=1, set_wait_for_async_insert=0 PBP sink: clickhouse (direct bulk-copy, 4-way parallel per chunk) Season context: ENABLED (first Cloud-scale run with AmericanFootballSeasonAccumulator wired) Job execution: oc-exp-1k-p32-0dm8xz6 Image: commit 363a7726 (season accumulator wiring) via GH Actions build Backend: clickhouse, Scale: 10000 worlds, Environment: local Streaming mode: totalWorlds=10000, chunkSize=500 [parallel=32] PBP sink: clickhouse at ./pbp-parquet Streaming Run Report -------------------- Total wall time: 1088.47 s Simulation time: 228.83 s OC write time: 37.31 s PBP write time: 778.71 s Merge time: 19.64 s Season write time: 7.08 s Peak working set: 41426.1 MB Chunks completed: 20 OC rows (merged): 244,800 PBP rows (written): 419,873,051 Season rows written: 1,728 Notes: - First Cloud-scale full-pipeline run including season_outcome_context. Previous 10K full-pipeline runs only wrote game_outcome_context + PBP. - Season context overhead: 7.08s for 1,728 rows. Projection to 100K: ~70s linear (season accumulator state grows with world count, write is a single bulk-copy at end of run). - Sim time +30s vs non-season 10K — attributed to the lock-protected AmericanFootballSeasonAccumulator.AccumulateGame calls on the hot simulation path (288 games × 10K worlds = 2.88M locked calls). - Peak client RAM 41.4 GB (vs 14.1 GB in the prior 10K full-pipeline without season). Season accumulator retains per-world outcome state for all worlds until the final flush — this is by design of the SeasonOutcomeContext (Array(Float64) of length world-count per outcome) but accounts for ~27 GB of the peak at 10K. At 100K it will be ~4× larger ≈ 12 GB of season accumulator state, still within container budget. - OC rows 244,800 ✓, PBP rows 419.9M ✓, season rows 1,728 ✓.