Skip to main content

PERF-ONT-005 — Bound workbook query fan-out

FieldValue
StatusOpen finding; source-verified; concurrency boundary pending
SeverityHigh
Componentssparqd/oqullus, sparqd/ontology, Cube, Trino
Associated issuesNot opened pending finding review

Concrete observed case​

Workbook list has no pagination and is filtered in the browser. Dashboard open starts one asynchronous semantic query per selected tab without a concurrency budget. Proposal impact loads every workbook detail, and rename merge scans all project workbook tabs synchronously before commit.

Expected condition​

Workbook discovery is server-paged and summarized. Dashboard execution uses a fair, cancellable concurrency budget with per-chart queue and terminal state. Impact and rename lookup use indexed or batched dependencies with a measured merge transaction limit.

Why it matters​

One dashboard can burst queries into Cube/Trino, while workbook count increases page latency and lengthens a governance transaction. Concurrent users multiply the burst.

Existing controls and workarounds​

Users can reduce dashboard tabs manually. There is no enforced concurrency, workbook-count, or transaction-size boundary.

Alternatives considered​

  1. Recommended: server paging, bounded dashboard scheduler, and maintained dependency index or batched merge reads.
  2. UI-only concurrency pool — useful immediately, but backend admission remains necessary across clients.
  3. More Cube/Trino replicas — does not bound bursts or merge scans.

Component involvement​

  • Oqullus queues panels and presents independent state/cancellation.
  • Ontology pages workbooks and supports efficient dependency lookup.
  • Cube/Trino enforce shared admission and resource limits.

Reproduction and verification​

Follow ONT-S018.

Resolution conditions​

Close when supported workbook/tab/dashboard limits and concurrency are stated, enforced, and covered by merge/query benchmarks.

Validation and blockers​

The fan-out paths are source-confirmed. A populated workbook set and concurrent query test are pending.