Repository navigation
docs: explain legacy GraphID upgrade preflight #523
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -246,3 +246,25 @@ curl http://localhost:8080/metrics/backend | |
| The `nodes` value in the response is the count of active stores PD returns. A `nodes` value of `0` means the | ||
| Server reached PD but PD has no store in state `Up`, which usually means the Store nodes have not registered | ||
| yet, or registered as `Pending` because they are not in PD's `pd.initial-store-list`. | ||
|
|
||
| ### 9 Legacy GraphID upgrade preflight | ||
|
|
||
| The following checks apply only to Store builds containing the implementation proposed in | ||
| [Apache HugeGraph #3330](https://github.com/apache/hugegraph/pull/3330). | ||
| This change is not yet merged into Apache HugeGraph or included in an Apache release. Earlier 1.8 builds do not guarantee this guard; verify that your | ||
| build contains the fix before relying on the refusal behavior below. | ||
|
|
||
| These Store builds check existing graph-data column families before allocating a missing graph ID, first opening a cold | ||
| partition DB during metadata bootstrap, starting its Raft state machine, or activating a staged snapshot. Before pruning, the first cold DB open checks | ||
| all retained valid versions. Reserved `FFFE` legacy rows cause refusal. | ||
| An incomplete selected DB version without `CURRENT` is also rejected when it would hide retained valid versions. This concerns affected old write paths; | ||
| it does not mean that every 1.7 database needs migration, and the persisted ID format is unchanged. | ||
|
|
||
| On refusal, preserve the original data DB versions, metadata, WAL and incoming/staged snapshots. Investigate the affected write and upgrade history before | ||
| resuming writes or replay. Do not delete graph-to-ID mappings or assign all reserved-prefix rows to one graph: different graphs may share that prefix. | ||
| Store/Raft location metadata may already have been updated before the check, so the entire bootstrap is not read-only. The check performs no automatic | ||
| migration or ownership repair; a complete 1.7 upgrade and recovery still require deployment-specific validation. | ||
|
|
||
| See the | ||
| [guide for the proposed revision](https://github.com/hugegraph/hugegraph/blob/27731930ce4573481ac2f01092a288b0db239b53/docs/store-graphid-upgrade.md) | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Minor: this guide link (and the one on line 226 of Evidence: 27731930 is the current head of apache/hugegraph#3330, and the same file resolves in the Apache repository: Requested change: use the apache/hugegraph URL for the pinned revision in both pages, and switch it to the |
||
| for details. | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Minor: "Earlier 1.8 builds do not guarantee this guard" is weaker than the code and leaves out the release people actually run (same wording on line 215 of the Chinese page: "更早的 1.8 构建不保证具备该保护").
Evidence:
git grep -c "checkLegacyGraphIdData\|resolveExistingDBPath" origin/master -- hugegraph-storeon apache/hugegraph master (0b7c0de3e) returns nothing, and the 1.7.0 tag has neither method. 1.7.0 is also where the sentinel comes from (GraphIdManager.maxGraphID = 65535 - 1, which is0xFFFE). So the check is absent from 1.7.0 and from every master build so far, not merely unguaranteed, and a 1.7.0 operator reading "earlier 1.8 builds" is not told that their Store never refuses.Requested change: state it as a fact in both pages, for example "No Apache release, including 1.7.0, and no
masterbuild before #3330 contains this check". This sentence and "not yet merged" also need an update in the same change that merges #3330, so please note that on the code PR.