Contents
R2C Runtime Resource Breakers
Date: 2026-07-15
Result
R2C’s local PostgreSQL 17 checkpoint is green. Persisted load, traversal,
paths, GQL candidate/projection work, hydration, durable sync ingestion,
range compaction, and connected-component analytics now use typed memory,
row, work, disk, elapsed, and interrupt breakers. Failed reservations return
SQLSTATE 54000 with diagnostic PG007 before publication.
Direct source search preflights token-predicate SQL construction from checked input and token counts. Workflow search, expansion, relationship discovery, shortest-path summaries, and neighborhood grouping retain the same statement governor through fallible output allocation and postprocessing.
Verification
| Gate | Result |
|---|---|
| Formatting and diff hygiene | Pass: cargo fmt --check; git diff --check; shell syntax checks for the runtime and aggregate release gates. |
| Rust tests | Pass: 778 tests, 1 intentional ignore, 0 failures with cargo test --no-default-features --features "pg17 development" --no-fail-fast. |
| PostgreSQL 17 | Pass: 1,049 tests, 1 intentional ignore, 0 failures with cargo pgrx test --features "pg17 development" pg17. |
| Static analysis | Pass: all-target Clippy with warnings denied. |
| Rust documentation | Pass: rustdoc with warnings denied; doctests have no failures. |
| Public documentation and contract | Pass: local references, SQL API/GUC inventory, Rust source map, and the 1.0 release contract are synchronized. |
| Secret scanning | Pass: gitleaks full-history and pending tracked-change scans. |
| Runtime resource profile | Pass: NODE_COUNT=10000, EDGE_COUNT=9999, three persisted reloads, a 101-row hydrated traversal, a 10,000-row hydrated GQL scan, connected components, two 500-row source-update ingestion/compaction cycles, and an intentional work-limit rejection. |
Runtime Profile
Command:
PG_VERSION_FEATURE=pg17 DBNAME=pggraph_runtime_resources_r2c \
NODE_COUNT=10000 EDGE_COUNT=9999 \
LOAD_ROUNDS=3 SYNC_ROWS=500 ./tests/heavy/measure_runtime_resources.sh
Observed on macOS/arm64 with PostgreSQL 17:
- peak backend RSS: 87 MiB;
- each persisted load preflighted approximately 1.0 MiB of graph-owned load workspace and completed three consecutive cycles;
- the hydrated GQL scan reserved 180,211,824 bytes across candidate, execution, hydration, and blocking workspaces under the gate’s explicit 256 MiB successful-query budget, and consumed 80,000 projection work units;
- analytics reserved 400,000 bytes and consumed 19,999 work units;
- each sync cycle read 500 committed source rows and normalized 1,500 projection rows within the declared 64 MiB input ceiling; end-to-end ingestion, candidate reload, and governed manifest publication peaked at 204,948,265 memory bytes and 98,764 staged disk bytes;
- both compaction cycles merged published edge segments and installed validated generations; the second cycle compacted two retained segments;
- setting
graph.query_work_limit = 1rejected the GQL scan with SQLSTATE54000and diagnosticPG007;graph.resource_status()reported one candidate work unit.
Linux PSS is not available from macOS. On Linux the same gate samples
/proc/<pid>/smaps_rollup and enforces MAX_PSS_MB; it is wired into
run_release_gate.sh through the enabled-by-default
RUN_RUNTIME_RESOURCES=1. The supported-environment release run must retain
that Linux PSS evidence rather than substituting RSS.
Preserved State After R2C
- A replacement load with no remaining private-memory headroom rejects before allocation; the serving engine is not mutated.
- Projection installation derives and pins one immutable layered snapshot per generation. Repeated queries continue from that snapshot without rereading deleted segment files.
- Compaction interruption leaves the previous generation current; sync watermark tests advance only after successful publication.
- KI-013 remains open. R3 still owns mmap-backed inbound CSR and large filter metadata, and whole-graph analytics still need worker isolation. The public Known Issues page names only those remaining gaps.