Skip to content

Rust4PM, pg_ocpm, and DuckDB Parquet benchmark

Result

Publication gate: passed.

All 4 workload answers matched exactly on rust4pm_p2p. Relative to Rust4PM, the p50 geometric-mean speedups were 2.990x for pg_ocpm + ocpm-engine and 12.164x for DuckDB Parquet + ocpm-engine with its bounded exact-result cache. With that cache disabled, the DuckDB p50 geometric-mean ratio over Rust4PM was 0.056x.

Exactness

Workload Exact Answer SHA-256
dfg_conformance_95pct yes 60ab48203c1517581d04b17d4b025b33dab3a5567f2a2f88a20d8d3e3ff8c7d9
variant_conformance_95pct yes 1c911590ca4d2aed672b2b8e0b0680713dcda71dbc6e20ef89eac80bcf8227f1
next_activity_prediction yes a8ea57fdec0c3e86ea487f5a71ef024e099f3bfae3e69d2dae790808e314c8b8
edge_bottleneck_ranking yes 4de113819ac516dd65201c03400cf132dc50f02a66cc0e25eebc632165e6b444

Steady-state latency

Workload Rust4PM p50 pg_ocpm p50 DuckDB cached p50 DuckDB cache-off p50 Rust4PM p95 pg_ocpm p95 DuckDB cached p95 DuckDB cache-off p95
dfg_conformance_95pct 3.172 ms 1.275 ms 0.206 ms 70.858 ms 5.077 ms 2.003 ms 0.592 ms 131.405 ms
variant_conformance_95pct 4.724 ms 2.047 ms 1.095 ms 75.510 ms 7.078 ms 2.483 ms 1.541 ms 123.609 ms
next_activity_prediction 5.218 ms 1.269 ms 0.356 ms 81.442 ms 9.207 ms 2.525 ms 1.581 ms 131.082 ms
edge_bottleneck_ranking 3.193 ms 0.943 ms 0.142 ms 59.837 ms 5.347 ms 1.543 ms 0.257 ms 321.943 ms

DFG concurrency

Workers Rust4PM QPS pg_ocpm QPS DuckDB QPS Rust4PM p95 pg_ocpm p95 DuckDB p95
1 721.098 595.611 2570.990 2.132 ms 2.972 ms 0.774 ms
2 1188.170 1739.294 5191.818 2.311 ms 1.779 ms 0.744 ms
4 2178.317 2465.894 8962.395 2.680 ms 3.035 ms 0.858 ms
8 3266.529 3079.040 13029.387 4.234 ms 7.626 ms 1.683 ms

Memory

Arm Maximum incremental peak Maximum process RSS
Rust4PM 0.00 MiB 53.18 MiB
pg_ocpm + ocpm-engine 0.02 MiB 52.76 MiB
DuckDB Parquet + ocpm-engine 0.00 MiB 149.62 MiB

Storage reported by each arm

Arm Source SQLite Canonical Parquet snapshot
Rust4PM 13.11 MiB N/A
pg_ocpm + ocpm-engine N/A N/A
DuckDB Parquet + ocpm-engine 13.11 MiB 0.81 MiB

DuckDB setup cost

Snapshot conversion: 1345.529 ms. Existing-catalog connection open and optional relation materialization: 147.584 ms.

Interpretation boundaries

  • Import, snapshot conversion, process startup, and connection startup are excluded from steady-state latency and reported by each arm.
  • Concurrency uses each architecture's normal scalable service model; memory is reported per arm and is not normalized into an artificial single runtime.
  • The results apply to the declared fixed workloads and do not imply the same ratio for arbitrary dynamic queries.
  • DuckDB warm-cache and cache-disabled measurements are both published; only the warm-cache state is used in the primary three-arm latency table and concurrency run.