Repository navigation
Description
Delivered in Native 3.3.2 — November 9, 2026
Released and Latest, exact source 660217dd1ac62701eb1fc26b08fbbaf825e777d1, image sha256:4aeceb423ee4c8931f00ec2936149ac6b2a75479243b3930f9c6336ccdebf912. Final cross-repository delivery evidence.
Maintained source: PR#1112: one bounded read-only connection/snapshot, actual MySQL/MariaDB READ COMMITTED countercontrol, generation consistency and checkout/query/connection-release controls. Source/backend/main checks and published-image compatibility are accepted. Publication/provenance, protected corpus/Compose, default resolution, published PHP and Sample App's full runtime/developer-image follow-through passed on the supported tuple. Both registries' rolling aliases and the full GitHub Release are verified.
General closes this item's delivery criteria as completed. No workload timing or benchmark speedup is inferred. Earlier source/download NONPASSs and original WIP refs remain preserved; the other Native P0s and Cloud adoption retain their separate work.
Original requirement and evidence
External report topic 21, accepted for P0 intake at the user's direction. The proposal, timings and supplied test results are unverified reference evidence. No patch was applied or executed during intake.
Implementation owner: general. The owning agent drives source, release and applicable published-artifact verification. Existing release, operating and credential gates remain in force.
Problem and proposed scope
The report says GET /api/workflows/{id} performs roughly thirteen pool checkouts, two empty read transactions and three start-payload reads. Read a complete description through one short read-only connection/snapshot and reuse the already-read start payload where its routing authority permits it.
Acceptance
- Prove a coherent description under each supported backend's actual isolation rules. Do not assume that merely opening a transaction guarantees one snapshot.
- Preserve authorization, definition-routing inspection, absent/deleted-run behavior, projections and all existing describe/query DTOs.
- Add concurrent transition/describe controls showing that responses do not mix incompatible row generations; verify SQLite, MySQL and PostgreSQL.
- Keep connection/snapshot lifetime bounded to one description, release it on every failure, and measure checkout/query reduction without changing durability or pool limits.
- Preserve existing schedule-summary work in server#1014; this issue concerns workflow-description snapshot ownership, not the separate schedule-list contract.
Reporter measurement: 14.53→14.37 seconds, four interleaved MySQL rounds, not independently reproduced.
Reported workload and evidence limits
The report describes 200 workflows, six PHP worker processes, five sequential 20 ms activities or five local activities, last-close wall time, and three or four interleaved A/B rounds. MySQL session-to-session drift is reported as high as 11%. Stock database durability, network placement and the absence of deferred projections are reporter conditions, not independently verified facts. The headline run covers topics 1–24; topic 25 has only a MySQL five-steps A/B. No speedup, production readiness or suite pass is accepted from this intake.
Sanitized reference data
The supplied Server series targets reported base d4c6de8d; the SDK reference targets 96dc061. Maintained heads were independently read as Server c3bbfa5 and SDK c87eae37. These cumulative references are not current-main patches or maintained qualification.
0003-Describe-a-run-in-one-read-only-snapshot-on-one-conn.patch— 16,009 bytes / SHA-256e67896e4d65d19afe959cecbc626aea63ffcb74b9b525ec00a7778a771f07d27.
Bench-only Server0001 is retained as diagnostic context, not a separate production change. Complete sanitized diff references, shared bundle identity and source-review findings are linked in the intake index and the issue comments. Original mail headers, author/date metadata, application commands and runner instructions are omitted.
Activity
rmcdaniel commentedon Nov 6, 2026
Sanitized external reference for topic 21:
0003-Describe-a-run-in-one-read-only-snapshot-on-one-conn.patch, part 1/1. Complete sanitized diff: 16,009 bytes / SHA-256e67896e4d65d19afe959cecbc626aea63ffcb74b9b525ec00a7778a771f07d27. Ordered parts preserve the complete diff bytes; none was applied or executed. The patch is a cumulative older-source draft, not maintained implementation or qualification. Mail headers/author/date/message/application instructions were removed.rmcdaniel commentedon Nov 6, 2026
Intake is filed as P0, owner server. Shared index, allocation and static review findings.
Complete sanitized diff reference(s): 0003 part 1/1.
Shared Lockbox bundle:
lab4/general/dw-performance-intake/2026-11-06/sanitized-tricks-20-25.zip(101,306 bytes; SHA-2563e5b593ed89536451be1c8d74abf2ee6e4782cd3f7a75fe5fc9a645d648a52da). Its roundtrip and member hashes are verified. The supplied patches and benchmark results remain external reference data; no patch was applied or executed during intake. Existing issue acceptance and subsequent owner review remain in force.rmcdaniel commentedon Nov 7, 2026
An implementation is prepared locally and not yet published: commit
581e08c4, tree8a6223469151ff699b4f50ec9375c24609c0c017, on main1c34f3b7(branchfeat/server-1075-describe-snapshot). It follows the #325 runner successor and #1093 in General's Source-train ordering.What it does
describe_withopens onebegin_readtransaction and routes every description read through that one connection: run row, memo, commands, summary wait fields, fleet snapshots, query route, definition routing, typed search attributes, updates, terminal failure, and v1 projection metadata/failure.REPEATABLE READ READ ONLY, MySQLSTART TRANSACTION WITH CONSISTENT SNAPSHOT, READ ONLY, SQLite deferredBEGINon a WAL database.WorkflowStartedpayload is read once and passed to the query route and definition routing. Other callers of those helpers keep their own reads through unchanged pool wrappers.Controls (
qualify_describe_snapshot, wired for SQLite, PostgreSQL and MySQL)workflow_runs.business_keyandworkflow_run_summaries.wait_reasonfrom another connection. A second describe in the same snapshot is byte-identical to the first, and a fresh describe shows the change.Local result (lab4, CI's pinned Rust image): 413 runtime library tests and the full SQLite
executionsuite (738 passed, 1 existing ignore). PostgreSQL/MySQL coverage comes from the normal PR checks. Measured checkout/query reduction under load is not claimed here.Owner: Server.
rmcdaniel commentedon Nov 8, 2026
Operator nudge: this benchmax ticket (P0) has had no linked PR and no activity for about 8 h. Please pick it up next, after the current work on #1057. Suggested order for the stalled server tickets: #1063, #1068, #1075, #1077, #1078, #1079, then #1081 (P2); this one is 3 of 7. Open a draft PR as soon as work starts so the tracker shows it. If it is blocked, add the status:blocked label with a one-line reason.
rmcdaniel commentedon Nov 9, 2026
General reviewed the preserved WIP
581e08c4against maintained Server main603f9f5c. The original WIP ref is unchanged; no cherry-pick, build, test or push ran.One acceptance gap must be fixed when porting it: WIP
describe_withcalls the ordinarybegin_read. On current MySQL/MariaDB that usesSTART TRANSACTION WITH CONSISTENT SNAPSHOT, READ ONLY, which preserves the session isolation level and does not fix a snapshot under READ COMMITTED. Main already has a causal backend control,qualification_repeatable_snapshot_is_fixed_under_a_read_committed_session, proving that the ordinary begin sees a later commit whileREPEATABLE_READ_SNAPSHOT_BEGINdoes not.Use the existing
Store::begin_repeatable_readfor the description instead of changing global/session defaults. PostgreSQL's helper already selects a repeatable read-only snapshot; SQLite retains its existing transaction form. The WIP's test currently checks two descriptions in one default-session transaction and does not force the MySQL/MariaDB READ COMMITTED counterexample.The port therefore needs an actual concurrent transition/describe control on each backend, explicitly including READ COMMITTED MySQL/MariaDB; one start-payload read; a single-connection description path; and bounded connection return on success, missing/deleted-run errors and cancellation. Preserve all DTO, authorization, routing and projection behavior. The WIP is still unqualified. This remains behind the current 3.3.1 consumer follow-through and #1068 correction, with no new source train selected.
rmcdaniel commentedon Nov 9, 2026
General has ported the preserved preparation to maintained source, locally only. Original WIP
581e08c4is unchanged.Candidate
684f1d478ab3693affedda71718d3f85deb7081b, tree390625347736ff62a7e1cf250c4ef9b98ab95493, parent/main603f9f5c. Delta35,191 bytes / SHA-2565e3a7d1a03affa3c4ac3ec8d040ad27016579d67940e04781c4ddd52e0a18b15, ten runtime files. It uses the existingbegin_repeatable_read, not the preparation's ordinarybegin_read, so MySQL/MariaDB READ COMMITTED sessions get a fixed snapshot. Every description read uses that connection; native start payload is shared with query/definition routing. The projection's first-event metadata read retains its distinct authority.The old preparation's two-describe control is replaced by a test-only, task-local pause immediately after the run row. A real
close_workflow(Terminate)commits through an independent writer pool before description resumes. New controls compare the complete description with its pre-transition value, require one pool checkout and one native start-payload read, observe the fresh terminal state, and verify connection return after missing instance/run, a real stored-memo decoding error and cancellation. Readers have a one-connection pool. MySQL/MariaDB exercise explicit REPEATABLE READ plus READ COMMITTED; an ordinary-read counterexample must mix the later command journal, before and after the one-transaction repeatable override. PostgreSQL and read-only SQLite use the same concurrent transition control.Only source/diff/privacy checks ran. No compile, runtime test, local daemon or hosted push is claimed. First compile and execution will be the normal source train after #1110's integration/main custody; it is the only current integration train. This item is outside released3.3.1 and has no benchmark claim.