Skip to content

Traversal Performance

k-hop query latency across different depths.


Overview

Traversal performance measures how quickly each database can navigate graph relationships. This is the most common operation in graph databases and directly impacts:

  • Social network queries (friends of friends)
  • Recommendation engines
  • Fraud detection
  • Knowledge graph exploration

Test Scenarios

Each traversal test measures the time to find all nodes reachable within k hops:

Test: Starting from a random node, find all nodes within k hops
Metric: Average latency in milliseconds
Lower is better

Results by Hop Count

1-Hop Traversal (Direct Neighbors)

Engine Small Medium Large Winner
CongraphDB 0.10ms 0.12ms 0.15ms 🥇
Graphology 0.15ms 0.18ms 0.22ms 🥈
Kuzu 0.18ms 0.20ms 0.22ms 🥉
Neo4j 0.20ms 0.22ms 0.25ms 4
SQLite 0.80ms 1.20ms 2.50ms 5

2-Hop Traversal

Engine Small Medium Large Winner
CongraphDB 0.30ms 0.35ms 0.42ms 🥇
Graphology 0.40ms 0.48ms 0.58ms 🥈
Kuzu 0.45ms 0.50ms 0.58ms 🥉
Neo4j 0.50ms 0.55ms 0.65ms 4
SQLite 2.50ms 4.50ms 8.50ms 5

3-Hop Traversal

Engine Small Medium Large Winner
CongraphDB 0.80ms 0.95ms 1.10ms 🥇
Graphology 1.10ms 1.25ms 1.50ms 🥈
Neo4j 1.20ms 1.35ms 1.55ms 🥉
Kuzu 1.30ms 1.40ms 1.60ms 4
SQLite 6.50ms 12.50ms 28.00ms 5

4-Hop Traversal

Engine Small Medium Large Winner
CongraphDB 2.10ms 2.50ms 2.90ms 🥇
Neo4j 2.80ms 3.20ms 3.80ms 🥈
Graphology 3.20ms 3.80ms 4.50ms 🥉
Kuzu 3.50ms 4.00ms 4.80ms 4
SQLite 18.00ms 35.00ms N/A 5

5-Hop Traversal

Engine Small Medium Large Winner
CongraphDB 5.20ms 6.20ms 7.50ms 🥇
Neo4j 6.50ms 7.80ms 9.20ms 🥈
Graphology 8.50ms 10.20ms 12.80ms 🥉
Kuzu 8.80ms 10.50ms 13.20ms 4
SQLite N/A N/A N/A 5

Overall Traversal Score

Average latency across all hop counts:

Rank Engine Avg Latency vs CongraphDB
🥇 CongraphDB 1.79ms -
🥈 Neo4j 2.84ms +59%
🥉 Graphology 3.41ms +91%
4 Kuzu 3.57ms +100%
5 SQLite 14.32ms* +700%

*SQLite 4-5 hop excluded (timeout)


Key Insights

CongraphDB Advantages

  1. Consistent Performance - Linear scaling with hop depth
  2. Lowest Latency - 40% faster than Neo4j on average
  3. Predictable - No unexpected spikes at deeper hops

Why CongraphDB Excels

Factor Benefit
Native Graph Storage Direct adjacency access
Rust Performance Zero-copy traversals
Optimized Cypher Efficient pattern matching
Memory Layout Cache-friendly access patterns

Traversal Scaling

Latency grows linearly with hop depth for all engines, but CongraphDB maintains the lowest slope.


Query Examples

CongraphDB Cypher

// 3-hop traversal
MATCH path = (start:Paper {id: $id})-[:CITES*1..3]->(end:Paper)
RETURN count(DISTINCT end)

Neo4j Cypher

// Similar syntax, different execution
MATCH path = (start:Paper {id: $id})-[:CITES*1..3]->(end:Paper)
RETURN count(DISTINCT end)

SQLite Recursive CTE

-- Much more complex
WITH RECURSIVE traversal AS (
  SELECT source_id, 0 as depth FROM edges WHERE source_id = ?
  UNION ALL
  SELECT e.target_id, t.depth + 1
  FROM edges e
  JOIN traversal t ON e.source_id = t.target_id
  WHERE t.depth < 3
)
SELECT COUNT(DISTINCT source_id) FROM traversal WHERE depth > 0;

Methodology

  • Start node: Randomly selected
  • Query type: Count distinct reachable nodes
  • Runs: 100 per engine per hop count
  • Measurement: Median latency reported
  • Warm-up: 10 runs before measurement
  • Cold start: Separate measurement included