matrixorigin / matrixorigin/matrixone

[Subtask]: Implement durable View metadata generations and recovery

Open
#29,005 0 comments 0 reactions 1 assignee Claimed by @ck89119 View on GitHub
kind/subtask
Dominant language
Go
Stars
1.9k
Forks
311
Avg merge
1d 3h
Merged PRs (30d)
768

Description

### Parent Issue

Parent issue: #26227

### Detail of Subtask

Implement durable catalog generations and bounded View metadata recovery without enabling public metadata admission.

Deliverables:

- Durable required/completed generation markers.
- Claim owner, claim generation, deadline, cursor, and bounded page/retry semantics.
- Conditional publication that rejects stale workers.
- Dependency graph persistence and affected reverse-closure invalidation.
- Scoped table/database/account restore reconciliation, orphan cleanup, and restored-View seeding.
- Correct account, subscription, snapshot, and temporarily unavailable dependency contexts.

Acceptance criteria:

- Worker crash/restart and claim takeover cannot move progress backward.
- Stale generations cannot publish completion.
- Table restore does not degrade into account-wide reset.
- Another CN cannot observe a restored target as current before recovery completion.
- Recovery work is bounded and fair across more than one page.
- Public admission remains disabled or test-only until the activation subtask.

### Describe implementation you've considered

Keep HAKeeper responsible only for barrier ownership. Store recovery truth in transactional catalog rows and use generation-scoped compare-and-swap updates.

### Additional information

Depends on the wire/snapshot and HAKeeper barrier subtasks under #26227.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.