We benchmark Semurg in public against the databases teams already run, and we publish each comparison with the release it was measured on.
The rules
- Same machine, same data, same question. Every engine has to return the same answer, or the row does not count.
- Every other engine in its fastest form: its embedded mode where it has one, its fastest client and tuning where it does not.
- Every chart names the published release it was measured on, and the page links the kit to rerun it on your own machine.
The results so far
Across 11 domains, measured on our published releases r11.118 to r11.127, Semurg is faster in 78 of the 82 head-to-head comparisons published so far.
| Domain | Semurg faster in | Range |
|---|---|---|
| Graph | 15 of 15 | 5.97x to 617x |
| Vector | 9 of 9 | 1.33x to 26.1x |
| Time series | 11 of 11 | 1.62x to 41.1x |
| Key-value | 6 of 6 | 2.8x to 3x |
| Document | 8 of 8 | 1.65x to 3.31x |
| Search | 4 of 4 | 2.63x to 10.1x |
| Object | 4 of 4 | 5.99x to 30x |
| Vector + graph RAG | 8 of 8 | 1.09x to 246x |
| Knowledge graph | 9 of 10 | 1.59x to 17.4x |
| Streaming | 3 of 5 | 1.44x to 17x |
| Columnar | 1 of 2 | 1.21x |
A few rows, as the page shows them:
- Graph, a 4-hop query on SNAP's com-Orkut social graph (117.2 million relationships): Semurg 2.94 ms. Neo4j 286 ms, ArangoDB 347 ms, FalkorDB 207 ms, ArcadeDB 74.3 ms.
- Vector search: Semurg 14.3 ms. Milvus 19 ms, pgvector 59.3 ms, Weaviate 374 ms.
- Time series: Semurg 0.14 ms. TimescaleDB 0.34 ms, InfluxDB 0.52 ms, ClickHouse 2.74 ms.
- Documents: Semurg 0.096 ms against MongoDB's 0.26 ms for a point read.
What is not a win
Of the published comparisons, the four Semurg does not win are ties within the measured run-to-run noise, and they sit on the page beside the wins:
- Columnar against ClickHouse: 17.6 ms vs 17.7 ms.
- Streaming latency against Kafka: 0.3 ms vs 0.31 ms.
- Streaming throughput against Redpanda: 26,992 vs 30,730 queries/s, inside the band.
- Knowledge graph against Postgres: 0.18 ms vs 0.21 ms.
Not every comparison is on the page yet. Our rule is that a result we lose is published once we have worked on it, or after two releases at most, and today several data-loading comparisons are in that queue (the page already notes one: on engine work alone, RocksDB loads a key-value dataset 1.65x faster than Semurg). The page also lists the domains still being re-run.
Bigger than memory
We also run graphs that do not fit in the memory an engine is given. On SNAP's com-Friendster graph (1.8 billion relationships, every engine held to 12 GB), Semurg answered a 4-hop query in 1.41 s and kept answering out to 131,072 hops. Neo4j had not answered the first 4-hop query when its time ran out after 2,345 s, and FalkorDB ran out of memory while loading. More domains are being re-run bigger than memory now.
What Semurg is for
Semurg is a memory for AI agents: a knowledge graph, vectors and graph RAG in one engine, on your own hardware. Agents connect over MCP (uvx semurg mcp, or one config line in Claude Code, Cursor and the other MCP clients), and Python apps with pip install semurg. The first node is free, with no licence key.
- Results and the rerun kit: https://one.semurg.io/benchmark
- Install: https://one.semurg.io/install
Which database would you want us to add to the page, and which test would you trust most?
Every chart and its source, on our blog: https://one.semurg.io/blog/semurg-against-the-databases-you-run (and the bigger-than-memory run in full: https://one.semurg.io/blog/a-graph-bigger-than-memory)
This post was drafted with AI assistance and checked line by line against the published benchmark page.
Top comments (0)