Skip to content

Optional TTL/size bound on the dedupe store + durability docs #220

Description

@EricAndrechek

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.

Activity

  1. EricAndrechek commented on Jun 4, 2026

    @EricAndrechek
    MemberAuthor

    Corroboration from nas-observability dogfooding (jfwoods, 2026-05-11): independently flagged the same unbounded Pebble growth — CheckAndMark does Set(key, unixNano, pebble.Sync) and never deletes, so the store grows for the life of the deployment; mitigated there by wiping ${NAS_DATA_ROOT}/wavehouse/pebble between runs. Suggested shape: a configurable WH_DEDUPE_TTL applied as a periodic compaction/GC sweep for Pebble.

    (Note: an older audit also flagged the ScyllaDB/distributed dedupe backend's lack of TTL — that backend has since been removed, so embedded Pebble is the whole surface now.)

  2. EricAndrechek commented on Sep 25, 2026

    @EricAndrechek
    MemberAuthor

    @/tmp/pr_edits/comment5826494260.md

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/dedupeDeduplication (Pebble, ScyllaDB)area/docsDocumentation, site/, READMEdocumentationImprovements or additions to documentationenhancementNew feature or request

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions