Graphite performance telemetry
Benchmark Observatory
A fresh absolute latency snapshot of the Rust engine (graphite serve over the 64-graph fixture corpus) for the exact main commit, with paired PR regression evidence only when its base and candidate match this integration exactly.
Exact main commit
Fresh Rust engine snapshot
Cross-graph Cypher latency of the shipped graphite binary over fixture64: the declared suite includes string searches, sorting, aggregation, traversal, WITH, ID and schema queries. Requests run sequentially; the first pass mixes first-use and already-warm state. Score is the median pass; the interval is the min–max spread. The aggregate rows describe percentiles across different cases, not server request p50/p95. History comparisons require matching query and suite identities. Absolute scores and cross-run deltas are informational on hosted runners. Paired blocking decisions live in the evidence section.
| Benchmark | Mode | Score | Interval (min – max) | vs previous main snapshot | Relative scale by unit |
|---|---|---|---|---|---|
rust.fixture64.global-wide-four-properties [selectivity=zero] |
sequential-pass | 0.70600 ms/op | 0.5470 – 168.2 | +10.3% | |
rust.fixture64.global-wide-class-pair [selectivity=zero] |
sequential-pass | 0.57400 ms/op | 0.4940 – 1.009 | +0.7% | |
rust.fixture64.global-wide-name-pair [selectivity=zero] |
sequential-pass | 0.62200 ms/op | 0.4630 – 0.6630 | -21.2% | |
rust.fixture64.global-wide-caller-class [selectivity=zero] |
sequential-pass | 0.49600 ms/op | 0.4660 – 0.5660 | -11.3% | |
rust.fixture64.global-wide-callee-class [selectivity=zero] |
sequential-pass | 0.49500 ms/op | 0.4830 – 0.6350 | -12.1% | |
rust.fixture64.global-wide-provenance [selectivity=zero] |
sequential-pass | 0.48300 ms/op | 0.4820 – 0.7050 | -25.3% | |
rust.fixture64.global-wide-aliased [selectivity=zero] |
sequential-pass | 0.49100 ms/op | 0.4590 – 0.5680 | -11.5% | |
rust.fixture64.global-wide-parameterized-as-literal [selectivity=zero] |
sequential-pass | 0.63800 ms/op | 0.4460 – 0.8270 | +10.8% | |
rust.fixture64.global-wide-wrapped-case-insensitive [selectivity=zero] |
sequential-pass | 0.53500 ms/op | 0.4720 – 0.6240 | -19.9% | |
rust.fixture64.global-wide-wrapped-case-insensitive-distinct [selectivity=zero] |
sequential-pass | 0.63000 ms/op | 0.5240 – 4.132 | +1.3% | |
rust.fixture64.global-wide-four-properties [selectivity=targeted] |
sequential-pass | 1.4330 ms/op | 0.8200 – 4.486 | +39.5% | |
rust.fixture64.global-wide-class-pair [selectivity=targeted] |
sequential-pass | 0.73000 ms/op | 0.7080 – 0.8780 | -5.2% | |
rust.fixture64.global-wide-name-pair [selectivity=targeted] |
sequential-pass | 0.67100 ms/op | 0.6700 – 0.7780 | -15.2% | |
rust.fixture64.global-wide-caller-class [selectivity=targeted] |
sequential-pass | 0.66600 ms/op | 0.6330 – 0.7900 | -12.4% | |
rust.fixture64.global-wide-callee-class [selectivity=targeted] |
sequential-pass | 0.62000 ms/op | 0.6200 – 0.7570 | -22.2% | |
rust.fixture64.global-wide-provenance [selectivity=targeted] |
sequential-pass | 0.66200 ms/op | 0.6330 – 0.7060 | -17.8% | |
rust.fixture64.global-wide-aliased [selectivity=targeted] |
sequential-pass | 0.64400 ms/op | 0.6110 – 0.7670 | -17.4% | |
rust.fixture64.global-wide-parameterized-as-literal [selectivity=targeted] |
sequential-pass | 0.76800 ms/op | 0.5960 – 0.8060 | -12.2% | |
rust.fixture64.global-wide-wrapped-case-insensitive [selectivity=targeted] |
sequential-pass | 0.66600 ms/op | 0.6380 – 0.7570 | -10.1% | |
rust.fixture64.global-wide-wrapped-case-insensitive-distinct [selectivity=targeted] |
sequential-pass | 0.79300 ms/op | 0.7250 – 1.522 | -10.6% | |
rust.fixture64.global-wide-four-properties [selectivity=dense] |
sequential-pass | 2.0260 ms/op | 1.835 – 13.82 | +9.6% | |
rust.fixture64.global-wide-class-pair [selectivity=dense] |
sequential-pass | 2.0300 ms/op | 1.751 – 4.235 | +3.8% | |
rust.fixture64.global-wide-name-pair [selectivity=dense] |
sequential-pass | 1.8050 ms/op | 1.671 – 1.812 | +18.4% | |
rust.fixture64.global-wide-caller-class [selectivity=dense] |
sequential-pass | 1.5270 ms/op | 1.448 – 1.738 | -0.8% | |
rust.fixture64.global-wide-callee-class [selectivity=dense] |
sequential-pass | 1.4940 ms/op | 1.474 – 1.508 | +0.1% | |
rust.fixture64.global-wide-provenance [selectivity=dense] |
sequential-pass | 1.6000 ms/op | 1.512 – 1.679 | +5.2% | |
rust.fixture64.global-wide-aliased [selectivity=dense] |
sequential-pass | 1.5370 ms/op | 1.451 – 1.560 | +1.3% | |
rust.fixture64.global-wide-parameterized-as-literal [selectivity=dense] |
sequential-pass | 1.5290 ms/op | 1.455 – 1.846 | -13.0% | |
rust.fixture64.global-wide-wrapped-case-insensitive [selectivity=dense] |
sequential-pass | 1.6400 ms/op | 1.540 – 1.684 | -8.9% | |
rust.fixture64.global-wide-wrapped-case-insensitive-distinct [selectivity=dense] |
sequential-pass | 5.3810 ms/op | 4.915 – 75.90 | -30.4% | |
rust.fixture64.global-wide-four-properties [case=localized-early] |
sequential-pass | 1.1780 ms/op | 0.9440 – 1.301 | -29.7% | |
rust.fixture64.global-wide-four-properties [case=localized-middle] |
sequential-pass | 1.1950 ms/op | 1.072 – 2.126 | -4.6% | |
rust.fixture64.global-wide-four-properties [case=localized-late] |
sequential-pass | 1.1240 ms/op | 1.070 – 2.301 | -5.4% | |
rust.fixture64.global-wide-four-properties [case=broad-all-64] |
sequential-pass | 1.5290 ms/op | 1.527 – 2.005 | -8.6% | |
rust.fixture64.schema-label-histogram [selectivity=schema] |
sequential-pass | 1.1490 ms/op | 1.121 – 60.26 | -25.0% | |
rust.fixture64.schema-key-histogram [selectivity=schema] |
sequential-pass | 1.5380 ms/op | 1.396 – 2.016 | +1.9% | |
rust.fixture64.schema-relationship-histogram [selectivity=schema] |
sequential-pass | 124.70 ms/op | 117.2 – 590.8 | -10.5% | |
rust.fixture64.shape-wide-contains [selectivity=broad] |
sequential-pass | 1.1050 ms/op | 0.9530 – 2.086 | -5.6% | |
rust.fixture64.shape-label-scan-callsite [selectivity=broad] |
sequential-pass | 0.97500 ms/op | 0.8700 – 1.017 | -1.0% | |
rust.fixture64.shape-label-scan-method [selectivity=broad] |
sequential-pass | 0.90600 ms/op | 0.7760 – 1.641 | -22.3% | |
rust.fixture64.shape-label-scan-constant [selectivity=broad] |
sequential-pass | 0.80000 ms/op | 0.7400 – 4.728 | -7.1% | |
rust.fixture64.shape-label-scan-field [selectivity=broad] |
sequential-pass | 0.94100 ms/op | 0.7010 – 2.991 | -1.5% | |
rust.fixture64.shape-all-nodes [selectivity=broad] |
sequential-pass | 1.1720 ms/op | 1.071 – 1.251 | -13.6% | |
rust.fixture64.shape-equality [selectivity=broad] |
sequential-pass | 0.80500 ms/op | 0.7820 – 3.033 | -5.5% | |
rust.fixture64.shape-inequality [selectivity=broad] |
sequential-pass | 0.80800 ms/op | 0.7320 – 0.8160 | -5.8% | |
rust.fixture64.shape-id-lookup [selectivity=broad] |
sequential-pass | 148.10 ms/op | 145.1 – 154.8 | +152.8% | |
rust.fixture64.shape-in-list [selectivity=broad] |
sequential-pass | 1.0240 ms/op | 0.9420 – 1.050 | +0.3% | |
rust.fixture64.shape-null-check [selectivity=broad] |
sequential-pass | 0.89600 ms/op | 0.8590 – 1.118 | -1.1% | |
rust.fixture64.shape-regex [selectivity=broad] |
sequential-pass | 0.98400 ms/op | 0.9230 – 2.230 | +4.8% | |
rust.fixture64.shape-one-hop [selectivity=broad] |
sequential-pass | 1.0140 ms/op | 0.9450 – 1.076 | -7.7% | |
rust.fixture64.shape-one-hop-typed [selectivity=broad] |
sequential-pass | 0.98800 ms/op | 0.9620 – 1.384 | -9.0% | |
rust.fixture64.shape-two-hop [selectivity=broad] |
sequential-pass | 0.86900 ms/op | 0.8220 – 0.9480 | -14.9% | |
rust.fixture64.shape-incoming [selectivity=broad] |
sequential-pass | 0.98900 ms/op | 0.9270 – 1.414 | -6.9% | |
rust.fixture64.shape-var-length [selectivity=broad] |
sequential-pass | 0.76000 ms/op | 0.7080 – 0.8680 | -18.1% | |
rust.fixture64.shape-path [selectivity=broad] |
sequential-pass | 0.95400 ms/op | 0.9500 – 0.9650 | -12.9% | |
rust.fixture64.shape-traverse-filtered [selectivity=broad] |
sequential-pass | 1.2950 ms/op | 1.118 – 1.596 | +0.0% | |
rust.fixture64.shape-count-all [selectivity=broad] |
sequential-pass | 0.50400 ms/op | 0.4930 – 0.5190 | -8.9% | |
rust.fixture64.shape-count-label [selectivity=broad] |
sequential-pass | 0.48200 ms/op | 0.4000 – 0.5120 | -6.2% | |
rust.fixture64.shape-group-count [selectivity=broad] |
sequential-pass | 662.56 ms/op | 655.9 – 1462 | -3.8% | |
rust.fixture64.shape-distinct [selectivity=broad] |
sequential-pass | 645.32 ms/op | 618.6 – 693.1 | -0.3% | |
rust.fixture64.shape-collect [selectivity=broad] |
sequential-pass | 3650.7 ms/op | 3552 – 4036 | -16.2% | |
rust.fixture64.shape-count-traversal [selectivity=broad] |
sequential-pass | 115.72 ms/op | 112.0 – 118.5 | -8.2% | |
rust.fixture64.shape-order-by [selectivity=broad] |
sequential-pass | 4446.0 ms/op | 4442 – 4492 | -22.6% | |
rust.fixture64.shape-order-by-desc [selectivity=broad] |
sequential-pass | 4428.8 ms/op | 4367 – 4441 | -21.6% | |
rust.fixture64.shape-skip [selectivity=broad] |
sequential-pass | 3.0540 ms/op | 2.892 – 4.982 | -16.1% | |
rust.fixture64.shape-function-calls [selectivity=broad] |
sequential-pass | 1.1320 ms/op | 1.090 – 1.160 | +8.5% | |
rust.fixture64.shape-case-expr [selectivity=broad] |
sequential-pass | 0.84200 ms/op | 0.7880 – 0.8530 | +1.1% | |
rust.fixture64.shape-coalesce [selectivity=broad] |
sequential-pass | 0.77900 ms/op | 0.7720 – 0.8550 | -6.5% | |
rust.fixture64.shape-labels-fn [selectivity=broad] |
sequential-pass | 0.77600 ms/op | 0.7400 – 0.7840 | -8.2% | |
rust.fixture64.shape-with-filter [selectivity=broad] |
sequential-pass | 5412.0 ms/op | 5306 – 5665 | -24.9% | |
rust.fixture64.shape-with-aggregate [selectivity=broad] |
sequential-pass | 1392.7 ms/op | 1358 – 1433 | -8.5% | |
rust.fixture64.shape-cartesian [selectivity=broad] |
sequential-pass | 0.88400 ms/op | 0.7910 – 1.354 | -0.5% | |
rust.fixture64.shape-union [selectivity=broad] |
sequential-pass | 1.0240 ms/op | 1.022 – 1.104 | +10.7% | |
rust.fixture64.aggregate [statistic=p50] |
sequential-pass | 0.98800 ms/op | 0.9620 – 1.448 | -5.3% | |
rust.fixture64.aggregate [statistic=p95] |
sequential-pass | 3650.7 ms/op | 3552 – 4036 | -16.2% |
PR #104 coverage model
Coverage map and known gaps
✅ means no gate-specific gap is identified. ⚠️ means implemented but intentionally incomplete. Uncovered scope does not change this run's verdict.
Semantic correctness
- ⚠️
method-compatibility(advisory: JVM engine)Fixed discovery matrix only; no universal semantic coverage.
Uncovered scope
universal-correctness-manifest · isolated-workload-identity
Latency regression
- ⚠️
rust-latencySequential single-threaded passes on one hosted runner; rows under the 1 ms floor cannot block. - ⚠️
method-levelLow sample count and hosted-runner variance. - ⚠️
budgeted-collection(advisory: JVM engine)Fixed historical baseline; no current-base comparison. - ⚠️
budgeted-mapped-string(advisory: JVM engine)Fixed historical baseline; no current-base comparison. - ✅
wrapped-query-latency(advisory: JVM engine)No gate-specific gap identified. - ✅
graph-routing-pressureNo gate-specific gap identified. - ✅
global-wide-pressureNo gate-specific gap identified.
Uncovered scope
cross-graph-dataflow-latency · storage-load-stage-latency
Throughput and capacity
- ⚠️
cypher-capacity(advisory: JVM engine)One composite point and limited concurrency shapes.
Uncovered scope
sustained-throughput · saturation-capacity · multi-client-capacity
Memory and resources
- ⚠️
explorer(advisory: JVM engine)Four fixture scenarios; no allocation or leak proof. - ⚠️
wrapped-query-resourcesExact point probes only; no long-duration leak or soak proof.
Uncovered scope
allocation-per-operation · memory-leak · disk-and-temporary-space-budget
Scalability
No implemented component gate.
Uncovered scope
graph-build-scaling · corpus-load-scaling · concurrent-user-scaling
Build and persistence lifecycle
- ⚠️
large-corpusThree fixed corpora; stage rows do not provide universal corpus or lifecycle coverage.
Uncovered scope
dedicated-graph-build · dedicated-save-load · persisted-mapped-query · persistence-migration
Paired regression evidence