Environment: Azure Container Apps Job (D32-benchmark, 32 vCPU / 64 GiB), westus3
ClickHouse Cloud Production tier (3 replicas × 16 vCPU × 64 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 attempt at 100K scale)
Job execution: oc-exp-1k-p32-qfiramd
Image: commit 363a7726 (season accumulator wiring)

Backend: clickhouse, Scale: 100000 worlds, Environment: local
Streaming mode: totalWorlds=100000, chunkSize=500 [parallel=32]
PBP sink: clickhouse at ./pbp-parquet

Result: FAILED with OOM after ~3 hours.

Error:
  Unhandled exception. ClickHouse.Driver.Copy.ClickHouseBulkCopySerializationException:
    Error when serializing data
   ---> System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
  Pod exit code 139 (SIGSEGV / OOM).

Root cause: AmericanFootballSeasonAccumulator retains per-world state in
nested dictionaries (Dictionary<int worldIndex, Dictionary<string outcomeId,
double>>). At 10K scale this accounted for ~27 GB of the 41.4 GB peak RAM
(observed in the preceding 10K full-pipeline+season run). Linear projection
to 100K: ~270 GB — 4× the container's 64 GiB limit. The container OOM'd
during one of the PBP bulk-copy serialisations while the season accumulator
was holding 100K worlds worth of state.

Fix (not applied): refactor AmericanFootballSeasonAccumulator to match the
game accumulator pattern. Pre-allocate one double[worldCount] per outcome
at construction (or first use), write into positions by absolute world
index. Footprint becomes 1,668 outcomes × 100K × 8 bytes ≈ 1.3 GB regardless
of scale, same as the game accumulator's per-game state. ~2-hour code
change in LBS.Model.AmericanFootball.Accumulation.

Status: 100K full-pipeline WITH season context not viable with current
accumulator design. Highest validated full-pipeline+season scale is 10K
(1,088s / 18.1 min). The 100K full-pipeline without season context
SUCCEEDED in 9,887s (2h 44m); see streaming-cloud-scale-100000-fullpipeline-
prod3x16.txt for that run's numbers.
