Repository navigation
Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #3430 +/- ##
============================================
+ Coverage 57.27% 58.13% +0.86%
+ Complexity 6577 3087 -3490
============================================
Files 776 781 +5
Lines 68881 69717 +836
Branches 9431 9640 +209
============================================
+ Hits 39449 40532 +1083
+ Misses 25804 25507 -297
- Partials 3628 3678 +50
*This pull request uses carry forward flags. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
bitflicker64
left a comment
There was a problem hiding this comment.
Blocking: yes. Summary: The official-source workflow this PR adds fails at this head, so it lands a check that is red on every run. The rewrite kernel's source lock, isolated output, plan revalidation and reopen verification read correctly against the GraphIdManager and InnerKeyCreator layouts, and native-rekey passes.
| baseline = json.loads((evidence / "fixture-read.json").read_text()) | ||
| checks = [entry for entry in baseline if entry["step"].startswith("gremlin ")] | ||
| if len(checks) != 16 or any(entry["status"] != 200 for entry in checks): | ||
| raise RuntimeError("The official source did not pass all 16 fixture requests") |
There was a problem hiding this comment.
Important: the official-source job in .github/workflows/graphid-official-source.yml fails at this head on this check, so the PR adds a workflow that is red on every run and never produces the 1.7 source it exists for. Fix the fixture run so all 16 Gremlin requests pass, or drop the workflow and script from this PR until they do.
| <modelVersion>4.0.0</modelVersion> | ||
| <groupId>org.apache.hugegraph</groupId><artifactId>graphid-rekey-probe</artifactId><version>1</version> | ||
| <dependencies> | ||
| <dependency><groupId>org.rocksdb</groupId><artifactId>rocksdbjni</artifactId><version>8.10.2</version></dependency> |
There was a problem hiding this comment.
Minor: the GraphIdRewriter probes run only here, against a hard-coded rocksdbjni 8.10.2 and only when these files change, so a rocksdb.version bump in the root pom.xml changes the native library under the shipped kernel without re-running them. Move the probes into hg-store-test as JUnit tests so pd_store / store runs them on the reactor's versions.
Before → After
Before: The startup/snapshot guard can reject ambiguous legacy GraphIDs, but it does not convert physical keys for a 1.7 → 1.8 upgrade.
After: Add an experimental database-level conversion kernel that builds an explicit ownership plan, rewrites GraphID prefixes in an isolated output directory, and reopens and verifies the result before marking it
DB_VERIFIED_NOT_CLUSTER_READY. The source is preserved; output is never activated automatically. This avoids treating a mapping-only update or a Server API export/import as physical conversion.Validation boundary
This is an experimental prototype, not a completed upgrade tool or a merge-readiness claim. Ownership rules must be independently established; successful database checks do not establish cluster readiness. Official 1.7 fixture validation, Raft/snapshot coordination, cluster cutover/rollback, production-scale performance, and the user-facing CLI remain incomplete. This PR does not resolve issue #3224.
At the source head checked for submission, the rekey experiment workflow succeeded, while the official-source fixture workflow failed during source generation; the root cause is unconfirmed. Main CI is still queued. These results do not establish end-to-end upgrade safety.
Source PR: 🔗 hugegraph/hugegraph #353
Visual overview
Experimental offline conversion rewrites physical GraphID prefixes into a fresh isolated output using externally established ownership rules, preserves the source, and reopens the candidate for database checks. A successful database check yields DB_VERIFIED_NOT_CLUSTER_READY, never automatic activation. Official 1.7 ownership, Raft/snapshot coordination, replica cutover/rollback, CLI and production-scale qualification remain incomplete.