Skip to content

Protect query execution and support recoverable 10M-row exports - #1

Merged
RAHoebe merged 4 commits into
mainfrom
feat/production-foundations
Sep 8, 2026
Merged

RAHoebe merged 4 commits into
mainfrom
feat/production-foundations

Conversation

@RAHoebe

@RAHoebe RAHoebe commented Sep 8, 2026 •

Copy link
Copy Markdown
Collaborator

Concurrent exports could evict active data, collide in DuckDB spill files, or leave incomplete cache entries after a crash. This release adds leases, bounded admission, quota accounting, isolated execution and durable cache recovery, while retaining the existing HTTP/CSV contracts and normal limits. An optional deployment profile supports 10,000,000 rows, 2 GiB CSV results and 900-second queries with four query slots in the tested 2 GiB container.

The worker remains read-only and OMERO-agnostic. Additive capabilities provide exact result provenance, versioned cache identity, authenticated metrics, correlation IDs, overlapping keyring credentials and an optional private mTLS profile. Analysis owns authorization, writes and interrupted-promotion reconciliation in the paired PR.

Validation: 58 worker tests on Windows and Linux; lint, format and strict typing; container smoke/security and CI pass. The actual Analysis HTTP version matrix passes all 17 cases. Real OMERO query/download/save and browser loading pass at 10M rows for DuckDB, SQLite and CSV. Exact 10M/2-GiB boundaries and overflow rejection pass. Eighteen real engine-OOM/restart cases, six VM cache-publication power cuts, ten promotion power cuts and interrupted cleanup/reconciliation pass. The completed three-repeat 10M matrix covers all 540 requests: 468 successes, 72 expected admission rejections and zero unexpected failures. All 72 single-client 1M/4M regressions pass. Normal runs have no kernel OOM kills and remain within cache quotas; additional first-journal-directory and durable cache-entry power cuts pass.

Deployment: retain both images and configurations; upgrade worker first, verify current Analysis, then deploy the paired Analysis and opt into larger limits or mTLS. Preserve cache, OMERO annotations and persistent Analysis state/audit/signing key on rollback. See the recovery runbook for commands, observed OMERO search-index recovery and target-environment acceptance requirements. Local test success does not authorize a production rollout on untested hardware.

Completed release evidence records timings, memory, cache usage and hashes of raw evidence.

@RAHoebe RAHoebe changed the title Protect active cache work and add verified result provenance Protect query execution and support recoverable 10M-row exports Sep 8, 2026
@RAHoebe
RAHoebe marked this pull request as ready for review September 8, 2026 12:51
@RAHoebe
RAHoebe merged commit 62fdb1e into main Sep 8, 2026
9 checks passed
@RAHoebe
RAHoebe deleted the feat/production-foundations branch September 8, 2026 12:54
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