FalkorDB Delivers Superior Performance in Graph Database Benchmarks
New performance benchmarks results demonstrate FalkorDB’s significant performance advantages in aggregate expansion operations compared to Neo4j. The data reveals consistent sub-140ms response times at p99, while Neo4j experiences multi-second latencies under similar conditions.
- The benchmark is composed of 11 templated queries, which represent a general usage of classic graph operations.
- Latency is measured from client initial request and up to the receive and parse of the result-set.
- The queries are chosen randomly so the read/write ratio should be about the same as the ratio between read and write queries in the templates. 82% Read 18% Write.
Performance metrics
The benchmark results show FalkorDB’s clear performance advantages:
- Median (p50) Performance: FalkorDB processes queries in 55ms compared to Neo4j’s 577.5ms
- High Load (p90): FalkorDB maintains 108ms response time versus Neo4j’s 4784.1ms
- Peak Load (p99): FalkorDB delivers 136.2ms latency while Neo4j reaches 46923.8ms
Technical analysis
FalkorDB demonstrates stability across workload levels. The latency increase from p50 to p99 stays within a 2.5x factor, indicating predictable performance under varying loads. The benchmark, conducted on a 16-CPU system with 32GB RAM, shows FalkorDB’s efficient resource utilization. This translates to lower infrastructure requirements and reduced operational costs.
Cypher queries used
Query | Description |
CYPHER id = 2237 MATCH (s:User {id: $id})–>()–>(n:User) RETURN DISTINCT n.id | 2 hops traversal from a single source |
CYPHER id = 952 MATCH (s:User {id: $id})–>()–>(n:User) WHERE n.age >= 18 RETURN DISTINCT n.id | 2 hops traversal from a single source, filter destination |
CYPHER from = 1256 to = 4849 MATCH (n:User {id: $from}), (m:User {id: $to}) WITH n, m CREATE (n)-[e:Temp]->(m) RETURN e | Create an edge between two existing nodes |
CYPHER id = 4702 MATCH (s:User {id: $id})–>(n:User) RETURN n.id | Find all neighbors of a node |
CYPHER id = 6618 CREATE (n:UserTemp {id : $id}) RETURN n | Create a new node |
CYPHER id = 1719 MATCH (n:User {id : $id}) RETURN n | Find a specific node |
Implications on RAG (Retrieval augmented generation)
Feature | FalkorDB | Neo4j | Impact on RAG |
Query Latency | Sub-140ms | >4s | Higher throughput |
Multi-tenancy | Native | Limited | Better resource utilization |
GraphRAG Support | Built-in | Custom | Faster implementation |
Scaling Model | Horizontal | Vertical |
The benchmark utilized the SNAP Pokec social network dataset, focusing on aggregate expansion operations – a common workload in production environments. Testing was performed on:
- Architecture: x86_64
- CPU: 8 cores/16 threads
- Memory: 32GB RAM
- Platform: Linux-based GitHub Actions Runner
Production considerations
FalkorDB supports:
- Cypher query language compatibility
- Redis persistence mechanisms
- Major programming language integrations
- Multi-tenant deployments
- Horizontal scaling capabilities
These results demonstrate FalkorDB’s capability to handle mission-critical graph database workloads while maintaining consistent performance under pressure.
Benchmarks FAQ
Yes, FalkorDB supports the Cypher query language, making migration from Neo4j straightforward. Migration tools are in development.
FalkorDB requires a Linux/Unix system with 4GB RAM minimum. For production environments, 16GB RAM is recommended.
FalkorDB uses the Cypher query language, similar to Neo4j, making migration straightforward.
Yes, through Redis persistence mechanisms (RDB/AOF). Additional persistence options are in development.
Yes, through Redis clients and the Bolt protocol, supporting major languages including Python, Java, Go, and Node.js.
Yes, FalkorDB is stable for production use, being a continuation of the production-tested RedisGraph codebase.
Install OpenMP:
- Ubuntu: apt-get install libgomp1
- RHEL/CentOS: yum install libgomp
- OSX: brew install libomp