Measured on Semurg r11.54 to r11.71, 29 September to 7 October 2026

Graph, key-value, object, document, search and knowledge graph: wins and losses in the same chart.

The same question, the same answer, the same machine. Every other engine in its fastest form. Nine more domains are added here as their rows pass the same checks.

How to read the charts
  • Every chart compares Semurg with another engine on the same question.
  • Each bar is a ratio: how many times faster (red, to the right) or slower (black, to the left) Semurg is than the engine named on that row.
  • Beside each name are the two measured figures, Semurg's first.
Semurg fasterSemurg slowerThe centre line: the same speed. Hover a bar for the detail.
  • Inside your application (the left column): Semurg runs in your app, with no network hop, against the other engine's own embedded mode where it has one, otherwise its fastest connection, named on each bar.
  • As a server (the right column): Semurg over its fastest connection against the other engine's fastest connection.

Two ways to run Semurg, both first-class. Inside your application (the left column): Semurg runs in your application's own process, with no network hop between them. As a server (the right column): Semurg runs as its own service and your application reaches it over the network; several servers form a cluster. In both, a write is acknowledged only after the drive has completed it, so if your application or Semurg is stopped or killed, nothing it acknowledged is lost. On a single node, a sudden power cut or an operating-system crash can lose the most recent writes (the last few seconds); network durability starts at the second node.

Bigger than RAM: each domain will be measured again on a dataset at least twice the size of the machine's memory, where every engine has to read from disk; these runs are scheduled and their results appear here as they complete.

  • One Cherry Servers box: AMD EPYC 9354, 32 cores / 64 threads, 377 GB RAM, NVMe; CPU only, no GPU
  • Both engines in Docker on the same box
  • Each engine in its fastest query form, sized by its own tooling
  • Answers checked identical before anything is timed
  • The other engines' many-at-once clients run as separate processes; the count is in each bar's detail
  • Semurg r11.54 to r11.71, measured 29 September to 7 October 2026

Domains

Graph

pokec social graph, 1.6M people, 30.6M relationships. Every engine returns the same 176,181 people at 4 hops.

Some comparisons are still being measured; their results appear here as they complete.

In-memory dataset

Inside your application

Engines with no in-application mode are shown through their own fastest connection, which favours Semurg.

Inside your applicationOne query, 4 hops measured on r11.59, carriedmedian time per query
◀ Semurg slowerSemurg faster ▶100 times10 timessame speed10 times100 times1000 timesSemurg inside the application 2.54 ms vs Neo4j 52.1 ms. Semurg inside the application is 20.5 times faster than Neo4j. Neo4j 5.26.30 embedded (Java, in-process), Cypher variable-length, sized by its own toolSemurg vs Neo4j2.54 vs 52.1 ms20.5 times fasterSemurg inside the application 2.54 ms vs FalkorDB (its fastest connection (no embedded mode)) 97.4 ms. Semurg inside the application is 38.4 times faster than FalkorDBSemurg vs FalkorDB2.54 vs 97.4 ms38.4 times fasterSemurg inside the application 2.54 ms vs ArangoDB (its fastest connection (no embedded mode)) 99.3 ms. Semurg inside the application is 39.1 times faster than ArangoDBSemurg vs ArangoDB2.54 vs 99.3 ms39.1 times faster◀ Semurg slowerSemurg faster ▶100 times10 timessame speed10 times100 times1000 timesSemurg inside the application 2.54 ms vs Neo4j 52.1 ms. Semurg inside the application is 20.5 times faster than Neo4j. Neo4j 5.26.30 embedded (Java, in-process), Cypher variable-length, sized by its own toolSemurg vs Neo4j2.54 vs 52.1 ms20.5 times fasterSemurg inside the application 2.54 ms vs FalkorDB (its fastest connection (no embedded mode)) 97.4 ms. Semurg inside the application is 38.4 times faster than FalkorDBSemurg vs FalkorDB2.54 vs 97.4 ms38.4 times fasterSemurg inside the application 2.54 ms vs ArangoDB (its fastest connection (no embedded mode)) 99.3 ms. Semurg inside the application is 39.1 times faster than ArangoDBSemurg vs ArangoDB2.54 vs 99.3 ms39.1 times faster
Inside your application64 queries at once, 4 hops measured on r11.59, carriedqueries per second
◀ Semurg slowerSemurg faster ▶100 times10 timessame speed10 times100 times1000 timesSemurg inside the application 1,574 queries/s vs Neo4j 183 queries/s. Semurg inside the application is 8.61 times faster than Neo4j. embedded, 64 in-process threadsSemurg vs Neo4j1,574 vs 183 queries/s8.61 times fasterSemurg inside the application 1,574 queries/s vs ArangoDB 72.5 queries/s. Semurg inside the application is 21.7 times faster than ArangoDBSemurg vs ArangoDB1,574 vs 72.5 queries/s21.7 times fasterSemurg inside the application 1,574 queries/s vs FalkorDB 44.6 queries/s. Semurg inside the application is 35.3 times faster than FalkorDBSemurg vs FalkorDB1,574 vs 44.6 queries/s35.3 times faster◀ Semurg slowerSemurg faster ▶100 times10 timessame speed10 times100 times1000 timesSemurg inside the application 1,574 queries/s vs Neo4j 183 queries/s. Semurg inside the application is 8.61 times faster than Neo4j. embedded, 64 in-process threadsSemurg vs Neo4j1,574 vs 183 queries/s8.61 times fasterSemurg inside the application 1,574 queries/s vs ArangoDB 72.5 queries/s. Semurg inside the application is 21.7 times faster than ArangoDBSemurg vs ArangoDB1,574 vs 72.5 queries/s21.7 times fasterSemurg inside the application 1,574 queries/s vs FalkorDB 44.6 queries/s. Semurg inside the application is 35.3 times faster than FalkorDBSemurg vs FalkorDB1,574 vs 44.6 queries/s35.3 times faster
Inside your applicationSemurg vs Neo4j: one query, by depth measured on r11.59, carriedmedian time per query; Neo4j at its best measured figure
◀ Semurg slowerSemurg faster ▶100 times10 timessame speed10 times100 times1000 times2 hops: Semurg inside the application 0.42 ms vs Neo4j 0.46 ms. Semurg inside the application is 1.09 times faster than Neo4j2 hops0.42 vs 0.46 ms1.09 times faster4 hops: Semurg inside the application 2.54 ms vs Neo4j 52.1 ms. Semurg inside the application is 20.5 times faster than Neo4j4 hops2.54 vs 52.1 ms20.5 times faster8 hops: Semurg inside the application 50.6 ms vs Neo4j 5,593 ms. Semurg inside the application is 110 times faster than Neo4j8 hops50.6 vs 5,593 ms110 times faster16 hops: Semurg inside the application 58.1 ms vs Neo4j 5,632 ms. Semurg inside the application is 96.9 times faster than Neo4j16 hops58.1 vs 5,632 ms96.9 times faster32 hops: Semurg inside the application 59.2 ms vs Neo4j 5,570 ms. Semurg inside the application is 94 times faster than Neo4j32 hops59.2 vs 5,570 ms94 times faster64 hops: Semurg inside the application 58.5 ms vs Neo4j 5,600 ms. Semurg inside the application is 95.8 times faster than Neo4j64 hops58.5 vs 5,600 ms95.8 times faster128 hops: Semurg inside the application 57.7 ms vs Neo4j 5,529 ms. Semurg inside the application is 95.8 times faster than Neo4j128 hops57.7 vs 5,529 ms95.8 times faster256 hops: Semurg inside the application 57.9 ms vs Neo4j 5,454 ms. Semurg inside the application is 94.2 times faster than Neo4j256 hops57.9 vs 5,454 ms94.2 times faster512 hops: Semurg inside the application 56.9 ms vs Neo4j 5,483 ms. Semurg inside the application is 96.3 times faster than Neo4j512 hops56.9 vs 5,483 ms96.3 times faster1024 hops: Semurg inside the application 51.7 ms vs Neo4j 5,466 ms. Semurg inside the application is 106 times faster than Neo4j1024 hops51.7 vs 5,466 ms106 times faster◀ Semurg slowerSemurg faster ▶100 times10 timessame speed10 times100 times1000 times2 hops: Semurg inside the application 0.42 ms vs Neo4j 0.46 ms. Semurg inside the application is 1.09 times faster than Neo4j2 hops0.42 vs 0.46 ms1.09 times faster4 hops: Semurg inside the application 2.54 ms vs Neo4j 52.1 ms. Semurg inside the application is 20.5 times faster than Neo4j4 hops2.54 vs 52.1 ms20.5 times faster8 hops: Semurg inside the application 50.6 ms vs Neo4j 5,593 ms. Semurg inside the application is 110 times faster than Neo4j8 hops50.6 vs 5,593 ms110 times faster16 hops: Semurg inside the application 58.1 ms vs Neo4j 5,632 ms. Semurg inside the application is 96.9 times faster than Neo4j16 hops58.1 vs 5,632 ms96.9 times faster32 hops: Semurg inside the application 59.2 ms vs Neo4j 5,570 ms. Semurg inside the application is 94 times faster than Neo4j32 hops59.2 vs 5,570 ms94 times faster64 hops: Semurg inside the application 58.5 ms vs Neo4j 5,600 ms. Semurg inside the application is 95.8 times faster than Neo4j64 hops58.5 vs 5,600 ms95.8 times faster128 hops: Semurg inside the application 57.7 ms vs Neo4j 5,529 ms. Semurg inside the application is 95.8 times faster than Neo4j128 hops57.7 vs 5,529 ms95.8 times faster256 hops: Semurg inside the application 57.9 ms vs Neo4j 5,454 ms. Semurg inside the application is 94.2 times faster than Neo4j256 hops57.9 vs 5,454 ms94.2 times faster512 hops: Semurg inside the application 56.9 ms vs Neo4j 5,483 ms. Semurg inside the application is 96.3 times faster than Neo4j512 hops56.9 vs 5,483 ms96.3 times faster1024 hops: Semurg inside the application 51.7 ms vs Neo4j 5,466 ms. Semurg inside the application is 106 times faster than Neo4j1024 hops51.7 vs 5,466 ms106 times faster
Inside your applicationSemurg vs Neo4j: 64 queries at once, by depth measured on r11.59, carriedqueries per second; Neo4j at its best measured figure
◀ Semurg slowerSemurg faster ▶100 times10 timessame speed10 times100 times1000 times2 hops: Semurg inside the application 53,159 queries/s vs Neo4j 166,536 queries/s. Semurg inside the application is 3.13 times slower than Neo4j2 hops53,159 vs 166,536 queries/s3.13 times slower4 hops: Semurg inside the application 1,574 queries/s vs Neo4j 183 queries/s. Semurg inside the application is 8.61 times faster than Neo4j4 hops1,574 vs 183 queries/s8.61 times faster8 hops: Semurg inside the application 62.5 queries/s vs Neo4j 7.15 queries/s. Semurg inside the application is 8.74 times faster than Neo4j8 hops62.5 vs 7.15 queries/s8.74 times faster16 hops: Semurg inside the application 60.9 queries/s vs Neo4j 6.82 queries/s. Semurg inside the application is 8.93 times faster than Neo4j16 hops60.9 vs 6.82 queries/s8.93 times faster32 hops: Semurg inside the application 60.9 queries/s vs Neo4j 7 queries/s. Semurg inside the application is 8.7 times faster than Neo4j32 hops60.9 vs 7 queries/s8.7 times faster64 hops: Semurg inside the application 61 queries/s vs Neo4j 6.94 queries/s. Semurg inside the application is 8.79 times faster than Neo4j64 hops61 vs 6.94 queries/s8.79 times faster128 hops: Semurg inside the application 61.6 queries/s vs Neo4j 7.59 queries/s. Semurg inside the application is 8.12 times faster than Neo4j128 hops61.6 vs 7.59 queries/s8.12 times faster256 hops: Semurg inside the application 61.6 queries/s vs Neo4j 7.17 queries/s. Semurg inside the application is 8.59 times faster than Neo4j256 hops61.6 vs 7.17 queries/s8.59 times faster512 hops: Semurg inside the application 61.7 queries/s vs Neo4j 6.72 queries/s. Semurg inside the application is 9.18 times faster than Neo4j512 hops61.7 vs 6.72 queries/s9.18 times faster1024 hops: Semurg inside the application 61.6 queries/s vs Neo4j 6.63 queries/s. Semurg inside the application is 9.29 times faster than Neo4j1024 hops61.6 vs 6.63 queries/s9.29 times faster◀ Semurg slowerSemurg faster ▶100 times10 timessame speed10 times100 times1000 times2 hops: Semurg inside the application 53,159 queries/s vs Neo4j 166,536 queries/s. Semurg inside the application is 3.13 times slower than Neo4j2 hops53,159 vs 166,536 queries/s3.13 times slower4 hops: Semurg inside the application 1,574 queries/s vs Neo4j 183 queries/s. Semurg inside the application is 8.61 times faster than Neo4j4 hops1,574 vs 183 queries/s8.61 times faster8 hops: Semurg inside the application 62.5 queries/s vs Neo4j 7.15 queries/s. Semurg inside the application is 8.74 times faster than Neo4j8 hops62.5 vs 7.15 queries/s8.74 times faster16 hops: Semurg inside the application 60.9 queries/s vs Neo4j 6.82 queries/s. Semurg inside the application is 8.93 times faster than Neo4j16 hops60.9 vs 6.82 queries/s8.93 times faster32 hops: Semurg inside the application 60.9 queries/s vs Neo4j 7 queries/s. Semurg inside the application is 8.7 times faster than Neo4j32 hops60.9 vs 7 queries/s8.7 times faster64 hops: Semurg inside the application 61 queries/s vs Neo4j 6.94 queries/s. Semurg inside the application is 8.79 times faster than Neo4j64 hops61 vs 6.94 queries/s8.79 times faster128 hops: Semurg inside the application 61.6 queries/s vs Neo4j 7.59 queries/s. Semurg inside the application is 8.12 times faster than Neo4j128 hops61.6 vs 7.59 queries/s8.12 times faster256 hops: Semurg inside the application 61.6 queries/s vs Neo4j 7.17 queries/s. Semurg inside the application is 8.59 times faster than Neo4j256 hops61.6 vs 7.17 queries/s8.59 times faster512 hops: Semurg inside the application 61.7 queries/s vs Neo4j 6.72 queries/s. Semurg inside the application is 9.18 times faster than Neo4j512 hops61.7 vs 6.72 queries/s9.18 times faster1024 hops: Semurg inside the application 61.6 queries/s vs Neo4j 6.63 queries/s. Semurg inside the application is 9.29 times faster than Neo4j1024 hops61.6 vs 6.63 queries/s9.29 times faster
Inside your applicationWalk to 131,072 hops, total time measured on r11.54, carried17 steps, each checked against the reference answer
◀ Semurg slowerSemurg faster ▶100 times10 timessame speed10 times100 times1000 timesSemurg inside the application 1.05 s vs FalkorDB (its fastest connection) 4.67 s. Semurg inside the application is 4.44 times faster than FalkorDBSemurg vs FalkorDB1.05 vs 4.67 s4.44 times fasterSemurg inside the application 1.05 s vs Neo4j 84 s. Semurg inside the application is 79.8 times faster than Neo4j. embeddedSemurg vs Neo4j1.05 vs 84 s79.8 times fasterSemurg inside the application 1.05 s vs ArangoDB (its fastest connection) 278 s. Semurg inside the application is 264 times faster than ArangoDBSemurg vs ArangoDB1.05 vs 278 s264 times faster◀ Semurg slowerSemurg faster ▶100 times10 timessame speed10 times100 times1000 timesSemurg inside the application 1.05 s vs FalkorDB (its fastest connection) 4.67 s. Semurg inside the application is 4.44 times faster than FalkorDBSemurg vs FalkorDB1.05 vs 4.67 s4.44 times fasterSemurg inside the application 1.05 s vs Neo4j 84 s. Semurg inside the application is 79.8 times faster than Neo4j. embeddedSemurg vs Neo4j1.05 vs 84 s79.8 times fasterSemurg inside the application 1.05 s vs ArangoDB (its fastest connection) 278 s. Semurg inside the application is 264 times faster than ArangoDBSemurg vs ArangoDB1.05 vs 278 s264 times faster

As a server

As a serverOne query, 4 hops measured on r11.59, carriedmedian time per query
◀ Semurg slowerSemurg faster ▶100 times10 timessame speed10 times100 times1000 timesSemurg 2.77 ms vs FalkorDB 97.4 ms. Semurg is 35.2 times faster than FalkorDB. FalkorDB 4.20.4, algo.BFS (its faster form)Semurg vs FalkorDB2.77 vs 97.4 ms35.2 times fasterSemurg 2.77 ms vs ArangoDB 99.3 ms. Semurg is 35.9 times faster than ArangoDB. ArangoDB 3.12.4, documented AQL traversalSemurg vs ArangoDB2.77 vs 99.3 ms35.9 times faster◀ Semurg slowerSemurg faster ▶100 times10 timessame speed10 times100 times1000 timesSemurg 2.77 ms vs FalkorDB 97.4 ms. Semurg is 35.2 times faster than FalkorDB. FalkorDB 4.20.4, algo.BFS (its faster form)Semurg vs FalkorDB2.77 vs 97.4 ms35.2 times fasterSemurg 2.77 ms vs ArangoDB 99.3 ms. Semurg is 35.9 times faster than ArangoDB. ArangoDB 3.12.4, documented AQL traversalSemurg vs ArangoDB2.77 vs 99.3 ms35.9 times faster

Neo4j, ArcadeDB, SurrealDB, De Wit Graph Database A and De Wit Graph Database B: Results pending

Engines named 'De Wit … Database A' or 'B': some database vendors' licences forbid publishing benchmark results without their permission (a 'DeWitt clause', common in the industry since the 1980s). We run those engines exactly like every other engine, on the same machine and the same questions, and show their results unranked and without their names, to respect those terms.

As a server64 queries at once, 4 hops measured on r11.59, carriedqueries per second
◀ Semurg slowerSemurg faster ▶100 times10 timessame speed10 times100 times1000 timesSemurg 1,476 queries/s vs ArangoDB 72.5 queries/s. Semurg is 20.4 times faster than ArangoDB. engine on 60 of 64 coresSemurg vs ArangoDB1,476 vs 72.5 queries/s20.4 times fasterSemurg 1,476 queries/s vs FalkorDB 44.6 queries/s. Semurg is 33.1 times faster than FalkorDB. algo.BFS, engine on 48 of 64 coresSemurg vs FalkorDB1,476 vs 44.6 queries/s33.1 times faster◀ Semurg slowerSemurg faster ▶100 times10 timessame speed10 times100 times1000 timesSemurg 1,476 queries/s vs ArangoDB 72.5 queries/s. Semurg is 20.4 times faster than ArangoDB. engine on 60 of 64 coresSemurg vs ArangoDB1,476 vs 72.5 queries/s20.4 times fasterSemurg 1,476 queries/s vs FalkorDB 44.6 queries/s. Semurg is 33.1 times faster than FalkorDB. algo.BFS, engine on 48 of 64 coresSemurg vs FalkorDB1,476 vs 44.6 queries/s33.1 times faster

Neo4j, ArcadeDB, SurrealDB, De Wit Graph Database A and De Wit Graph Database B: Results pending

As a serverSemurg vs Neo4j: one query, by depth
Results pending
As a serverSemurg vs Neo4j: 64 queries at once, by depth
Results pending
As a serverWalk to 131,072 hops, total time measured on r11.54, carried17 steps, each checked against the reference answer
◀ Semurg slowerSemurg faster ▶100 times10 timessame speed10 times100 times1000 timesSemurg 0.99 s vs FalkorDB 4.67 s. Semurg is 4.73 times faster than FalkorDB. algo.BFS, the fastest other engine hereSemurg vs FalkorDB0.99 vs 4.67 s4.73 times fasterSemurg 0.99 s vs ArangoDB 278 s. Semurg is 282 times faster than ArangoDB. documented AQL traversalSemurg vs ArangoDB0.99 vs 278 s282 times faster◀ Semurg slowerSemurg faster ▶100 times10 timessame speed10 times100 times1000 timesSemurg 0.99 s vs FalkorDB 4.67 s. Semurg is 4.73 times faster than FalkorDB. algo.BFS, the fastest other engine hereSemurg vs FalkorDB0.99 vs 4.67 s4.73 times fasterSemurg 0.99 s vs ArangoDB 278 s. Semurg is 282 times faster than ArangoDB. documented AQL traversalSemurg vs ArangoDB0.99 vs 278 s282 times faster

Neo4j: Results pending

Bigger-than-RAM dataset

Results pending
The numbers behind the graph charts
ChartModeComparisonSemurgOther engineResult
One query, 4 hopsInside your applicationSemurg vs Neo4j2.54 ms52.1 msSemurg 20.5 times faster
One query, 4 hopsInside your applicationSemurg vs FalkorDB2.54 ms97.4 msSemurg 38.4 times faster
One query, 4 hopsInside your applicationSemurg vs ArangoDB2.54 ms99.3 msSemurg 39.1 times faster
One query, 4 hopsAs a serverSemurg vs Neo4jResults pendingResults pending
One query, 4 hopsAs a serverSemurg vs FalkorDB2.77 ms97.4 msSemurg 35.2 times faster
One query, 4 hopsAs a serverSemurg vs ArangoDB2.77 ms99.3 msSemurg 35.9 times faster
One query, 4 hopsAs a serverSemurg vs ArcadeDBResults pendingResults pending
One query, 4 hopsAs a serverSemurg vs SurrealDBResults pendingResults pending
One query, 4 hopsAs a serverSemurg vs De Wit Graph Database AResults pendingResults pending
One query, 4 hopsAs a serverSemurg vs De Wit Graph Database BResults pendingResults pending
64 queries at once, 4 hopsInside your applicationSemurg vs Neo4j1,574 queries/s183 queries/sSemurg 8.61 times faster
64 queries at once, 4 hopsInside your applicationSemurg vs ArangoDB1,574 queries/s72.5 queries/sSemurg 21.7 times faster
64 queries at once, 4 hopsInside your applicationSemurg vs FalkorDB1,574 queries/s44.6 queries/sSemurg 35.3 times faster
64 queries at once, 4 hopsAs a serverSemurg vs Neo4jResults pendingResults pending
64 queries at once, 4 hopsAs a serverSemurg vs ArangoDB1,476 queries/s72.5 queries/sSemurg 20.4 times faster
64 queries at once, 4 hopsAs a serverSemurg vs FalkorDB1,476 queries/s44.6 queries/sSemurg 33.1 times faster
64 queries at once, 4 hopsAs a serverSemurg vs ArcadeDBResults pendingResults pending
64 queries at once, 4 hopsAs a serverSemurg vs SurrealDBResults pendingResults pending
64 queries at once, 4 hopsAs a serverSemurg vs De Wit Graph Database AResults pendingResults pending
64 queries at once, 4 hopsAs a serverSemurg vs De Wit Graph Database BResults pendingResults pending
Semurg vs Neo4j: one query, by depthInside your application2 hops0.42 ms0.46 msSemurg 1.09 times faster
Semurg vs Neo4j: one query, by depthInside your application4 hops2.54 ms52.1 msSemurg 20.5 times faster
Semurg vs Neo4j: one query, by depthInside your application8 hops50.6 ms5,593 msSemurg 110 times faster
Semurg vs Neo4j: one query, by depthInside your application16 hops58.1 ms5,632 msSemurg 96.9 times faster
Semurg vs Neo4j: one query, by depthInside your application32 hops59.2 ms5,570 msSemurg 94 times faster
Semurg vs Neo4j: one query, by depthInside your application64 hops58.5 ms5,600 msSemurg 95.8 times faster
Semurg vs Neo4j: one query, by depthInside your application128 hops57.7 ms5,529 msSemurg 95.8 times faster
Semurg vs Neo4j: one query, by depthInside your application256 hops57.9 ms5,454 msSemurg 94.2 times faster
Semurg vs Neo4j: one query, by depthInside your application512 hops56.9 ms5,483 msSemurg 96.3 times faster
Semurg vs Neo4j: one query, by depthInside your application1024 hops51.7 ms5,466 msSemurg 106 times faster
Semurg vs Neo4j: one query, by depthAs a server2 hopsResults pendingResults pending
Semurg vs Neo4j: one query, by depthAs a server4 hopsResults pendingResults pending
Semurg vs Neo4j: one query, by depthAs a server8 hopsResults pendingResults pending
Semurg vs Neo4j: one query, by depthAs a server16 hopsResults pendingResults pending
Semurg vs Neo4j: one query, by depthAs a server32 hopsResults pendingResults pending
Semurg vs Neo4j: one query, by depthAs a server64 hopsResults pendingResults pending
Semurg vs Neo4j: one query, by depthAs a server128 hopsResults pendingResults pending
Semurg vs Neo4j: one query, by depthAs a server256 hopsResults pendingResults pending
Semurg vs Neo4j: one query, by depthAs a server512 hopsResults pendingResults pending
Semurg vs Neo4j: one query, by depthAs a server1024 hopsResults pendingResults pending
Semurg vs Neo4j: 64 queries at once, by depthInside your application2 hops53,159 queries/s166,536 queries/sSemurg 3.13 times slower
Semurg vs Neo4j: 64 queries at once, by depthInside your application4 hops1,574 queries/s183 queries/sSemurg 8.61 times faster
Semurg vs Neo4j: 64 queries at once, by depthInside your application8 hops62.5 queries/s7.15 queries/sSemurg 8.74 times faster
Semurg vs Neo4j: 64 queries at once, by depthInside your application16 hops60.9 queries/s6.82 queries/sSemurg 8.93 times faster
Semurg vs Neo4j: 64 queries at once, by depthInside your application32 hops60.9 queries/s7 queries/sSemurg 8.7 times faster
Semurg vs Neo4j: 64 queries at once, by depthInside your application64 hops61 queries/s6.94 queries/sSemurg 8.79 times faster
Semurg vs Neo4j: 64 queries at once, by depthInside your application128 hops61.6 queries/s7.59 queries/sSemurg 8.12 times faster
Semurg vs Neo4j: 64 queries at once, by depthInside your application256 hops61.6 queries/s7.17 queries/sSemurg 8.59 times faster
Semurg vs Neo4j: 64 queries at once, by depthInside your application512 hops61.7 queries/s6.72 queries/sSemurg 9.18 times faster
Semurg vs Neo4j: 64 queries at once, by depthInside your application1024 hops61.6 queries/s6.63 queries/sSemurg 9.29 times faster
Semurg vs Neo4j: 64 queries at once, by depthAs a server2 hopsResults pendingResults pending
Semurg vs Neo4j: 64 queries at once, by depthAs a server4 hopsResults pendingResults pending
Semurg vs Neo4j: 64 queries at once, by depthAs a server8 hopsResults pendingResults pending
Semurg vs Neo4j: 64 queries at once, by depthAs a server16 hopsResults pendingResults pending
Semurg vs Neo4j: 64 queries at once, by depthAs a server32 hopsResults pendingResults pending
Semurg vs Neo4j: 64 queries at once, by depthAs a server64 hopsResults pendingResults pending
Semurg vs Neo4j: 64 queries at once, by depthAs a server128 hopsResults pendingResults pending
Semurg vs Neo4j: 64 queries at once, by depthAs a server256 hopsResults pendingResults pending
Semurg vs Neo4j: 64 queries at once, by depthAs a server512 hopsResults pendingResults pending
Semurg vs Neo4j: 64 queries at once, by depthAs a server1024 hopsResults pendingResults pending
Walk to 131,072 hops, total timeInside your applicationSemurg vs FalkorDB1,052 ms4,673 msSemurg 4.44 times faster
Walk to 131,072 hops, total timeInside your applicationSemurg vs Neo4j1,052 ms83,954 msSemurg 79.8 times faster
Walk to 131,072 hops, total timeInside your applicationSemurg vs ArangoDB1,052 ms278,200 msSemurg 264 times faster
Walk to 131,072 hops, total timeAs a serverSemurg vs FalkorDB988 ms4,673 msSemurg 4.73 times faster
Walk to 131,072 hops, total timeAs a serverSemurg vs Neo4jResults pendingResults pending
Walk to 131,072 hops, total timeAs a serverSemurg vs ArangoDB988 ms278,200 msSemurg 282 times faster

Vector

SIFT1M, 1M vectors of 128 dimensions. The question: the exact 10 nearest vectors to a query. Every engine returns the same answer as the exact oracle.

Results pending

Relational

TPC-C at 150 warehouses: nine tables, 74,959,250 rows. The question: read 256 rows of the item table by primary key in one request.

Results pending

Columnar

The dataset and the question are published with its first gated run.

Results pending

Key-value

9,000,000 key-value pairs; every engine stores each key with its whole value. The question: read one key's value. Every engine returns the same value.

Some comparisons are still being measured; their results appear here as they complete.

In-memory dataset

Inside your application

Engines with no in-application mode are shown through their own fastest connection, which favours Semurg.

Inside your applicationOne read (point get) measured on r11.71median time per read
◀ Semurg slowerSemurg faster ▶100 times10 timessame speed10 times100 times1000 timesSemurg inside the application 0.039 ms vs Redis (its fastest connection, resp (no embedded mode)) 0.063 ms. Semurg inside the application is 1.62 times faster than Redis. Redis 7.4.11Semurg vs Redis0.039 vs 0.063 ms1.62 times fasterSemurg inside the application 0.039 ms vs Valkey (its fastest connection, resp (no embedded mode)) 0.056 ms. Semurg inside the application is 1.44 times faster than Valkey. Valkey 8.1.10Semurg vs Valkey0.039 vs 0.056 ms1.44 times fasterSemurg inside the application 0.039 ms vs RocksDB (its embedded mode) 0.002 ms. Semurg inside the application is 19.5 times slower than RocksDB. RocksDB librocksdb-dev 9.10.0-1+b1Semurg vs RocksDB0.039 vs 0.002 ms19.5 times slower◀ Semurg slowerSemurg faster ▶100 times10 timessame speed10 times100 times1000 timesSemurg inside the application 0.039 ms vs Redis (its fastest connection, resp (no embedded mode)) 0.063 ms. Semurg inside the application is 1.62 times faster than Redis. Redis 7.4.11Semurg vs Redis0.039 vs 0.063 ms1.62 times fasterSemurg inside the application 0.039 ms vs Valkey (its fastest connection, resp (no embedded mode)) 0.056 ms. Semurg inside the application is 1.44 times faster than Valkey. Valkey 8.1.10Semurg vs Valkey0.039 vs 0.056 ms1.44 times fasterSemurg inside the application 0.039 ms vs RocksDB (its embedded mode) 0.002 ms. Semurg inside the application is 19.5 times slower than RocksDB. RocksDB librocksdb-dev 9.10.0-1+b1Semurg vs RocksDB0.039 vs 0.002 ms19.5 times slower

LMDB: Results pending

Inside your application64 reads at once measured on r11.71reads per second; every other engine on all 64 threads
◀ Semurg slowerSemurg faster ▶100 times10 timessame speed10 times100 times1000 timesSemurg inside the application 64,908 reads/s vs RocksDB (its embedded mode) 93,553 reads/s. Semurg inside the application is 1.44 times slower than RocksDB. RocksDB librocksdb-dev 9.10.0-1+b1Semurg vs RocksDB64,908 vs 93,553 reads/s1.44 times slowerSemurg inside the application 64,908 reads/s vs LMDB (its embedded mode) 548,843 reads/s. Semurg inside the application is 8.46 times slower than LMDB. LMDB liblmdb-dev 0.9.24-1Semurg vs LMDB64,908 vs 548,843 reads/s8.46 times slower◀ Semurg slowerSemurg faster ▶100 times10 timessame speed10 times100 times1000 timesSemurg inside the application 64,908 reads/s vs RocksDB (its embedded mode) 93,553 reads/s. Semurg inside the application is 1.44 times slower than RocksDB. RocksDB librocksdb-dev 9.10.0-1+b1Semurg vs RocksDB64,908 vs 93,553 reads/s1.44 times slowerSemurg inside the application 64,908 reads/s vs LMDB (its embedded mode) 548,843 reads/s. Semurg inside the application is 8.46 times slower than LMDB. LMDB liblmdb-dev 0.9.24-1Semurg vs LMDB64,908 vs 548,843 reads/s8.46 times slower

Redis and Valkey: Results pending

As a server

Engines with no server mode are shown in-process, which favours them.

As a serverOne read (point get) measured on r11.71median time per read
◀ Semurg slowerSemurg faster ▶100 times10 timessame speed10 times100 times1000 timesSemurg 0.16 ms vs Redis 0.063 ms. Semurg is 2.54 times slower than Redis. Redis 7.4.11Semurg vs Redis0.16 vs 0.063 ms2.54 times slowerSemurg 0.16 ms vs Valkey 0.056 ms. Semurg is 2.86 times slower than Valkey. Valkey 8.1.10Semurg vs Valkey0.16 vs 0.056 ms2.86 times slower◀ Semurg slowerSemurg faster ▶100 times10 timessame speed10 times100 times1000 timesSemurg 0.16 ms vs Redis 0.063 ms. Semurg is 2.54 times slower than Redis. Redis 7.4.11Semurg vs Redis0.16 vs 0.063 ms2.54 times slowerSemurg 0.16 ms vs Valkey 0.056 ms. Semurg is 2.86 times slower than Valkey. Valkey 8.1.10Semurg vs Valkey0.16 vs 0.056 ms2.86 times slower

RocksDB and LMDB: Results pending

As a server64 reads at once measured on r11.71reads per second; every other engine on all 64 threads
◀ Semurg slowerSemurg faster ▶100 times10 timessame speed10 times100 times1000 timesSemurg 6,556 reads/s vs RocksDB (embedded, in-process (no server mode)) 93,553 reads/s. Semurg is 14.3 times slower than RocksDB. RocksDB librocksdb-dev 9.10.0-1+b1Semurg vs RocksDB6,556 vs 93,553 reads/s14.3 times slowerSemurg 6,556 reads/s vs LMDB (embedded, in-process (no server mode)) 548,843 reads/s. Semurg is 83.7 times slower than LMDB. LMDB liblmdb-dev 0.9.24-1Semurg vs LMDB6,556 vs 548,843 reads/s83.7 times slower◀ Semurg slowerSemurg faster ▶100 times10 timessame speed10 times100 times1000 timesSemurg 6,556 reads/s vs RocksDB (embedded, in-process (no server mode)) 93,553 reads/s. Semurg is 14.3 times slower than RocksDB. RocksDB librocksdb-dev 9.10.0-1+b1Semurg vs RocksDB6,556 vs 93,553 reads/s14.3 times slowerSemurg 6,556 reads/s vs LMDB (embedded, in-process (no server mode)) 548,843 reads/s. Semurg is 83.7 times slower than LMDB. LMDB liblmdb-dev 0.9.24-1Semurg vs LMDB6,556 vs 548,843 reads/s83.7 times slower

Redis and Valkey: Results pending

Bigger-than-RAM dataset

Results pending
The numbers behind the key-value charts
ChartModeComparisonSemurgOther engineResult
One read (point get)Inside your applicationSemurg vs Redis0.039 ms0.063 msSemurg 1.62 times faster
One read (point get)Inside your applicationSemurg vs Valkey0.039 ms0.056 msSemurg 1.44 times faster
One read (point get)Inside your applicationSemurg vs RocksDB0.039 ms0.002 msSemurg 19.5 times slower
One read (point get)Inside your applicationSemurg vs LMDBResults pendingResults pending
One read (point get)As a serverSemurg vs Redis0.16 ms0.063 msSemurg 2.54 times slower
One read (point get)As a serverSemurg vs Valkey0.16 ms0.056 msSemurg 2.86 times slower
One read (point get)As a serverSemurg vs RocksDBResults pendingResults pending
One read (point get)As a serverSemurg vs LMDBResults pendingResults pending
64 reads at onceInside your applicationSemurg vs RedisResults pendingResults pending
64 reads at onceInside your applicationSemurg vs ValkeyResults pendingResults pending
64 reads at onceInside your applicationSemurg vs RocksDB64,908 reads/s93,553 reads/sSemurg 1.44 times slower
64 reads at onceInside your applicationSemurg vs LMDB64,908 reads/s548,843 reads/sSemurg 8.46 times slower
64 reads at onceAs a serverSemurg vs RedisResults pendingResults pending
64 reads at onceAs a serverSemurg vs ValkeyResults pendingResults pending
64 reads at onceAs a serverSemurg vs RocksDB6,556 reads/s93,553 reads/sSemurg 14.3 times slower
64 reads at onceAs a serverSemurg vs LMDB6,556 reads/s548,843 reads/sSemurg 83.7 times slower

Time-series

The dataset and the question are published with its first gated run.

Results pending

Object

1,000 images from Wikimedia Commons (a subset listed by the 2026-09-01 Commons image dump), 140,275,854 bytes in total, 467 B to 262,100 B each, one object per file, keyed by its path. The question: get one object by its key; every engine returns the same bytes.

Some comparisons are still being measured; their results appear here as they complete. Ceph RGW: not measured.

In-memory dataset

Inside your application

Engines with no in-application mode are shown through their own fastest connection, which favours Semurg.

Inside your applicationOne read by key measured on r11.71median time per read
◀ Semurg slowerSemurg faster ▶100 times10 timessame speed10 times100 times1000 timesSemurg inside the application 0.1 ms vs SeaweedFS (its fastest connection, filer_http (no embedded mode)) 0.52 ms. Semurg inside the application is 5.2 times faster than SeaweedFS. SeaweedFS version 30GB 4.48 530be3e37 linux amd64Semurg vs SeaweedFS0.1 vs 0.52 ms5.2 times faster◀ Semurg slowerSemurg faster ▶100 times10 timessame speed10 times100 times1000 timesSemurg inside the application 0.1 ms vs SeaweedFS (its fastest connection, filer_http (no embedded mode)) 0.52 ms. Semurg inside the application is 5.2 times faster than SeaweedFS. SeaweedFS version 30GB 4.48 530be3e37 linux amd64Semurg vs SeaweedFS0.1 vs 0.52 ms5.2 times faster
Inside your application64 reads at once measured on r11.71reads per second; every other engine on all 64 threads
◀ Semurg slowerSemurg faster ▶100 times10 timessame speed10 times100 times1000 timesSemurg inside the application 75,347 reads/s vs SeaweedFS (its fastest connection, filer_http (no embedded mode)) 54,099 reads/s. Semurg inside the application is 1.39 times faster than SeaweedFS. 64 client processes; box 78% busySemurg vs SeaweedFS75,347 vs 54,099 reads/s1.39 times faster◀ Semurg slowerSemurg faster ▶100 times10 timessame speed10 times100 times1000 timesSemurg inside the application 75,347 reads/s vs SeaweedFS (its fastest connection, filer_http (no embedded mode)) 54,099 reads/s. Semurg inside the application is 1.39 times faster than SeaweedFS. 64 client processes; box 78% busySemurg vs SeaweedFS75,347 vs 54,099 reads/s1.39 times faster
Inside your applicationLoad 1,000 objects measured on r11.71time to store the whole dataset, median of 3 loads
◀ Semurg slowerSemurg faster ▶100 times10 timessame speed10 times100 times1000 timesSemurg inside the application 0.93 s vs SeaweedFS (its fastest connection, filer_http (no embedded mode)) 5.44 s. Semurg inside the application is 5.82 times faster than SeaweedFS. SeaweedFS version 30GB 4.48 530be3e37 linux amd64Semurg vs SeaweedFS0.93 vs 5.44 s5.82 times faster◀ Semurg slowerSemurg faster ▶100 times10 timessame speed10 times100 times1000 timesSemurg inside the application 0.93 s vs SeaweedFS (its fastest connection, filer_http (no embedded mode)) 5.44 s. Semurg inside the application is 5.82 times faster than SeaweedFS. SeaweedFS version 30GB 4.48 530be3e37 linux amd64Semurg vs SeaweedFS0.93 vs 5.44 s5.82 times faster
Inside your applicationList objects by prefix
Results pending
Inside your applicationRead one object as byte ranges
Results pending

As a server

As a serverOne read by key measured on r11.71median time per read
◀ Semurg slowerSemurg faster ▶100 times10 timessame speed10 times100 times1000 timesSemurg 0.69 ms vs SeaweedFS 0.52 ms. A tie. SeaweedFS version 30GB 4.48 530be3e37 linux amd64Semurg vs SeaweedFS0.69 vs 0.52 msa tie◀ Semurg slowerSemurg faster ▶100 times10 timessame speed10 times100 times1000 timesSemurg 0.69 ms vs SeaweedFS 0.52 ms. A tie. SeaweedFS version 30GB 4.48 530be3e37 linux amd64Semurg vs SeaweedFS0.69 vs 0.52 msa tie
As a server64 reads at once measured on r11.71reads per second; every other engine on all 64 threads
◀ Semurg slowerSemurg faster ▶100 times10 timessame speed10 times100 times1000 timesSemurg 29,165 reads/s vs SeaweedFS 54,099 reads/s. Semurg is 1.85 times slower than SeaweedFS. 64 client processes; box 78% busySemurg vs SeaweedFS29,165 vs 54,099 reads/s1.85 times slower◀ Semurg slowerSemurg faster ▶100 times10 timessame speed10 times100 times1000 timesSemurg 29,165 reads/s vs SeaweedFS 54,099 reads/s. Semurg is 1.85 times slower than SeaweedFS. 64 client processes; box 78% busySemurg vs SeaweedFS29,165 vs 54,099 reads/s1.85 times slower
As a serverLoad 1,000 objects measured on r11.71time to store the whole dataset, median of 3 loads
◀ Semurg slowerSemurg faster ▶100 times10 timessame speed10 times100 times1000 timesSemurg 0.93 s vs SeaweedFS 5.44 s. Semurg is 5.85 times faster than SeaweedFS. SeaweedFS version 30GB 4.48 530be3e37 linux amd64Semurg vs SeaweedFS0.93 vs 5.44 s5.85 times faster◀ Semurg slowerSemurg faster ▶100 times10 timessame speed10 times100 times1000 timesSemurg 0.93 s vs SeaweedFS 5.44 s. Semurg is 5.85 times faster than SeaweedFS. SeaweedFS version 30GB 4.48 530be3e37 linux amd64Semurg vs SeaweedFS0.93 vs 5.44 s5.85 times faster
As a serverList objects by prefix
Results pending
As a serverRead one object as byte ranges
Results pending

Bigger-than-RAM dataset

Results pending
The numbers behind the object charts
ChartModeComparisonSemurgOther engineResult
One read by keyInside your applicationSemurg vs SeaweedFS0.1 ms0.52 msSemurg 5.2 times faster
One read by keyAs a serverSemurg vs SeaweedFS0.69 ms0.52 msa tie
64 reads at onceInside your applicationSemurg vs SeaweedFS75,347 reads/s54,099 reads/sSemurg 1.39 times faster
64 reads at onceAs a serverSemurg vs SeaweedFS29,165 reads/s54,099 reads/sSemurg 1.85 times slower
Load 1,000 objectsInside your applicationSemurg vs SeaweedFS934 ms5,439 msSemurg 5.82 times faster
Load 1,000 objectsAs a serverSemurg vs SeaweedFS929 ms5,439 msSemurg 5.85 times faster

Document

GH Archive events: 2,318,659 JSON documents (8.6 GB). The question: read one document by its id. Every engine returns the same document.

Some comparisons are still being measured; their results appear here as they complete.

In-memory dataset

Inside your application

Engines with no in-application mode are shown through their own fastest connection, which favours Semurg.

Inside your applicationOne read by id measured on r11.69median time per read
◀ Semurg slowerSemurg faster ▶100 times10 timessame speed10 times100 times1000 timesSemurg inside the application 0.34 ms vs MongoDB (its fastest connection, native_driver (no embedded mode)) 0.47 ms. Semurg inside the application is 1.4 times faster than MongoDB. MongoDB db version v7.0.43Semurg vs MongoDB0.34 vs 0.47 ms1.4 times faster◀ Semurg slowerSemurg faster ▶100 times10 timessame speed10 times100 times1000 timesSemurg inside the application 0.34 ms vs MongoDB (its fastest connection, native_driver (no embedded mode)) 0.47 ms. Semurg inside the application is 1.4 times faster than MongoDB. MongoDB db version v7.0.43Semurg vs MongoDB0.34 vs 0.47 ms1.4 times faster
Inside your application64 reads at once measured on r11.69reads per second; every other engine on all 64 threads
◀ Semurg slowerSemurg faster ▶100 times10 timessame speed10 times100 times1000 timesSemurg inside the application 28,423 reads/s vs MongoDB (its fastest connection, native_driver (no embedded mode)) 79,506 reads/s. Semurg inside the application is 2.8 times slower than MongoDB. 64 client processes; box 78% busySemurg vs MongoDB28,423 vs 79,506 reads/s2.8 times slower◀ Semurg slowerSemurg faster ▶100 times10 timessame speed10 times100 times1000 timesSemurg inside the application 28,423 reads/s vs MongoDB (its fastest connection, native_driver (no embedded mode)) 79,506 reads/s. Semurg inside the application is 2.8 times slower than MongoDB. 64 client processes; box 78% busySemurg vs MongoDB28,423 vs 79,506 reads/s2.8 times slower
Inside your applicationLoad 2,318,659 documents
Results pending

As a server

As a serverOne read by id measured on r11.69median time per read
◀ Semurg slowerSemurg faster ▶100 times10 timessame speed10 times100 times1000 timesSemurg 3.91 ms vs MongoDB 0.47 ms. Semurg is 8.33 times slower than MongoDB. MongoDB db version v7.0.43Semurg vs MongoDB3.91 vs 0.47 ms8.33 times slower◀ Semurg slowerSemurg faster ▶100 times10 timessame speed10 times100 times1000 timesSemurg 3.91 ms vs MongoDB 0.47 ms. Semurg is 8.33 times slower than MongoDB. MongoDB db version v7.0.43Semurg vs MongoDB3.91 vs 0.47 ms8.33 times slower
As a server64 reads at once measured on r11.69reads per second; every other engine on all 64 threads
◀ Semurg slowerSemurg faster ▶100 times10 timessame speed10 times100 times1000 timesSemurg 26,889 reads/s vs MongoDB 79,506 reads/s. Semurg is 2.96 times slower than MongoDB. 64 client processes; box 78% busySemurg vs MongoDB26,889 vs 79,506 reads/s2.96 times slower◀ Semurg slowerSemurg faster ▶100 times10 timessame speed10 times100 times1000 timesSemurg 26,889 reads/s vs MongoDB 79,506 reads/s. Semurg is 2.96 times slower than MongoDB. 64 client processes; box 78% busySemurg vs MongoDB26,889 vs 79,506 reads/s2.96 times slower
As a serverLoad 2,318,659 documents
Results pending

Bigger-than-RAM dataset

Results pending
The numbers behind the document charts
ChartModeComparisonSemurgOther engineResult
One read by idInside your applicationSemurg vs MongoDB0.34 ms0.47 msSemurg 1.4 times faster
One read by idAs a serverSemurg vs MongoDB3.91 ms0.47 msSemurg 8.33 times slower
64 reads at onceInside your applicationSemurg vs MongoDB28,423 reads/s79,506 reads/sSemurg 2.8 times slower
64 reads at onceAs a serverSemurg vs MongoDB26,889 reads/s79,506 reads/sSemurg 2.96 times slower
Load 2,318,659 documentsInside your applicationSemurg vs MongoDBResults pendingResults pending
Load 2,318,659 documentsAs a serverSemurg vs MongoDBResults pendingResults pending

Streaming

The dataset and the question are published with its first gated run.

Results pending

Universal

Universal (multi-model)

The dataset and the question are published with its first gated run.

Results pending

Converged

The dataset and the question are published with its first gated run.

Results pending

Functionality

Vector + graph RAG

pokec social graph (30.6M relationships) with SIFT1M's 1M vectors attached to its first 1M people: a pairing of two public datasets. The question: the 10 nearest vectors to a query (exact), then everyone within 2 hops of those 10 people. Every engine returns the same people.

Results pending

Graph RAG

The dataset and the question are published with its first gated run.

Results pending

Knowledge graph

HotpotQA's knowledge graph: 292,851 passage-to-passage links (3.4 MB). The question: one HotpotQA question's seed passages, then every distinct passage within 2 hops (10 questions; question 1 reaches 92 passages). Every engine returns the same passages.

Some comparisons are still being measured; their results appear here as they complete.

In-memory dataset

Inside your application

Engines with no in-application mode are shown through their own fastest connection, which favours Semurg.

Inside your applicationOne question, 2 hops measured on r11.71median time per question
◀ Semurg slowerSemurg faster ▶100 times10 timessame speed10 times100 times1000 timesSemurg inside the application 0.13 ms vs Postgres (its fastest connection, libpq (no embedded mode)) 0.36 ms. Semurg inside the application is 2.71 times faster than Postgres. Postgres 16.15 + pgvector 0.8.6: one recursive statement over the link table (btree on the source column), one round trip; memory and parallelism sized by timescaledb-tune, a Postgres tuning toolSemurg vs Postgres0.13 vs 0.36 ms2.71 times faster◀ Semurg slowerSemurg faster ▶100 times10 timessame speed10 times100 times1000 timesSemurg inside the application 0.13 ms vs Postgres (its fastest connection, libpq (no embedded mode)) 0.36 ms. Semurg inside the application is 2.71 times faster than Postgres. Postgres 16.15 + pgvector 0.8.6: one recursive statement over the link table (btree on the source column), one round trip; memory and parallelism sized by timescaledb-tune, a Postgres tuning toolSemurg vs Postgres0.13 vs 0.36 ms2.71 times faster

Neo4j: not measured

Inside your application64 questions at once, 2 hops measured on r11.71questions per second; every other engine on all 64 threads
◀ Semurg slowerSemurg faster ▶100 times10 timessame speed10 times100 times1000 timesSemurg inside the application 335,638 questions/s vs Postgres (its fastest connection, libpq (no embedded mode)) 95,130 questions/s. Semurg inside the application is 3.53 times faster than Postgres. 64 client processes; box 74% busySemurg vs Postgres335,638 vs 95,130 questions/s3.53 times faster◀ Semurg slowerSemurg faster ▶100 times10 timessame speed10 times100 times1000 timesSemurg inside the application 335,638 questions/s vs Postgres (its fastest connection, libpq (no embedded mode)) 95,130 questions/s. Semurg inside the application is 3.53 times faster than Postgres. 64 client processes; box 74% busySemurg vs Postgres335,638 vs 95,130 questions/s3.53 times faster

Neo4j: not measured

Inside your applicationLoad the knowledge graph
Results pending

As a server

As a serverOne question, 2 hops measured on r11.71median time per question
◀ Semurg slowerSemurg faster ▶100 times10 timessame speed10 times100 times1000 timesSemurg 0.19 ms vs Postgres 0.36 ms. Semurg is 1.9 times faster than Postgres. Postgres 16.15 + pgvector 0.8.6: one recursive statement over the link table (btree on the source column), one round trip; memory and parallelism sized by timescaledb-tune, a Postgres tuning toolSemurg vs Postgres0.19 vs 0.36 ms1.9 times faster◀ Semurg slowerSemurg faster ▶100 times10 timessame speed10 times100 times1000 timesSemurg 0.19 ms vs Postgres 0.36 ms. Semurg is 1.9 times faster than Postgres. Postgres 16.15 + pgvector 0.8.6: one recursive statement over the link table (btree on the source column), one round trip; memory and parallelism sized by timescaledb-tune, a Postgres tuning toolSemurg vs Postgres0.19 vs 0.36 ms1.9 times faster

Neo4j: Results pending

As a server64 questions at once, 2 hops measured on r11.71questions per second; every other engine on all 64 threads
◀ Semurg slowerSemurg faster ▶100 times10 timessame speed10 times100 times1000 timesSemurg 119,840 questions/s vs Postgres 95,130 questions/s. Semurg is 1.26 times faster than Postgres. 64 client processes; box 74% busySemurg vs Postgres119,840 vs 95,130 questions/s1.26 times faster◀ Semurg slowerSemurg faster ▶100 times10 timessame speed10 times100 times1000 timesSemurg 119,840 questions/s vs Postgres 95,130 questions/s. Semurg is 1.26 times faster than Postgres. 64 client processes; box 74% busySemurg vs Postgres119,840 vs 95,130 questions/s1.26 times faster

Neo4j: Results pending

As a serverLoad the knowledge graph
Results pending

Bigger-than-RAM dataset

Results pending
The numbers behind the knowledge graph charts
ChartModeComparisonSemurgOther engineResult
One question, 2 hopsInside your applicationSemurg vs Neo4j0.13 msnot measurednot measured
One question, 2 hopsInside your applicationSemurg vs Postgres0.13 ms0.36 msSemurg 2.71 times faster
One question, 2 hopsAs a serverSemurg vs Neo4jResults pendingResults pending
One question, 2 hopsAs a serverSemurg vs Postgres0.19 ms0.36 msSemurg 1.9 times faster
64 questions at once, 2 hopsInside your applicationSemurg vs Neo4j335,638 questions/snot measurednot measured
64 questions at once, 2 hopsInside your applicationSemurg vs Postgres335,638 questions/s95,130 questions/sSemurg 3.53 times faster
64 questions at once, 2 hopsAs a serverSemurg vs Neo4jResults pendingResults pending
64 questions at once, 2 hopsAs a serverSemurg vs Postgres119,840 questions/s95,130 questions/sSemurg 1.26 times faster
Load the knowledge graphInside your applicationSemurg vs Neo4jnot measurednot measured
Load the knowledge graphInside your applicationSemurg vs PostgresResults pendingResults pending
Load the knowledge graphAs a serverSemurg vs Neo4jResults pendingResults pending
Load the knowledge graphAs a serverSemurg vs PostgresResults pendingResults pending

How a lane is run

Same data same question Semurg The other engine Answers compared identical, or nothing is timed Then timed three cycles: cold, warm, warm again utilisation recorded on both sides
The answer check comes before the stopwatch. A faster wrong answer is not a result.

Run it yourself

curl -fsSL https://one.semurg.io/bench | sudo bash
  • The box: Ubuntu 24.04 on x86-64, root, and a data disk separate from the OS disk, mounted, with about 1 TB free. Dedicate it to this.
  • What the command does: downloads the benchmark runner from one.semurg.io, checks it against the checksum published with it, finds your data disks, installs Docker and Elixir if they are missing, runs graph and vector against the same engines as the charts above, and prints the table.
  • If it refuses: every refusal says what to do next and leaves the box unchanged.
  • Time: hours, mostly downloading and loading the datasets, which come from their original public sources and are checksummed when they arrive.
  • Your release: each chart above names the Semurg release it was measured on; your run measures the release you install, on your hardware, as its own series.
  • One domain only: curl -fsSL https://one.semurg.io/bench | sudo bash -s -- --graph
  • Read the script first: curl -fsSL https://one.semurg.io/bench | less

The four states a row can have

Measured

Both figures, the release, both sides' utilisation, and the command that reproduces it.

Results pending

The lane runs; its figures are not yet measured on current hardware.

Not published

That engine's licence forbids publishing benchmark results, so we publish none. No name, no figure.

Not run

No independent reference answer exists for this test yet, so a number could not be checked.

A loss is drawn at the same size and weight as a win.