AionDB v0.3 is live: vector search becomes a first-class engine surface with pgvector-style SQL, HNSW, IVF-flat, Qdrant-style filters, and published recall/latency benchmarks. See the v0.3 vector update.

v0.2 Performance Snapshot

A short performance snapshot for v0.2. Narrower than a full benchmark dashboard: named local artifacts, graph-vs-Neo4j kept separate from the SurrealDB/pgstack matrix, no single winner number across workloads.

If you want the full benchmark machinery, use:

Snapshots used here

This page is based on two concrete local benchmark snapshots:

  1. Graph vs Neo4j
  1. CRUD refresh vs SurrealDB and pgstack
  1. Broader matrix vs SurrealDB and pgstack

The repository also contains ultra-compare, but this page is based on the two snapshots above because they are the current inspectable artifacts with actual results.

Graph vs Neo4j

The v0.2 graph snapshot favors AionDB on core traversals and graph scans.

All representative queries below kept result parity = true.

QueryAionDB p50Neo4j p50Relative result
out_depth10.546 ms9.595 msAionDB faster
out_depth20.512 ms7.457 msAionDB faster
out_depth30.407 ms4.698 msAionDB faster
in_depth10.653 ms4.476 msAionDB faster
edge_filter12.810 ms30.640 msAionDB faster
multi_out_where15.845 ms34.657 msAionDB faster
variable_len_40.549 ms6.024 msAionDB faster
shortest_path0.927 ms3.022 msAionDB faster

Read this correctly

This is not a claim that AionDB beats Neo4j on every graph workload. It is a narrow claim: on this pinned local graph workload, with this dataset, with this harness, AionDB is ahead on the measured traversal and shortest-path shapes.

Broader matrix vs SurrealDB and pgstack

The broader matrix is mixed, which is why this page keeps it separate.

Fresh CRUD snapshot from surreal-suite:

WorkloadAionDBSurrealDBpgstackRead
[C]reate203.8 ops/s197.0 ops/s486.4 ops/snear tie with SurrealDB; pgstack ahead
[R]ead1409.1 ops/s1840.3 ops/s4545.6 ops/sAionDB behind both, but same order of magnitude as SurrealDB
[U]pdate556.1 ops/s520.1 ops/s1128.1 ops/snear tie with SurrealDB; pgstack ahead

Representative broader graph/hybrid results from the full surreal-suite snapshot:

WorkloadAionDBSurrealDBpgstackRead
[S]can::count_all (2000)7819.5 ops/s168.85 ops/s1073.5 ops/sAionDB far ahead
[S]can::graph_edge_filter (2000)1056.55 ops/s219.0 ops/s446.55 ops/sAionDB ahead
[S]can::graph_bidirectional (2000)2874.1 ops/s1322.1 ops/s8.66 ops/sAionDB ahead
[S]can::graph_multi_count (2000)2597.4 ops/s22.82 ops/s532.8 ops/sAionDB ahead
[S]can::graph_multi_out (2000)328.9 ops/s341.9 ops/sUNSUPPORTEDnear tie, slight SurrealDB lead
[Complex]::graph_two_hop_filter_aggregate (5000)35.20 ops/sUNSUPPORTED0.35 ops/sAionDB ahead where supported
[Complex]::vector_join_graph_filter_rank (5000)61.15 ops/sUNSUPPORTED418.05 ops/spgstack ahead

What this means

The broader v0.2 picture:

Describe v0.2 as:

strong on a growing set of graph and hybrid shapes, mixed as a general benchmark matrix.

Not:

faster than Neo4j, PostgreSQL, and SurrealDB overall.

Short read

Reproduce the snapshots

Current Neo4j graph snapshot:

python3 benchmarks/neo4j-graph-compare/run.py \
  --rows 5000 \
  --degree 4 \
  --warmup 2 \
  --iterations 6

Broader SurrealDB / pgstack matrix:

SURREAL_SUITE_ROWS=2000 \
SURREAL_SUITE_WARMUP_SECONDS=3 \
SURREAL_SUITE_ITERATIONS=1 \
SURREAL_SUITE_DURATION_SECONDS=20 \
benchmarks/run.sh surreal-suite

For claim discipline, keep: