matrixorigin / matrixorigin/matrixone

[Subtask]: Implement HAKeeper catalog metadata capability barrier

Open
#29,004 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 the generic HAKeeper catalog-metadata capability barrier defined by the approved phase-1 wire contract.

Deliverables:

- Durable protocol floor and membership epoch ownership in the HAKeeper RSM.
- Versioned CN, Proxy, and LogStore capability capture.
- PREPARING/SEALED/CATALOG_REQUIRED/RECOVERING/ACTIVATED transitions without enabling View refresh yet.
- Generation fencing for restart, same-UUID replacement, late old members, rollback, and leader/snapshot recovery.
- Combined snapshot recovery preserving both the existing persisted-expression activation state and the new barrier state.

Acceptance criteria:

- Persisted-expression activation and catalog-metadata barrier state cannot overwrite or falsely complete each other.
- Unsupported live members prevent activation deterministically.
- Old/stale generations cannot publish readiness.
- Normal, race, snapshot, and mixed-version HAKeeper/LogStore/CN tests pass.
- View lifecycle remains runtime-disabled after this subtask merges.

### Describe implementation you've considered

Use one HAKeeper membership authority with independently versioned capabilities and terminal predicates. Keep business catalog scanning outside the RSM.

### Additional information

Depends on the approved wire/snapshot contract subtask 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.