Skip to content

[Store] Add post-publish snapshot object GC - #4049

Draft
Icedcoco wants to merge 2 commits into
kvcache-ai:mainfrom
Icedcoco:dev/oplog-ha-prs/N11
Draft

[Store] Add post-publish snapshot object GC#4049
Icedcoco wants to merge 2 commits into
kvcache-ai:mainfrom
Icedcoco:dev/oplog-ha-prs/N11

Conversation

@Icedcoco

@Icedcoco Icedcoco commented Sep 11, 2026

Copy link
Copy Markdown
Collaborator

Description

Initial N11 implementation for #3167 and #3808: after successful batch-OpLog snapshot publication, read latest/fallback manifests and delete unprotected attempt prefixes under the batch-oplog object root. New code lives under ha/snapshot/batch_oplog/.

This draft is incomplete and not ready to merge. Remaining work includes exact post-publish pointer comparison, full manifest/artifact validation, lease rechecks before deletion, promotion/Stop cancellation, exception isolation preserving successful publication, and GC/integration tests.

Scope differs from #3221 (LOCAL_DISK bucket GC) and #1381 (etcd snapshot object-store backend): this change targets batch-OpLog snapshot attempts only; it does not prune OpLog or set compaction floors.

Module

  • Transfer Engine (mooncake-transfer-engine)
  • Mooncake Store (mooncake-store)
  • Reshard (mooncake-reshard)
  • Mooncake EP (mooncake-ep)
  • Mooncake PG (mooncake-pg)
  • Integration (mooncake-integration)
  • P2P Store (mooncake-p2p-store)
  • Python Wheel (mooncake-wheel)
  • Common (mooncake-common)
  • Mooncake RL (mooncake-rl)
  • CI/CD
  • Docs
  • Other

Type of Change

  • Bug fix
  • New feature
  • Refactor
  • Breaking change
  • Documentation update
  • Performance improvement
  • Other

How Has This Been Tested?

Pre-commit passed on the four changed files, including formatting during commit. Build attempted but could not run because this worktree has no build directory. No unit or integration tests were run.

Test commands:

pre-commit run --files mooncake-store/include/ha/snapshot/batch_oplog/batch_oplog_snapshot_gc.h mooncake-store/src/ha/snapshot/batch_oplog/batch_oplog_snapshot_gc.cpp mooncake-store/src/ha/snapshot/batch_oplog/batch_oplog_snapshot_coordinator.cpp mooncake-store/src/CMakeLists.txt

Test results:

  • Unit tests pass
  • Integration tests pass (if applicable)
  • Manual testing done (describe below)

Checklist

  • I have performed a self-review of my own code
  • I have formatted my code using ./scripts/code_format.sh
  • I have run pre-commit on the files changed in this PR and all hooks pass
  • I have updated the documentation (if applicable)
  • I have added tests to prove my changes are effective
  • For changes >500 LOC: I have filed an RFC issue

AI Assistance Disclosure

  • No AI tools were used
  • AI tools were used (specify below)

Codex generated the implementation and PR description. Human review of every changed line remains pending.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant