Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
b2703d9
feat: add hypergraph backend mode config
parkermeng2024 Jun 10, 2026
3181536
fix: require explicit NebulaGraph validation
parkermeng2024 Jun 10, 2026
812ff09
fix: align NebulaGraph fallback config key
parkermeng2024 Jun 10, 2026
64155a7
feat: add NebulaGraph canonical IDs
parkermeng2024 Jun 10, 2026
c398d2f
fix: make NebulaGraph ID payloads unambiguous
parkermeng2024 Jun 10, 2026
e90f84c
feat: define NebulaGraph hypergraph schema
parkermeng2024 Jun 10, 2026
86ec83d
test: strengthen NebulaGraph schema contract coverage
parkermeng2024 Jun 10, 2026
caea54b
test: add NebulaGraph client test double
parkermeng2024 Jun 10, 2026
ad65132
feat: add NebulaGraph hypergraph storage adapter semantics
parkermeng2024 Jun 10, 2026
681c73c
fix: avoid implicit NebulaGraph vertex creation
parkermeng2024 Jun 10, 2026
ff0b6c5
feat: add mirror-only hgdb migration
parkermeng2024 Jun 10, 2026
cb6139d
fix: support object hgdb migration snapshots
parkermeng2024 Jun 10, 2026
5c380a3
fix: harden mirror migration entrypoints
parkermeng2024 Jun 10, 2026
65256c9
feat: add NebulaGraph schema CLI
parkermeng2024 Jun 10, 2026
20236da
fix: clarify NebulaGraph CLI schema output scope
parkermeng2024 Jun 10, 2026
542da42
feat: add NebulaGraph storage parity validation
parkermeng2024 Jun 10, 2026
68ae02e
fix: harden NebulaGraph parity mismatch reporting
parkermeng2024 Jun 10, 2026
5766989
feat: gate NebulaGraph serving behind validation
parkermeng2024 Jun 10, 2026
813a016
fix: preserve Web UI backend settings
parkermeng2024 Jun 11, 2026
febd4ca
fix: avoid defaulting omitted backend settings
parkermeng2024 Jun 11, 2026
df98378
feat: add NebulaGraph retrieval parity diagnostics
parkermeng2024 Jun 11, 2026
ed1fddd
fix: avoid overclaiming parity thresholds
parkermeng2024 Jun 11, 2026
0fc209c
docs: document NebulaGraph hypergraph storage rollout
parkermeng2024 Jun 11, 2026
55d2e67
docs: name NebulaGraph validation flags
parkermeng2024 Jun 11, 2026
e6f60e7
fix: keep NebulaGraph rollout checklist conservative
parkermeng2024 Jun 11, 2026
2c0e518
docs: add NebulaGraph migration proposal artifacts
parkermeng2024 Jun 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
87 changes: 87 additions & 0 deletions docs/nebulagraph-hypergraph-storage.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
# NebulaGraph Hypergraph Storage Rollout

## Default Behavior

HyperRAG continues to use the local `.hgdb` hypergraph store by default. Public query and upload APIs are unchanged during the NebulaGraph rollout.

NebulaGraph support is intentionally conservative. The current migration path is additive, and `.hgdb` remains the serving backend unless NebulaGraph serving is explicitly enabled and validated.

## Backend Modes

- `hgdb`: Use the existing `.hgdb` hypergraph store for reads and writes. This remains the default mode.
- `mirror-only`: Keep `.hgdb` serving user queries while mirroring hypergraph writes or migration output into NebulaGraph.
- `dual-read`: Keep `.hgdb` serving user queries while comparing NebulaGraph reads for parity checks and diagnostics.
- `nebulagraph-serving`: Serve hypergraph reads from NebulaGraph only after explicit enablement and validation.

## Conservative Enablement Policy

`mirror-only` and `dual-read` must not serve user-facing query responses from NebulaGraph. They are for migration, diagnostics, and parity validation while `.hgdb` remains the source used for user-visible retrieval.

`nebulagraph-serving` requires both:

- Backend mode set to `nebulagraph-serving`.
- The validation flag configured to allow NebulaGraph serving:
- `nebulagraph_validated` for backend/global config.
- `nebulaGraphValidated` for Web UI settings.

Do not enable `nebulagraph-serving` until storage parity and retrieval parity are implemented and passing. If NebulaGraph is unavailable, unvalidated, or misconfigured, use `hgdb` so `.hgdb` remains the serving backend.

## Current Commands

The implemented schema inspection command prints the local NebulaGraph schema DDL statements for the configured graph space:

```bash
./scripts/hyperrag_nebulagraph.py schema-check --space hyperrag
```

At this stage, the command prints the local schema statements only. It does not verify a remote NebulaGraph cluster.

## Current Limitations

The NebulaGraph rollout is not complete yet:

- CLI `migrate` and `validate` are parser placeholders and intentionally return an implementation-wiring error.
- Real NebulaGraph client writes are not complete.
- Remote schema verification is not complete.
- Retrieval parity checks for fixed question sets are not complete.
- Serving cutover to NebulaGraph is not complete.

These limitations mean NebulaGraph should be treated as migration groundwork only, not as a serving-ready replacement for `.hgdb`.

## Setup And Schema Initialization

Before attempting migration or validation work, prepare a NebulaGraph space such as `hyperrag` in the target NebulaGraph environment. Use the schema check command above to print the schema DDL statements expected by HyperRAG, then apply the statements through the NebulaGraph tooling used by your deployment.

Because remote schema verification is not implemented yet, manually confirm that the required tags, edge types, and indexes exist before relying on mirror or validation output.

## Mirror-Only Migration

Use `mirror-only` when wiring migration execution so `.hgdb` remains the serving backend while NebulaGraph receives mirrored data. This mode is intended to make migration repeatable and observable without changing user-facing retrieval behavior.

Do not use mirror-only results as proof that NebulaGraph serving is ready. Mirror-only mode must be followed by storage parity and retrieval parity validation.

## Validation

Use `dual-read` for parity validation work once the validation implementation is wired. In this mode, `.hgdb` remains the serving backend and NebulaGraph reads are compared for diagnostics only.

The quality gate for serving is:

- Storage parity implemented and passing.
- Retrieval parity implemented and passing for fixed question sets.
- Schema and migration completeness validation implemented and passing.
- Validation flag explicitly allows NebulaGraph serving.

Until those checks exist and pass, keep serving mode on `hgdb`.

## Failure Policy

If NebulaGraph connection, schema validation, migration validation, or parity validation fails, keep `.hgdb` as the serving backend. Mirror-only and dual-read failures should be treated as migration or validation failures, not as user-facing query failures.

## Rollback

Rollback is configuration-only for the public API surface:

- Set `hypergraphBackendMode` or `hypergraph_backend_mode` back to `hgdb`.
- Keep public query and upload API request and response contracts unchanged.

After rollback, HyperRAG should continue serving from the existing `.hgdb` hypergraph data.
Loading