Conversation
Zetazzz
force-pushed
the
agent/graphile-readiness-disposal
branch
from
September 6, 2026 01:51
dec013c to
e77d653
Compare
Zetazzz
force-pushed
the
test/performance-harness-core
branch
2 times, most recently
from
September 7, 2026 03:22
658736e to
f7c63ec
Compare
Zetazzz
force-pushed
the
agent/graphile-readiness-disposal
branch
from
September 9, 2026 04:19
e77d653 to
e7d7636
Compare
This was referenced Sep 9, 2026
Zetazzz
marked this pull request as ready for review
September 21, 2026 15:47
|
Review complete. 🟡 1 medium 💬 Inline comments (1)
This PR reworks
The change is well-structured and well-tested; the main concern is that the perf-harness metering in Reviewed commit: 1c9dfb1 |
There was a problem hiding this comment.
Adds caching-instance and service-lifecycle logic to graphile-cache (preset services, build readiness, disposal) plus a perf-harness connection-lifecycle suite, with new CI wiring.
Key findings
- 🟡 Replacement/failed-build modes skip real release accounting — worker.ts:200
Zetazzz
marked this pull request as draft
September 21, 2026 16:13
Zetazzz
marked this pull request as ready for review
September 21, 2026 16:13
This was referenced Sep 21, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Graphile creation waits for schema gathering and Grafserv readiness. Failed builds release their owned resources, and cache disposal is coalesced by the exact entry object so an old generation cannot suppress cleanup of a replacement using the same key.
Preset services are released after PostGraphile teardown using unmodified
@dataplan/pg1.1.1. Disposal succeeds when the public release calls return successfully, including promises exposed by those APIs; it does not promise that upstream background UNLISTEN/client return has already completed. The dataplan patch, its declarations, and PNPM patch references are removed. Idempotency and public release failure propagation remain covered.Cleanup failures now remain observable after background disposal settles. Bulk drains snapshot the generations scheduled before the call, preserve the original single failure, aggregate multiple resource failures, and acknowledge only that snapshot. Concurrent drains each observe their captured failures. Exact-entry release promises remain rejected after acknowledgement. Failed-build cleanup preserves the build error as its cause, realtime startup failures dispose their generation, and pool cleanup is attempted even when a resident release rejects.
A TypeScript connection-lifecycle suite now uses
packages/perf-harnessandpgsql-testfor idle services, active subscriptions, startup/release races, Graphile build/dispose, subscribed disposal, failed builds, and same-key generation replacement. It defaults to a low-resource functional run: one repetition, concurrency 1, pool limit 2, and 72 lifecycles. Larger stress runs are opt-in and documented. All modes measure actual public release calls, including replacement and failed-build cleanup. Generated reports and logs are not committed.Earlier baseline validation on
2752c568(Node 24.20.0 / PostgreSQL 18.6):Earlier cloud validation: CI tests run 35623188188 passed all 17 jobs on commit
2752c568, including the Graphile PostgreSQL tests and Windows checks.graphile-cacheremains in the PostgreSQL CI matrix.Refs constructive-io/constructive-planning#1693 (F04).
CNC follow-up validation: focused readiness/disposal/resource-release tests passed; the final dependent stack passes 96 graphile-cache tests. CJS/ESM builds, frozen-lockfile installation, dependency policy, and test registration checks passed. The earlier stress observations above are historical evidence; this follow-up does not rerun the extended performance suite.