v0.1.2 Release
v0.1.2: Release Prep Hardening
This release captures the higher-priority alpha hardening work completed after
v0.1.1, updates public version markers, and records the current release-gate
evidence for the pg17 target.
Fixes
- Development-only background job test runners now mark failed build and
maintenance jobs with the same durable failure helpers used by real background
workers. This keeps advisory-lock regression gates aligned with worker
behavior and verifies that failed job rows do not remain stuck inrunning. - Source-row search recheck work now prepares Rust match state once per query
and table display labels once per source-table statement. - Aggregation hydration now rekeys all-path hydration rows by table and reuses
borrowed parent-path rows instead of cloning every candidate row into lookup
maps. - Traversal result metadata stays dense for normal high-coverage traversals and
switches to sparse parent/depth maps only for low-visit-budget traversals on
large graphs.
Performance Notes
- Source search warmed benchmark improved from 0.14s before the hardening pass
to 0.08s after the recheck refactor. - Aggregation hydration improved from 8.33s before the hardening pass to 6.32s
after the hydration lookup refactor. - Dense-path traversal internals improved from 0.37s before the hardening pass
to 0.11s after the traversal metadata refactor. - Sparse traversal metadata is used only for low-visit-budget traversals on
large graphs; normal and high-coverage traversals stay dense to avoid slowing
path reconstruction.
Release Gates
The pg17 heavy release gate passed through fmt, clippy, docs, unit tests, pgrx
SQL tests, cargo-deny, fuzz check, package validation, fresh install smoke,
metadata audit, SQLSTATE/ACL boundary tests, backup/restore, lock regressions,
concurrency, synthetic release smoke, and pgbench sync stress:
PG_VERSION_FEATURE=pg17 DB_PREFIX=pggraph_release_prep3 RUN_PLAYGROUND=0 ./tests/heavy/run_release_gate.shThe synthetic smoke portion produced nodes=50000, edges=150889,
build_ms=1775, query_ms=43, and wrote
/opt/homebrew/var/postgresql@17/graph/main.pggraph.
The pgbench sync stress portion passed with zero failed transactions. Observed
evidence: 3045 transactions, 0.000% failures, average latency 3.739 ms,
101.508310 TPS, sync_log_rows=3045, rows_applied=3045, apply_ms=27,
query_ms=10, and search_rows=0.
After Docker was made available, the Docker-backed playground gate passed and
validated all 26 Streamlit playground query examples against the prepared
Panama dataset:
PGGRAPH_PLAYGROUND_YES=1 PG_VERSION_FEATURE=pg17 ./tests/heavy/playground_release_gate.shThe sandbox Panama benchmark gate also passed:
./sandbox/run_benchmarks.sh panama --yesObserved sandbox evidence: 2016523 source nodes, 5802586 graph edges,
load_seconds=63.204512249998515, build_seconds=60.01402675001009,
build_time_ms=35384.969724, memory_used_mb=185.5018720626831, and
memory_limit_mb=2048. Hot median query timings were 29.064 ms for status,
83.2705 ms for entity search, 107.39 ms for depth-2 traversal, 3.1295 ms
for shortest path, 147.9435 ms for component stats, and 572.17 ms for
largest component.
The focused background job advisory-lock regression gate was rerun after the
development test-runner fix and passed:
PG_VERSION_FEATURE=pg17 DBNAME=pggraph_release_prep_background_lock ./tests/heavy/background_job_lock_regression.sh