Skip to content

enhance: add support idempotent write#86

Open
tinswzy wants to merge 4 commits intozilliztech:devfrom
tinswzy:feature_idempotent_write
Open

enhance: add support idempotent write#86
tinswzy wants to merge 4 commits intozilliztech:devfrom
tinswzy:feature_idempotent_write

Conversation

@tinswzy
Copy link
Copy Markdown
Collaborator

@tinswzy tinswzy commented Feb 6, 2026

issue: #82

tinswzy and others added 4 commits February 5, 2026 12:15
… time

Signed-off-by: tinswzy <zhenyuan.wei@zilliz.com>
Signed-off-by: tinswzy <zhenyuan.wei@zilliz.com>
Stop deleting checkpoint.blk during Finalize() so that future
asynchronous tasks (e.g. index building, bloom filter generation) can
read existing sections or append new ones to it.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
    Implement idempotent write capability to prevent duplicate log entries
    when clients retry writes during network failures or timeouts.

    Key components:
    - IdempotentWriter: LogWriter wrapper with deduplication logic
    - DedupWindow: Time and capacity bounded sliding window for tracking
      committed idempotencyIds with Pending/Committed states
    - DedupSnapshotManager: Persists dedup state to object storage for
      crash recovery

    Features:
    - Auto-derive idempotencyId from payload MD5 if not provided
    - Concurrent duplicate writes handled via sync.Cond
    - Periodic snapshots with gap-based recovery
    - Configurable window duration (default 5min) and capacity (default 1M)

Signed-off-by: tinswzy <zhenyuan.wei@zilliz.com>
@tinswzy tinswzy added the enhancement New feature or request label Feb 6, 2026
@tinswzy tinswzy force-pushed the dev branch 4 times, most recently from c12c99a to f295753 Compare March 18, 2026 12:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant