Background
Actionbase's original design used MySQL as the metastore. Today the catalog (database, table, alias) lives across two tiers: H2 (bootstrap constant metadata) and MySQL (operational metadata). This consolidates it onto a single default storage — the same datastore that holds data — and moves the representation from the v2 HASH model to the v3 Edge type, simplifying the architecture.
PRs will be split per task.
Task
Phase 1 breakdown — Overlay (HBase r/w -> MySQL read-only, override merge)
Phase 2 breakdown — Migration
Phase 3 breakdown — Contract (point of no return)
Done When
Operational metadata is stored in the default storage as v3 Edges, MySQL/H2/JDBC are removed, and existing behavior is preserved.
Notes
Phases 1–2 are reversible; only Phase 3 is irreversible. Related: #281, #173, #247, #234.
Background
Actionbase's original design used MySQL as the metastore. Today the catalog (database, table, alias) lives across two tiers: H2 (bootstrap constant metadata) and MySQL (operational metadata). This consolidates it onto a single default storage — the same datastore that holds data — and moves the representation from the v2 HASH model to the v3 Edge type, simplifying the architecture.
PRs will be split per task.
Task
Phase 1 breakdown — Overlay (HBase r/w -> MySQL read-only, override merge)
Overlay metastore label — PR: TBD
LocalBackedJdbcHashLabel.encode(src, tgt), HBase wins)v3 Edge indexed schema — PR: TBD
HBaseIndexedLabel= v3 Edge).Route operational metadata labels to the overlay — PR: TBD
service/storage/label/query/aliasto the overlayLabelEntity.materializebranch and theMetadata.ktstorage assignmentRework
MetastoreInspector— PR: TBDMetastoreInspectorqueries MySQL directly via SQL, bypassing the Label abstraction. Left as-is, new HBase metadata would be invisible./graph/v2/metastore/*shows both HBase and MySQL metadata.E2E parity tests — PR: TBD
Phase 2 breakdown — Migration
Backfill MySQL into HBase — PR: TBD
Reconciliation / shadow-compare — PR: TBD
SchemaEdge)Phase 3 breakdown — Contract (point of no return)
Collapse the overlay to a single HBase metastore — PR: TBD
HBaseIndexedLabel(drop the overlay wrapper)Move bootstrap constant seeding to HBase — PR: TBD
Remove MySQL/JDBC/H2 code, deps, and config — PR: TBD
JdbcStorage,JdbcHashLabel,LocalBackedJdbcHashLabel,LocalStorage,MetadataTable,schema.sql,StorageType.LOCAL/JDBCmetastore*configMetastoreInspectorDone When
Operational metadata is stored in the default storage as v3 Edges, MySQL/H2/JDBC are removed, and existing behavior is preserved.
Notes
Phases 1–2 are reversible; only Phase 3 is irreversible. Related: #281, #173, #247, #234.