imbajin opened a new pull request, #3270:
URL: https://github.com/apache/hugegraph/pull/3270
## Purpose of the PR
Related to hugegraph/hugegraph#257; carries the reviewed consolidation from
hugegraph/hugegraph#260 upstream.
Before this change, Server core and Struct maintain parallel shared types
and codecs, and PD/Store pull in graph-engine code. After this change,
Struct/Common own the shared implementation; Core retains graph execution,
transactions and TinkerPop integration.
This prepares the **1.8.0 Java/SPI migration** on the current master
revision. It does not change release version numbers. Affected Java
integrations must be recompiled, and Server/PD/Store must be upgraded together.
```mermaid
flowchart LR
Core[Core: graph engine and TinkerPop adapters] --> Struct[Struct:
shared types, queries and codecs]
Store[Store: storage and schema lifecycle] --> Struct
Struct --> Common[Common: utilities, JWT and RPC contracts]
PD[PD service] --> Common
```
These arrows describe shared ownership; Core still uses PD/Store clients for
HStore execution.
## Main Changes
- Consolidate IDs, schema metadata, base elements, queries, indexes,
analyzers and codecs in Struct. Remove duplicate implementations rather than
maintain parallel compatibility packages.
- Keep one property/state/adjacency owner. Core wrappers retain engine
callbacks, lazy loading, offheap access and TinkerPop adaptation.
- Move PD-backed schema connections, watches and cache lifecycle into Store.
Common owns JWT helpers and unchanged framework-free RPC configuration
contracts.
- Decode supported historical class names and Core enum ordinals at the
serialization boundary. Preserve canonical writer formats, including streamed
Kryo decoding.
- Preserve dependency versions when removing incidental Core/PD paths,
including Lucene analyzer alignment. Check resolved dependencies and actual
flat/Boot-packaged jars for forbidden edges and duplicate HugeGraph classes.
The following are deliberate behavioral repairs, not mechanical moves:
| Review area | Behavior to verify |
|---|---|
| Public Java/SPI | Relocated types and method descriptors require
recompilation; no permanent duplicate Core model remains |
| Element adapters | Property/state propagation, edge wrapper identity,
clone and offheap behavior |
| Codecs and queries | Frozen producer fixtures, old enum ordering, schema
key order, consistent StringId ordering and temporary versus persistent
property encoding |
| Indexes and OLAP | Server-compatible index keys; HStore compound
property/vertex keys, matching legacy fallback/delete, exact-owner reads and
bounded batches |
Old Store-shortened long-text index keys may require rebuilding affected
indexes. This migration does not rebuild them automatically. Previously
overwritten legacy OLAP values cannot be recovered, and mixed-version OLAP
writers are not supported. Details and Java mappings are in the [migration
guide](https://github.com/hugegraph/hugegraph/blob/feat/struct-consolidation-1.8/docs/shared-foundation-migration.md).
## Verifying these changes
- [ ] Trivial rework / code cleanup without test coverage.
- [x] Existing engine, analyzer, PD/Store and API tests, plus focused
shared-type and historical-data regressions.
- [x] Additional validation: clean JDK 11 compilation/package, frozen
old-producer fixtures, resolved dependency trees and distribution
ownership/inventory checks.
Local compilation, packaging, Struct and analyzer tests pass after
synchronization with master. Fresh upstream CI is required before merging.
Cluster startup validation is being completed; this PR stays draft while that
and the paired documentation handoff are finalized.
Toolchain/Computer consumer migrations are prepared locally and remain
unpublished. Their coordinated publication and validation are release
prerequisites, not evidence supplied by this repository's CI.
## Does this PR potentially affect the following parts?
- [x] Dependencies: runtime inventory and release license/notice coverage
are updated.
- [x] Modify configurations: Store PD namespace and migrated runtime imports.
- [x] The public API: Java/SPI ownership and descriptors.
- [x] Other affects: documented index and OLAP behavior.
- [ ] Nope
## Documentation Status
- [x] `Doc - TODO`: the paired bilingual website PR is prepared and will be
linked here before merging.
- [ ] `Doc - Done`
- [ ] `Doc - No Need`
In-repository documentation: `docs/shared-foundation-migration.md`.
Coordinate the code and website merges; passing CI alone does not establish
release readiness.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]