Graph Database Benchmarks: 5 Workloads Explained
- Average speed
- km/h
- Result
- Finish time
- 50 min
- You entered
- Distance
- 10 km
- You entered
Managed graph database benchmarks measure performance under five distinct workload types: transactional (OLTP), analytical (OLAP), traversal, pattern matching, and mixed/hybrid. Each workload stresses different engine components, so no single benchmark winner exists; the right database depends on which workload matches your application. This article explains what each of the five workloads reveals about a graph database’s performance, and how to interpret benchmark results for your own use case.
Formula
The calculator above computes your average pace and speed for a run, walk, or bike ride. The formulas are simple:
- Pace (min/km) = Finish time (min) ÷ Distance (km)
- Speed (km/h) = Distance (km) ÷ (Finish time (min) ÷ 60)
Where:
- Finish time (t) – total minutes elapsed from start to finish (e.g., 50 minutes)
- Distance (d) – total distance covered in kilometers (e.g., 10 km)
- Pace – minutes per kilometer, the standard metric for runners
- Speed – kilometers per hour, the standard metric for vehicles and cyclists
Pace and speed are reciprocals: if you run faster, your pace number goes down while your speed number goes up. The calculator gives both so you can use whichever your sport or app expects.
Worked Example
Using the default values from the calculator above (finish time = 50 minutes, distance = 10 km):
- Pace = 50 min ÷ 10 km = 5.00 min/km
- Speed = 10 km ÷ (50 ÷ 60) = 10 km ÷ 0.8333 h = 12.00 km/h
So a 50-minute 10K means an average pace of 5 minutes per kilometer and an average speed of 12 kilometers per hour. The calculator rounds both to two decimal places, matching these results.
Why Workload Matters in Graph Benchmarks
Graph databases are optimized for different operations. A transactional workload (like recording a new friendship) requires fast writes and small reads. An analytical workload (like finding the most connected person in a social network) requires scanning millions of edges. Traversal workloads (like finding friends-of-friends) test how efficiently the engine hops along edges. Pattern matching (like finding all triangles in a network) tests complex join logic. Mixed workloads combine these, simulating real applications that both write and read.
Benchmarks that mix these workloads give a more realistic picture than single-query tests. For example, the LDBC Social Network Benchmark (SNB) includes both interactive (transactional) and business intelligence (analytical) workloads. The Linked Data Benchmark Council (LDBC) publishes official results, but many vendors also run their own tests. When reading any benchmark, check which workload was used and whether the dataset size matches your own data volume.
The Five Workloads in Detail
Here is what each of the five managed graph database benchmark workloads actually reveals:
- Transactional (OLTP) – Measures latency and throughput for short, frequent operations like inserting a node, updating a property, or reading a single relationship. Reveals how well the database handles concurrent writes and point lookups, critical for real-time applications like fraud detection or social feeds.
- Analytical (OLAP) – Measures time to complete complex queries that scan large portions of the graph, such as computing PageRank, finding connected components, or aggregating properties. Reveals the engine’s ability to use parallel processing, columnar storage, and bulk operations.
- Traversal – Measures performance of multi-hop queries like “find all people within 3 degrees of person X.” Reveals how efficiently the engine follows edges, uses indexes, and avoids full scans. Deep traversals are common in recommendation engines and network analysis.
- Pattern Matching – Measures performance of queries that search for specific subgraph shapes, like “find all pairs of users who liked the same movie and are friends.” Reveals the optimizer’s ability to plan joins and use indexes, critical for fraud rings and social graph mining.
- Mixed / Hybrid – Measures performance under a realistic mix of transactional and analytical operations, often with a time limit. Reveals how well the engine balances write load with background analytics, simulating production traffic.
Each workload uses different query patterns, so a database that excels at OLTP may lag on OLAP. For instance, Neo4j has historically been strong in traversals, while Amazon Neptune and ArangoDB have shown strengths in different areas. But benchmarks evolve, and managed services add features like read replicas or columnar indexes that change results.
How Managed Graph Databases Differ from Self-Hosted
Managed graph databases (like Amazon Neptune, Microsoft Azure Cosmos DB with Gremlin API, or Neo4j Aura) add layers that affect benchmark results:
- Networking overhead – Managed services are accessed over the network, adding latency compared to local tests.
- Multi-tenancy – Your cluster may share physical resources with other customers, though most providers isolate compute.
- Backup and replication – Managed services automatically replicate data across availability zones, which can slow writes but improve durability.
- Scaling – You can often scale read replicas independently, which changes throughput numbers.
Therefore, vendor-published benchmarks for managed services may not reflect your exact configuration. Always run your own load test with your data and query patterns before committing.
How to Choose a Graph Database Based on Workload
Start by identifying your dominant workload. If you run a social network with frequent updates and friend-of-friend queries, prioritize OLTP and traversal performance. If you run a fraud detection system that analyzes historical patterns, prioritize OLAP and pattern matching. If you are building a recommendation engine, traversal and pattern matching matter most.
Next, look at benchmark results that match your workload. For example, the LDBC SNB interactive workload is a good proxy for OLTP, while the LDBC BI workload approximates OLAP. But also consider:
- Data size – Benchmarks use scale factors (e.g., 1GB, 10GB, 100GB). Choose results closest to your expected data volume.
- Query complexity – Simple point lookups vs. multi-hop traversals – make sure the benchmark includes similar query shapes.
- Consistency – Some databases offer tunable consistency; stronger consistency usually costs performance.
Finally, test with your own data. Benchmarks are a starting point, not a substitute for a proof-of-concept.
Common Mistakes When Interpreting Graph Benchmarks
One common mistake is comparing results from different benchmark versions or different hardware. Always check the benchmark specification, dataset scale, and hardware configuration. Another mistake is assuming a single query time represents overall performance – a database might be fast at one query but slow at another. Also, beware of vendor-optimized configurations that may not reflect default settings. Finally, don’t ignore the cost of loading data – some databases load quickly but query slowly, or vice versa.
Another misconception is that graph databases are always faster than relational for any connected data. For simple queries, relational databases with proper indexes can be just as fast. Graph databases excel when queries involve variable-length paths or deep traversals that would require many joins in SQL.
Limitations of Graph Benchmarks
Benchmarks cannot capture every real-world factor. They typically use synthetic data that may not reflect your data’s skew, density, or property distributions. They also ignore operational factors like backup time, failover behavior, and maintenance windows. Finally, benchmarks measure performance in isolation, not under mixed production traffic with other applications on the same cluster.
For managed services, network latency and multi-tenancy effects are often excluded from vendor benchmarks, so your actual performance may differ. Always benchmark with your own data and query set, and include a realistic mix of reads and writes.
Frequently Asked Questions
What is the most common graph database benchmark?
The LDBC Social Network Benchmark (SNB) is the most widely used, with both interactive (OLTP) and business intelligence (OLAP) workloads. It uses a realistic social network dataset and provides standardized queries. Many vendors publish results, making it a good starting point for comparison.
How long does a graph benchmark take to run?
It depends on the scale and workload. Interactive workloads with small datasets can finish in minutes, while large analytical workloads on 100GB graphs may take hours. Managed services often have time limits, so you may need to run queries in batches.
Can I run a benchmark on a free tier of a managed graph database?
Many providers offer free tiers, but they are often limited in memory and compute, which will skew results. Use a free tier for functional testing, not for performance benchmarking. For accurate numbers, use a paid tier that matches your expected production size.
Do graph databases support SQL?
Some do, like Neo4j’s Cypher and Amazon Neptune’s openCypher, but they are not standard SQL. Others use Gremlin or SPARQL. If you need SQL, consider a relational database with graph extensions (like PostgreSQL with recursive queries) or a multi-model database that supports both.
What is the difference between a graph database and a graph processing engine?
A graph database (like Neo4j) is optimized for transactional reads and writes, while a graph processing engine (like Apache Giraph or GraphX) is designed for offline analytical processing on large graphs. Some databases, like TigerGraph, combine both, but many benchmarks separate the two.
How does data size affect benchmark results?
As data grows, traversal and pattern matching queries typically slow down unless the engine uses efficient indexing and partitioning. Analytical queries may scale sub-linearly if the engine parallelizes well. Always benchmark at a scale close to your expected data volume to get realistic numbers.
Related
Formula used
in t | Finish time | min | 50 | 0 in d | Distance | km | 10 | 0 out pace | Average pace | min/km | t / d | 2 out speed | Average speed | km/h | d / (t / 60) | 2
Each line is one input (in, sel, list) or one result (out: label, unit, formula, decimals). How the calculators work
Method: the standard formula for this calculation, rounded as each result states. See how the calculators work or report an error.