Area: dedupe · ops — friction / docs · found via WaveHouse-Stats dogfooding
Expected: bounded dedupe memory + a clear durability contract.
Actual: an id is a duplicate forever — CheckAndMark never expires keys (internal/dedupe/embedded.go), so the Pebble set grows unbounded. The set is local; lose the data volume and previously-seen ids pass again. None of this is documented.
Impact (Stats): reinforced keeping Pebble on a persistent volume + a ReplacingMergeTree backstop. Unbounded growth is accepted at our volume, but the durability/retention contract should be explicit.
Scope: optional TTL or size cap, and document the durability contract (local-only, lost with the volume).
From WAVEHOUSE-FEEDBACK.md (WaveHouse-Stats dogfooding); validated by code-read against 0f8826c on 2026-06-04.
Area: dedupe · ops — friction / docs · found via WaveHouse-Stats dogfooding
Expected: bounded dedupe memory + a clear durability contract.
Actual: an id is a duplicate forever —
CheckAndMarknever expires keys (internal/dedupe/embedded.go), so the Pebble set grows unbounded. The set is local; lose the data volume and previously-seen ids pass again. None of this is documented.Impact (Stats): reinforced keeping Pebble on a persistent volume + a
ReplacingMergeTreebackstop. Unbounded growth is accepted at our volume, but the durability/retention contract should be explicit.Scope: optional TTL or size cap, and document the durability contract (local-only, lost with the volume).
From
WAVEHOUSE-FEEDBACK.md(WaveHouse-Stats dogfooding); validated by code-read against0f8826con 2026-06-04.