Skip to content

feat(server): add workload governance for timeout, cancellation, and quotas#48

Merged
ganeshwhere merged 1 commit intomainfrom
staging
Mar 13, 2026
Merged

feat(server): add workload governance for timeout, cancellation, and quotas#48
ganeshwhere merged 1 commit intomainfrom
staging

Conversation

@ganeshwhere
Copy link
Copy Markdown
Owner

Summary

This PR adds workload-governance controls to the server so long-running or abusive queries can be bounded and interrupted cleanly instead of degrading overall stability.

What Changed

  • add statement timeout propagation through planner and executor execution paths
  • add cooperative cancellation checkpoints across scan, filter, projection, sort, join, update, and delete flows
  • add active statement tracking plus server APIs to list and cancel running statements
  • add CLI support for active statement inspection and cancellation via \queries and \cancel
  • enforce per-identity concurrent query quotas in the server session layer
  • enforce query result byte limits in addition to existing row-count limits
  • add runtime/admin counters for quota rejections, timed-out requests, canceled requests, and active statements
  • add integration coverage for timeout, cancellation, quota rejection, and cleanup of canceled explicit transactions

Validation

  • cargo check --locked
  • cargo test --locked --lib
  • cargo test --locked --test integration_server
  • ./tools/ci/run_integration_tests.sh

Related

…quotas

- add statement deadlines and cooperative cancellation across executor and MVCC scan paths
- expose active statement listing and cancel requests in the server protocol and CLI
- enforce per-identity concurrent query quotas and query result byte limits
- add integration coverage for timeout, cancellation, quota rejection, and transaction cleanup
@ganeshwhere ganeshwhere merged commit 8f4b997 into main Mar 13, 2026
2 of 6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant