Skip to content

Northwind Benchmark Sweep — All Engines ​

Every engine below ran the same deterministic Northwind corpus in strict isolation: fresh store per run, its own powermetrics + vmstat sampling window, and its own on-disk measurement. Same query corpus, iterations, warmup, batch size, and parallelism.

Summary ​

EngineMean latency (ms)Query ops/s (latency)End-to-end ops/sSeed (ms)Seed nodes/sPower (W avg)Energy (J)Disk (MiB)Wall (s)
NornicDB0.137,684.120.25,388.9318,081.59.5259.94149.628.5
NornicDB (ANTLR parser)0.175,908.221.15,354.8418,196.69.2244.88149.527.4
Neo4j42.0023.819.65,390.9318,074.85.9257.77203.844.4
FalkorDB41.5024.120.69,320.8810,453.96.4191.4214.130.6
Memgraph53.2518.816.01,603.1560,780.27.5224.25532.830.4
LadybugDB15.5864.254.94,944.2219,707.913.0159.0025.113.0

Per-Query Latency (mean ms) ​

QueryNornicDBNornicDB (ANTLR parser)Neo4jFalkorDBMemgraphLadybugDB
products_per_category0.150.186.337.779.940.88
customer_category_distinct_orders0.110.18172.48167.69226.4158.22
optional_match_orders_count0.150.1953.0573.2988.7510.22
revenue_by_product0.090.1667.6572.6080.615.08
products_by_supplier0.110.146.874.948.800.77
orders_by_customer0.120.136.745.939.660.98
revenue_by_category0.140.2063.1853.8271.8834.45
revenue_by_supplier0.120.1660.9256.0872.6035.09
revenue_by_customer0.120.1669.9753.1099.6361.75
order_line_sales_by_country0.110.1448.7941.1341.532.05
low_stock_products0.180.207.572.228.792.33
products_in_category0.160.190.950.680.852.22
order_line_quantity_distribution0.100.1422.5840.9625.351.51
customer_order_details0.160.210.950.760.652.63

Seed Counts Cross-Check ​

Same seed data, verified by each engine's own count(...) queries.

EntityNornicDBNornicDB (ANTLR parser)Neo4jFalkorDBMemgraphLadybugDB
Category969696969696
Supplier144144144144144144
Customer1,2001,2001,2001,2001,2001,200
Product48,00048,00048,00048,00048,00048,000
Order48,00048,00048,00048,00048,00048,000
PART_OF edges48,00048,00048,00048,00048,00048,000
SUPPLIES edges48,00048,00048,00048,00048,00048,000
PURCHASED edges48,00048,00048,00048,00048,00048,000
ORDERS edges168,050168,050168,050168,050168,050168,050

Query Result Cross-Check ​

Row counts must agree across engines (same deterministic dataset). Hashes may legitimately differ when engines order results differently; disagreements in row count or intra-run stability are flagged.

| Query | NornicDB rows | NornicDB (ANTLR parser) rows | Neo4j rows | FalkorDB rows | Memgraph rows | LadybugDB rows | Agreement | |---|---😐---😐---😐---😐---😐---:||:---😐 | products_per_category | 96 | 96 | 96 | 96 | 96 | 96 | Yes | | customer_category_distinct_orders | 10 | 10 | 10 | 10 | 10 | 10 | Yes | | optional_match_orders_count | 100 | 100 | 100 | 100 | 100 | 100 | Yes | | revenue_by_product | 10 | 10 | 10 | 10 | 10 | 10 | Yes | | products_by_supplier | 25 | 25 | 25 | 25 | 25 | 25 | Yes | | orders_by_customer | 25 | 25 | 25 | 25 | 25 | 25 | Yes | | revenue_by_category | 96 | 96 | 96 | 96 | 96 | 96 | Yes | | revenue_by_supplier | 25 | 25 | 25 | 25 | 25 | 25 | Yes | | revenue_by_customer | 25 | 25 | 25 | 25 | 25 | 25 | Yes | | order_line_sales_by_country | 15 | 15 | 15 | 15 | 15 | 15 | Yes | | low_stock_products | 100 | 100 | 100 | 100 | 100 | 100 | Yes | | products_in_category | 100 | 100 | 100 | 100 | 100 | 100 | Yes | | order_line_quantity_distribution | 25 | 25 | 25 | 25 | 25 | 25 | Yes | | customer_order_details | 100 | 100 | 100 | 100 | 100 | 100 | Yes |

Result hashes per engine are in each per-engine report; this table checks cross-engine row-count agreement and intra-run stability.

Analytics privacy