Environment: Azure Container Apps Job (workload profile D32-benchmark, 16 vCPU / 32 GiB) Region: westus3 (same region as ClickHouse Cloud) ClickHouse: Cloud Production Scale tier (2 replicas × 4 CPU × ~8 GiB) Connection: HTTPS port 8443, Compression=true, set_async_insert=1, set_wait_for_async_insert=0 Job execution: oc-exp-1k-p32-7evdq5y Image: ocexperimentacr.azurecr.io/storage-experiment:latest (commit e7cc5618 — cap final-merge parallelism at 4) Timestamp: 2026-04-19T11:15 UTC Backend: clickhouse, Scale: 100000 worlds, Environment: local Streaming mode: totalWorlds=100000, chunkSize=1000 [PBP DISABLED] [parallel=32] PBP sink: local at ./pbp-parquet Streaming Run Report -------------------- Total wall time: 2991.02 s Simulation time: 1530.41 s OC write time: 232.59 s PBP write time: 0.00 s Merge time: 1210.22 s Peak working set: 16720.5 MB Chunks completed: 100 OC rows (merged): 244,800 PBP rows (written): 0 Notes: - First 100K attempt (oc-exp-1k-p32-8s0xvkb) failed at minute ~35 during the final merge with ClickHouse server-side MEMORY_LIMIT_EXCEEDED (Code: 241). Cause: N=32 parallel arrayFlatten queries each needing ~680 MB working set = ~22 GB, exceeding the Production Scale replica's ~14 GiB per-query budget. - Fix (commit e7cc5618): cap final-merge parallelism at 4 regardless of how many workers run simulation and OC writes. Merge is server-bound, not client-bound, so extra client concurrency only hurt. - Retry (this run) succeeded in 49.85 min with peak client RAM 16.7 GB.