Skip to content

enhance: update snapshot design for collection lifecycle binding#25

Open
weiliu1031 wants to merge 2 commits intomilvus-io:mainfrom
weiliu1031:update/snapshot-lifecycle-binding
Open

enhance: update snapshot design for collection lifecycle binding#25
weiliu1031 wants to merge 2 commits intomilvus-io:mainfrom
weiliu1031:update/snapshot-lifecycle-binding

Conversation

@weiliu1031
Copy link

Summary

Update the snapshot design document to reflect the per-collection snapshot lifecycle binding changes implemented in #48143.

Key Additions

  • Snapshot Lifecycle Management section: design motivation for per-collection name scoping, cascade delete on drop collection (two-layer fault tolerance), RBAC privilege model at collection level, known limitations
  • DropSnapshotsByCollection WAL message type (MessageType=44) and implementation details
  • Orphan Snapshot GC detection in garbage collection section

Key Modifications

  • SnapshotManager interface: all methods now require collectionID parameter for per-collection name scoping
  • Snapshot lifecycle flowchart: separate single drop vs cascade drop on drop collection
  • Restore Phase 1: source-target collection separation with full parameter propagation chain
  • API Reference: unified per-collection scoping changes table, restructured RestoreSnapshot API with explicit source/target distinction
  • CopySegmentJob: added source_collection_id field for restore operations

Test plan

  • Review design doc changes against actual code implementation
  • Verify all proto field numbers match data_coord.proto and messages.proto
  • Verify API descriptions match proxy layer validation logic

🤖 Generated with Claude Code

Update the snapshot design document to reflect the per-collection snapshot
lifecycle binding changes implemented in milvus-io/milvus PR #48143.

Key additions:
- Snapshot Lifecycle Management section: design motivation, per-collection
  name scoping, cascade delete on drop collection, RBAC privilege model
- Two-layer fault tolerance: synchronous cascade delete + async GC fallback
- DropSnapshotsByCollection WAL message type and implementation details
- Known limitations documentation

Key modifications:
- SnapshotManager interface: all methods now require collectionID parameter
- DropSnapshotsByCollection added to SnapshotMeta core functions
- Orphan snapshot GC detection in garbage collection section
- Snapshot lifecycle flowchart: separate single drop vs cascade drop
- Restore Phase 1: source-target collection separation with propagation chain
- API Reference: unified per-collection scoping changes table,
  restructured RestoreSnapshot API with source/target distinction

Signed-off-by: Wei Liu <wei.liu@zilliz.com>
@sre-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: weiliu1031
To complete the pull request process, please assign czs007 after the PR has been reviewed.
You can assign the PR to them by writing /assign @czs007 in a comment when ready.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Add comprehensive design documentation for the dual-layer compaction
protection mechanism that prevents snapshot-referenced segments from
being compacted during a user-specified protection window.

Signed-off-by: Wei Liu <wei.liu@zilliz.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants