0.20.0 Release Notes
This revision consolidates the changes since 0.17.0. There are no implied 0.18.0 or 0.19.0 releases. Release preparation, tagged artifacts and production qualification are separate steps; consult the repository release/tag status before deploying an artifact described by this manual.
Ordered graph pages
Edge-sorted indexes now support eligible multi-key pages, necessary primary cursor bounds, deterministic residual filters and ordinary additional graph hops. The executor orders complete primary-value families before selecting secondary keys. It preserves matching-row multiplicity and checks filters before counting page rows. Existing index definitions and persisted entries are reused; this feature does not require rebuilding them.
Planner and executor controls cover the unchanged backend-shaped query, identity projections, snapshots, ties, cursor boundaries, errors and cancellation. Unproved query shapes and primary-value domains retain the general executor. Selective filters, large equality groups and offset pagination may still require substantial work. Use keyset pagination where appropriate; no fixed candidate count or universal latency guarantee is implied.
Other changes since 0.17.0
- Maintenance jobs: asynchronous tag and backup work, observable node-local execution and history maintenance operations.
- Backup and recovery: retained snapshot-body ownership, streaming/portable restore and offline administrative recovery controls.
- Property-aware result-cache dependencies, snapshot-safe adjacency reuse and L4 cache visibility in the admin dashboard.
- Diagnostic tracing for logical query, search and snapshot phases, plus regional workload, causal-read and recovery qualification tooling.
- Recovery, latest-onboarding I/O and routing hardening. These changes do not remove the documented application retry, licensing or experimental-feature requirements.
Measured qualification and limits — #1261
The frozen pagination candidate before the metadata-only version bump completed a strict 10,800-second mixed workload on 2026-09-21. It used one SSD host, three voters, two nonvoting learners, three Rust/neo4rs backends and simulated 20/40 ms one-way learner delays. The dataset contained 334,770 tickets, 2,201,041 comments and 5,488,094 source edges. It was not a 1M-ticket test.
All 56,620 timed HTTP attempts succeeded and the independent result/order, cursor, ACL, causal-read and search checks passed. The final run retained host caches and included concurrent mutations and analytics; it did not inject faults.
| Timed HTTP operation | Samples | p90 | p99 | Maximum |
|---|---|---|---|---|
| Follow-up cursor pages | 4,605 | 246.3 ms | 252.8 ms | 407.2 ms |
| Ticket comments | 4,757 | 247.0 ms | 253.9 ms | 403.8 ms |
| Author comments | 5,849 | 1,719.8 ms | 3,895.7 ms | 7,664.2 ms |
| Author aggregation | 360 | 3,073.0 ms | 4,522.4 ms | 5,013.0 ms |
These are nearest-lower sample quantiles, including regional delay; preflight and cleanup are excluded. The earlier initial smoke failed on first-touch author aggregation at the eight-second request budget. A subsequent green mixed run does not fix or waive that cold-path failure. Author-page tails also remain a performance follow-up. The isolated improved cursor case is not representative of every author page.
Reproducible evidence, exact binary hashes and failed attempts are recorded in
repository docs/ordered-edge-pagination-1261.md and issue #1261. No real-WAN,
cold-start, memory-limited or universal production approval follows from this
version number or the three-hour result.
Upgrade boundary
All workspace crates inherit version 0.20.0. The ordered-edge feature introduces no new persistent index format. Intermediate changes since 0.17.0 include disposable cache-format changes; cached results are not authoritative database contents. Follow the first-customer checklist, preserve a verified recoverable backup and validate your own queries and driver behavior before rollout. Do not assume arbitrary mixed-version or downgrade safety from the unchanged edge-index format alone.