PERF-CAT-001 — Bound Catalog search without loading the entire tree
| Field | Value |
|---|---|
| Status | Open finding; source-verified, scale boundary unmeasured |
| Severity | Medium |
| Affected surface | Catalog and SQL Editor tree search |
| Implementation issue | oqullus #532 |
| Code-change repository | sparqd/oqullus |
Where the problem appears
Search for an object that has not yet been expanded and record discovery requests, concurrency, latency, cancellation, and browser memory.
Concrete observed case
Search recursively loads unloaded catalogs and schemas before filtering locally. A single term can therefore enumerate the complete visible namespace and retain it in browser state.
Expected condition
Provide authorized server-side search with bounded results, pagination, cancellation, and explicit partial/error states. Preserve canonical catalog-qualified identity in every result.
Cause and evidence
- Unloaded nodes are fetched as part of client search.
- Filtering begins only after discovery data reaches the browser.
- No supported catalog, schema, table, request, latency, or memory boundary is declared.
Why it matters
Search latency and browser memory grow with the entire namespace rather than the result set, while failures can silently produce incomplete results.
Existing controls and workarounds
Navigate through known catalog and schema paths instead of broad search in large workspaces.
Alternatives considered
- Recommended: bounded server-side search over authorized metadata.
- Search only already loaded nodes — cheap but must be explicitly labelled incomplete.
- Continue recursive loading with concurrency limits — reduces spikes but still scales with total namespace.
Component involvement
- BFF owns authorized bounded search and pagination.
- Oqullus owns debouncing, cancellation, result state, and identity.
- Operations measures representative scale and latency.
Reproduction and verification
Follow CAT-S008. Record the visible state, request outcome, effective identity, and recovery behavior relevant to this finding.
Resolution conditions
Close when supported scale and latency boundaries are measured and search remains bounded, cancellable, complete within its declared scope, and explicit about partial failure.
Validation and blockers
Oqullus and BFF owners must agree on the search contract; representative-scale evidence is missing.