Skip to content

Enhance server diagnostics, resource limits, and SQL conformance#55

Merged
ganeshwhere merged 20 commits intomainfrom
staging
Mar 18, 2026
Merged

Enhance server diagnostics, resource limits, and SQL conformance#55
ganeshwhere merged 20 commits intomainfrom
staging

Conversation

@ganeshwhere
Copy link
Copy Markdown
Owner

This pull request introduces several significant improvements to release management, CI workflows, documentation, and code quality for the project. The main changes include the addition of a release gate workflow and sign-off process, expanded and documented test and release procedures, enhancements to dependency management, and improvements to code correctness and clarity.

Release Management and CI Improvements:

  • Release Gate Workflow and Sign-Off:

    • Added a new .github/workflows/release-gate.yml workflow to enforce automated release gate checks, including build, library tests, integration tests, and critical blocker checks.
    • Introduced a release sign-off issue template (.github/ISSUE_TEMPLATE/release-signoff.md) to standardize manual engineering and operations approval for releases.
    • Documented release readiness criteria and procedures in docs/release_gate.md.
  • CI Workflow Enhancements:

    • Refactored .github/workflows/ci.yml to split jobs into quality, unit-tests, and integration-tests for clearer separation and caching of Rust build artifacts. CI now runs on both main and staging branches, and sets colorized output for cargo.

Testing and Documentation:

  • Expanded Test Registration and Documentation:

    • Explicitly registered all integration test targets in Cargo.toml and documented the integration test policy in docs/testing.md. [1] [2]
    • Added documentation for running and interpreting the SQL conformance suite and its compatibility report artifact. [1] [2]
    • Updated README.md with clear instructions for running tests and release gates.
  • Admin Tooling Documentation:

    • Added docs/config_preflight.md and docs/diagnostics_bundle.md to document the use of the new lsmdb-admin tool for config validation and diagnostics bundle generation. [1] [2]

Dependency and Tooling Updates:

  • New Binaries and Dependencies:
    • Registered the new lsmdb-admin binary and its required dependencies (tokio-rustls, rustls-pemfile) in Cargo.toml. [1] [2]

Code Correctness and Quality:

  • Catalog and Executor Improvements:
    • Improved error reporting and key handling in src/catalog/mod.rs for better clarity and correctness. [1] [2] [3] [4]
    • Updated executor logic in src/executor/delete.rs and src/executor/filter.rs to use ExecutionContext checkpoints for better resource management and error handling. [1] [2]

MVCC and Durability Documentation:

  • MVCC Durability and Modes:
    • Expanded docs/mvcc.md to clarify MVCC durability contracts, crash semantics, and the distinction between in-memory and durable modes. [1] [2] [3]

Most Important Changes:

Release Management & CI:

  • Added a release gate workflow (.github/workflows/release-gate.yml) and a release sign-off issue template to enforce both automated and manual release readiness checks. [1] [2]
  • Refactored CI workflows to separate quality, unit, and integration tests, with improved caching and branch targeting.

Testing & Documentation:

  • Explicitly registered integration test targets in Cargo.toml and documented the integration test registration policy in docs/testing.md. [1] [2]
  • Added and updated documentation for config preflight checks, diagnostics bundles, SQL conformance, and release gate procedures. [1] [2] [3] [4]

Dependency Management:

  • Registered the new lsmdb-admin binary and added related dependencies for TLS support. [1] [2]

Code Quality:

  • Improved error handling and key usage in catalog operations and enhanced executor logic for better resource and error management. [1] [2] [3] [4] [5] [6]

MVCC Durability:

  • Clarified documentation on MVCC durability, crash semantics, and operational modes in docs/mvcc.md. [1] [2] [3]

ganeshwhere and others added 20 commits March 8, 2026 05:14
- add cross-field config validation for memtable sizing and flush timing

- add startup diagnostics model with stable key=value rendering

- document config check usage and expected outputs in docs
- add lsmdb-admin binary with config check and diagnostics bundle commands

- capture redacted config, storage snapshot, optional logs, and CRC checksums

- register the new binary in Cargo and document bundle format/exit codes
- extend request/response protocol with health, readiness, and admin status payloads

- track runtime connection/uptime counters and expose MVCC metrics through admin status

- add CLI meta-commands and integration coverage for new operational endpoints
…s fixes

- add fixture-driven SQL conformance tests and compatibility report generation

- document conformance workflow and link subset coverage from SQL docs

- fix catalog/planner/projection/WAL/MVCC edge cases discovered during suite integration
- add open_persistent/with_storage_engine constructors for persistent MVCC startup

- persist committed MVCC state into StorageEngine and restore commit timeline on restart

- add restart durability tests for MVCC state and SQL/catalog execution path

- document in-memory vs durable MVCC modes in docs
feat(mvcc): add durable store mode backed by storage engine
- formalize durability and acknowledgment points in MVCC lifecycle docs

- add crash-before-ack, rollback, and uncommitted restart recovery tests

- track recovered MVCC keys/versions metrics after durable store restart

- preserve atomic commit visibility by reverting in-memory state on persistence failure
feat(mvcc): harden durable commit and recovery boundaries
- register integration suites under tests/integration as explicit Cargo test targets

- add CI integration gate script that verifies target registration before running cargo test --tests

- split CI into quality, unit, and integration jobs on main and staging

- document reliable local test commands in README and docs/testing.md

- harden compaction/planner integration coverage so hidden regressions surface consistently
- add a dedicated release-gate GitHub workflow for build, unit, integration, and blocker checks

- add a critical high-priority blocker script that fails releases when risk-class issues remain open

- document versioned release readiness criteria and operator-facing gate usage

- add engineering/ops release sign-off issue template for manual approvals

- wire README release-gate entry points for local and CI usage
- remove unused planner imports in runtime code while keeping test-only imports scoped to tests

- drop unreachable CLI loop statement to keep build output warning-free for touched files

- re-validate baseline with cargo check, cargo test --lib, and integration gate
build: finalize green baseline checks
- add config-backed server limits and structured error payloads for busy and resource-limit responses

- reject excess connections, oversized request frames, and multi-statement requests deterministically

- add executor and MVCC guardrails for scan, sort, join, and query-result cardinality

- expose runtime rejection counters in admin status and extend overload integration coverage
feat(server): enforce runtime resource limits and backpressure
…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
Enhance server diagnostics, resource limits, and SQL conformance
@ganeshwhere ganeshwhere merged commit eb0d07d into main Mar 18, 2026
3 of 9 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