Repository navigation
Serve the JDBC metastore's rows again, for as long as it exists - #488
Merged
Merged
Conversation
em3s
force-pushed
the
feat/restore-metastore-dump
branch
2 times, most recently
from
August 11, 2026 02:59
2836f45 to
d0db78c
Compare
#418 removed `MetastoreInspector` and its dump endpoints as dead code, which they were. Something calls them now: `jdbc-metastore remaining` (#487) measures how much room each metadata scan window has left, and this is the only view of the rows such a scan actually reads. A `DELETE` rewrites its row with `Active.INACTIVE` instead of removing it, and `scanStorage` applies its `LIMIT` before anything filters on active, so every path above this one hides exactly what needs measuring. Scaffolding for the move to EdgeIndex, so it is named for the store it reads - `JdbcMetastoreInspector`, not a name claiming the general concept - and goes when that store does. Narrower than what was removed. No `prefix`: it built `k LIKE '<prefix>%'` unescaped over base64url keys, whose `_` is a LIKE wildcard. No `sort`: `id ASC` is the primary key, so paging walks an index that already exists. No `/local`: no backing store for it on `main`. The row is `id`, `k` and four decoded fields. The request shape still matches 0.4.x, so one client reads both. Blocking JDBC work goes to `boundedElastic`, which the removed version did not do. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
em3s
force-pushed
the
feat/restore-metastore-dump
branch
from
August 11, 2026 04:22
d0db78c to
17ff789
Compare
Contributor
Author
|
Optimistic |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
#418 removed
MetastoreInspectorand its dump endpoints as dead code, which they were. Something calls them now:jdbc-metastore remaining(#487) measures how much room each metadata scan window has left, and this is the only view of the rows such a scan actually reads. ADELETErewrites its row withActive.INACTIVEinstead of removing it, andscanStorageapplies itsLIMITbefore anything filters on active, so every path above this one hides exactly what needs measuring.Scaffolding for the move to EdgeIndex. It exists to see where deployments stand until the JDBC metastore is gone, and goes with it — hence
JdbcMetastore*rather than a name claiming the general concept.Narrower than what was removed:
prefix. It builtk LIKE '<prefix>%'unescaped over base64url keys, whose_is a single-character LIKE wildcard, so roughly a third of prefixes matched other windows' rows.sort.id ASCis the primary key, so paging walks an index that already exists. The parameter is accepted and ignored./local. No backing store for it onmain.id,kand four decoded fields.v, the property map, timestamp, direction and type are dropped.The request shape still matches 0.4.x, so one client reads both. Blocking JDBC work goes to
boundedElastic, which the removed version did not do.Changes
JdbcMetastoreInspectorwithdump(limit, offset)andcount()JdbcMetastoreControllerservingGET /graph/v2/metastore/globalHow to Test
{"id": 2, "k": "d2--KjRsb2NhbDpvcmlnaW4AK-m6YsMpfQ:3464656d6f00", "decoded": {"active": true, "src": "local:origin", "tgt": "demo", "labelId": 1773822659}}Deactivate then delete that service: the row stays, with
active: false, and the table is no shorter. That is the premise, and a test pins it.The CLI reads it unchanged:
Not touched
The
COUNT(*)per page, which keeps the response a SpringPageand compatible with 0.4.x. The table is small enough that it does not matter.The root cause —
scanStoragestill cannot filter onactivein SQL, andgetAllstill discardshasNext. EdgeIndex is where that gets fixed.AI Assistance