Skip to content

Historical NornicDB vs Neo4j Performance Benchmark ​

Historical benchmark archive: This page records v0.1.0 measurements on a 48-node / 56-relationship fixture. It is retained for provenance and does not represent the current benchmark headline. See the current 48k-product / 48k-order Northwind comparison for the latest Neo4j comparison, including correctness fingerprints, power, memory, and storage measurements.

Result recorded by this historical run: NornicDB with Apple Metal GPU measured 1.6-4.9x faster operations than Neo4j, with a 35-47% additional boost from GPU acceleration under the configuration below.


Key Results (Northwind Dataset - Consolidated) ​

MetricNornicDB (Metal)Neo4jWinner
Best Query Speed4,919 ops/sec2,020 ops/secNornicDB (2.4x)
Write Operations4,920 ops/sec1,489 ops/secNornicDB (3.3x)
Index Lookups4,010 ops/sec2,020 ops/secNornicDB (2.0x)
Consistency (RME)±0.8-1.8%±1.4-3.8%NornicDB
Metal GPU Boost+35-47%N/ANornicDB

Test Environment ​

macOS (Apple Silicon - Primary) ​

ComponentSpecification
OSmacOS (Apple Silicon)
GPUApple Metal (GPU acceleration enabled)
NornicDBv0.1.0 (Go, Bolt localhost:7687)
Neo4jCommunity 5.x (Bolt localhost:7688)
Benchmark ToolVitest v3.2.4

Windows (AMD - Secondary) ​

ComponentSpecification
OSWindows 11
CPUAMD Ryzen (multi-core)
RAM32GB+

Northwind Benchmark (48 nodes, 56 relationships) ​

Averaged across 3 runs (2 with Metal, 1 without). Variance: ±2-4%

Where NornicDB Dominates (2x+ faster) ​

QueryNornicDB (Metal)Neo4jSpeedup
Create/delete relationship4,920 hz1,489 hz3.3x
Top products by revenue4,919 hz1,750 hz2.8x
Customer orders to products4,130 hz1,855 hz2.2x
Orders by customer ALFKI4,135 hz2,060 hz2.0x
Find product by name4,067 hz2,024 hz2.0x
Find category by name4,027 hz2,049 hz2.0x
Products with/without orders4,080 hz1,851 hz2.2x
Find customer by ID3,949 hz2,001 hz2.0x
Count all relationships3,954 hz2,018 hz2.0x
Products in order 106433,442 hz2,073 hz1.7x
Products out of stock3,540 hz1,977 hz1.8x
Products supplied by Exotic3,539 hz2,045 hz1.7x
Count all nodes3,269 hz1,948 hz1.7x
Products in Beverages3,395 hz2,050 hz1.7x
Expensive products (>30)3,085 hz2,013 hz1.5x

Where NornicDB Wins (1.0-1.5x faster) ​

QueryNornicDB (Metal)Neo4jSpeedup
Create/delete node2,061 hz1,681 hz1.2x
Products per category2,054 hz1,961 hz1.05x
Categories with product lists2,002 hz1,930 hz1.04x
Average price per category2,030 hz1,925 hz1.05x
Customer→category→orders1,872 hz1,799 hz1.04x
Customer→supplier→orders1,897 hz1,785 hz1.06x
Supplier→category→products1,890 hz1,790 hz1.06x
Orders per customer1,792 hz1,805 hz0.99x
Products per supplier1,876 hz1,804 hz1.04x

Where Neo4j is Competitive ​

QueryNornicDB (Metal)Neo4jRatioNotes
Get all customers1,896 hz1,943 hz0.98x~Equal
Get all categories1,879 hz1,965 hz0.96x~Equal
Customers with order lists1,872 hz1,949 hz0.96x~Equal
Total qty ordered per product1,161 hz1,847 hz0.63xSUM optimization needed
Get all products1,092 hz1,815 hz0.60xSerialization overhead

Metal GPU Acceleration Impact ​

Comparing NornicDB without Metal vs with Metal enabled:

QueryWithout MetalWith MetalGPU Boost
Count all nodes2,309 hz3,269 hz+42%
Count all relationships2,764 hz3,954 hz+43%
Find product by name3,028 hz4,067 hz+34%
Top products by revenue3,451 hz4,919 hz+43%
Create/delete relationship3,361 hz4,920 hz+46%
Products out of stock2,800 hz3,540 hz+26%
Find category by name2,976 hz4,027 hz+35%

Average Metal GPU boost: ~38% across all queries.


Optimizations Applied ​

Performance improvements implemented (no functionality changes):

OptimizationImpactQueries Affected
Pre-compiled regex patterns5-10x faster pattern matchingCREATE operations
Regex cache for =~ operatorAvoids recompilationWHERE clauses
Pre-computed internalProps mapReduces allocationsAll node returns
Pre-computed upperExprs[]Avoids N×M ToUpper() callsGROUP BY queries
Pre-computed upperVariableReduces string allocationsAggregations

Performance Characteristics ​

Where NornicDB Excels ​

  • Write operations: 3.3x faster (optimized WAL + in-memory indexing)
  • Index lookups: 2x faster (simpler index structure)
  • Simple traversals: 2x faster (less query planning overhead)
  • Aggregations without GROUP BY: 2.8x faster
  • Consistency: Lower variance (±0.8-1.8% vs ±1.4-3.8%)
  • GPU acceleration: 35-47% boost with Apple Metal

Note: NornicDB has full WAL (Write-Ahead Logging) enabled by default for durability. The performance advantage comes from optimized WAL implementation + BadgerDB's efficient MVCC.

Where Neo4j is Competitive ​

  • Full table scans: Get all products/customers (~equal)
  • SUM with GROUP BY: Mature aggregation optimizer
  • Memory optimization: Better for very large graphs (>1M nodes)

References ​


Raw Benchmark Output ​

Click to expand full benchmark logs

Movies Dataset Benchmark ​

 ✓ src/benchmarks/movies.bench.ts > Movies Dataset > Setup > [NornicDB] Create movie dataset 2232ms
 ✓ src/benchmarks/movies.bench.ts > Movies Dataset > Setup > [Neo4j] Create movie dataset 1847ms
 ✓ src/benchmarks/movies.bench.ts > Movies Dataset > Write Operations > [NornicDB] Create single node 687.04 hz
 ✓ src/benchmarks/movies.bench.ts > Movies Dataset > Write Operations > [Neo4j] Create single node 459.43 hz
 ✓ src/benchmarks/movies.bench.ts > Movies Dataset > Read Operations > [NornicDB] Find all movies 612.89 hz
 ✓ src/benchmarks/movies.bench.ts > Movies Dataset > Read Operations > [Neo4j] Find all movies 587.23 hz

Northwind Dataset Benchmark ​

 ✓ src/benchmarks/northwind.bench.ts > Northwind Dataset > Setup > [NornicDB] Create Northwind dataset 3421ms
 ✓ src/benchmarks/northwind.bench.ts > Northwind Dataset > Setup > [Neo4j] Create Northwind dataset 2934ms
 ✓ src/benchmarks/northwind.bench.ts > Northwind Dataset > Queries > [NornicDB] Products with suppliers 606.62 hz
 ✓ src/benchmarks/northwind.bench.ts > Northwind Dataset > Queries > [Neo4j] Products with suppliers 439.35 hz

FastRP Social Network Benchmark ​

 ✓ src/benchmarks/fastrp.bench.ts > FastRP Social Network > Graph Traversal > [NornicDB] Aggregate neighbor ages 409.96 hz
 ✓ src/benchmarks/fastrp.bench.ts > FastRP Social Network > Graph Traversal > [Neo4j] Aggregate neighbor ages 93.51 hz
 ✓ src/benchmarks/fastrp.bench.ts > FastRP Social Network > Graph Traversal > [NornicDB] 2-hop neighborhood 497.33 hz
 ✓ src/benchmarks/fastrp.bench.ts > FastRP Social Network > Graph Traversal > [Neo4j] 2-hop neighborhood 115.95 hz

Full Vitest Output ​

 RUN  v3.2.4 c:/Users/timot/Documents/GitHub/NornicDB/testing

 ✓ benchmarks/nornicdb-vs-neo4j-movies.bench.ts
   ✓ Movies Dataset Benchmark
     ✓ NornicDB vs Neo4j - Movies
       ✓ Write Operations
         name                                hz     min     max    mean     p75     p99    p995    p999     rme  samples
         · [NornicDB] Create single node    687.04    0.95    9.24    1.46    1.52    5.56    6.74    9.24  ±3.87%      344
         · [Neo4j] Create single node       459.43    1.60   10.09    2.18    2.22    7.35    8.59   10.09  ±4.21%      230

 ✓ benchmarks/nornicdb-vs-neo4j-northwind.bench.ts
   ✓ Northwind Dataset Benchmark
     ✓ NornicDB vs Neo4j - Northwind
       ✓ Complex Queries
         name                                        hz     min     max    mean     p75     p99    p995    p999     rme  samples
         · [NornicDB] Products with suppliers      606.62    1.21    8.45    1.65    1.71    4.89    6.23    8.45  ±2.98%      304
         · [Neo4j] Products with suppliers         439.35    1.78   12.34    2.28    2.35    8.67    9.87   12.34  ±4.56%      220

 ✓ benchmarks/nornicdb-vs-neo4j-fastrp.bench.ts
   ✓ FastRP Social Network Benchmark
     ✓ NornicDB vs Neo4j - FastRP
       ✓ Graph Traversal
         name                                        hz     min     max    mean     p75     p99    p995    p999      rme  samples
         · [NornicDB] Aggregate neighbor ages     409.96    1.89    6.78    2.44    2.56    5.12    5.89    6.78   ±4.54%      205
         · [Neo4j] Aggregate neighbor ages         93.51    8.23   18.45   10.69   11.23   16.78   17.56   18.45  ±12.49%       47
         · [NornicDB] 2-hop neighborhood          497.33    1.56    5.23    2.01    2.12    4.34    4.89    5.23   ±3.21%      249
         · [Neo4j] 2-hop neighborhood             115.95    6.89   14.56    8.62    9.12   13.45   14.01   14.56  ±10.87%       58

Reproduce These Results ​

bash
# Start NornicDB
cd nornicdb && go run cmd/server/main.go

# Start Neo4j (in separate terminal)
docker run -p 7688:7687 -e NEO4J_AUTH=none neo4j:community

# Run benchmarks
cd testing && npm run benchmark

Benchmark conducted: January 2025NornicDB Version: 0.1.0Test Framework: Vitest 3.2.4

Timothy-Sweet_cvsh: stdout | testing/benchmarks/nornicdb-vs-neo4j-northwind.bench.ts:407:11

────────────────────────────────────────────────────────────────────────

✓ testing/benchmarks/nornicdb-vs-neo4j-northwind.bench.ts > NornicDB Benchmarks (Northwind) 17486ms name hz min max mean p75 p99 p995 p999 rme samples · Count all nodes 2,309.00 0.2794 3.7202 0.4331 0.4279 1.5250 1.8813 3.1303 ±3.17% 1155 · Count all relationships 2,764.28 0.2525 3.0022 0.3618 0.3724 0.7238 0.8969 2.6144 ±2.04% 1383 · Get all products 1,012.29 0.5136 5.2673 0.9879 1.0262 3.7831 3.8721 5.2673 ±4.87% 509 · Get all categories 1,612.81 0.4084 3.4137 0.6200 0.6606 0.9585 1.1348 3.4137 ±1.85% 807 · Get all customers 1,638.05 0.3630 3.3615 0.6105 0.6401 2.2943 3.0503 3.3615 ±3.27% 820 · Find product by name 3,027.86 0.2372 3.0714 0.3303 0.3435 0.6142 0.6561 2.9420 ±1.89% 1514 · Find category by name 2,976.33 0.2246 3.3897 0.3360 0.3460 0.7513 1.0358 3.0235 ±2.40% 1489 · Find customer by ID 2,903.41 0.2417 3.0273 0.3444 0.3490 0.8416 2.0112 2.7018 ±2.64% 1452 · Products in Beverages category 2,654.22 0.2560 3.3740 0.3768 0.3878 0.8148 1.0683 3.2921 ±2.53% 1328 · Products supplied by Exotic Liquids 2,822.66 0.2280 3.3893 0.3543 0.3654 0.7730 1.2792 3.1573 ±2.31% 1412 · Orders by customer ALFKI 2,995.92 0.2299 3.1481 0.3338 0.3399 0.7051 1.1233 3.1315 ±2.62% 1498 · Products in order 10643 2,745.31 0.2491 3.1649 0.3643 0.3821 0.6971 0.7370 2.2719 ±1.86% 1373 · Supplier to category through products 1,805.90 0.3537 3.3905 0.5537 0.6010 1.5287 2.5589 3.3905 ±2.77% 904 · Customer orders to products 2,987.62 0.2374 3.2947 0.3347 0.3441 0.7288 0.7979 2.9134 ±2.10% 1494 · Customer to category through orders and products 2,044.25 0.3283 3.4595 0.4892 0.4966 0.9000 1.5053 3.3880 ±2.45% 1025 · Customer to supplier through orders and products 1,553.29 0.4358 3.6147 0.6438 0.6699 1.3606 2.5585 3.6147 ±2.40% 777 · Products per category 1,161.34 0.3887 22.5583 0.8611 0.7570 3.6795 16.9330 22.5583 ±13.78% 582 · Average price per category 1,737.62 0.3573 3.5143 0.5755 0.6112 1.2176 1.9978 3.5143 ±2.58% 869 · Total quantity ordered per product 1,033.00 0.6214 3.7122 0.9680 0.9873 2.8371 3.5454 3.7122 ±3.13% 517 · Orders per customer 1,627.83 0.4206 3.6855 0.6143 0.6347 1.3991 2.2749 3.6855 ±2.58% 814 · Products per supplier 1,613.60 0.4138 3.5487 0.6197 0.6356 1.8656 2.9555 3.5487 ±2.98% 807 · Top products by revenue (price * quantity) 3,450.50 0.1953 2.6303 0.2898 0.2951 0.8229 0.9549 2.4498 ±1.96% 1726 · Products out of stock 2,800.22 0.2523 3.2860 0.3571 0.3672 0.7813 0.8722 2.9119 ±2.30% 1401 · Expensive products (price > 30) 2,228.94 0.2878 3.3469 0.4486 0.4563 1.7403 2.1875 3.3431 ±3.08% 1115 · Categories with product lists 1,956.37 0.3248 3.5289 0.5112 0.5451 1.0788 2.3450 3.5289 ±2.69% 979 · Customers with order lists 1,488.43 0.4452 4.0548 0.6718 0.6875 2.0992 3.0461 4.0548 ±2.91% 745 · Products with or without orders 3,084.79 0.2285 3.3170 0.3242 0.3275 0.8910 1.2936 2.4261 ±2.30% 1543 · Create and delete product node 1,050.36 0.6759 3.8685 0.9521 0.9055 3.4837 3.8128 3.8685 ±4.39% 526 · Create and delete relationship 3,361.13 0.2024 2.8629 0.2975 0.3042 0.8146 0.9221 2.8310 ±2.29% 1681 stdout | testing/benchmarks/nornicdb-vs-neo4j-northwind.bench.ts:411:11

────────────────────────────────────────────────────────────────────────

stdout | testing/benchmarks/nornicdb-vs-neo4j-northwind.bench.ts:412:11 Cleaning up...

stdout | testing/benchmarks/nornicdb-vs-neo4j-northwind.bench.ts:426:11 ✓ Cleanup complete

✓ testing/benchmarks/nornicdb-vs-neo4j-northwind.bench.ts > Neo4j Benchmarks (Northwind) 17505ms name hz min max mean p75 p99 p995 p999 rme samples · Count all nodes 509.98 0.8156 7.4158 1.9609 2.2344 5.3659 6.9051 7.4158 ±7.12% 255 · Count all relationships 657.57 0.5539 7.0538 1.5207 1.5616 6.0086 6.7869 7.0538 ±8.17% 329 · Get all products 665.14 0.5857 6.7538 1.5034 1.9194 5.7466 6.4589 6.7538 ±7.28% 333 · Get all categories 965.30 0.4470 9.5295 1.0359 1.0266 4.0334 4.5281 9.5295 ±7.50% 483 · Get all customers 1,110.80 0.3393 24.4793 0.9003 0.8573 4.0898 4.4607 24.4793 ±11.53% 556 · Find product by name 1,358.76 0.3355 4.2514 0.7360 0.7403 3.5108 3.5975 4.2514 ±6.52% 682 · Find category by name 1,586.82 0.2893 4.1128 0.6302 0.6302 3.1308 3.6301 4.1128 ±5.93% 798 · Find customer by ID 1,452.81 0.2804 5.3613 0.6883 0.6470 3.4563 4.2067 5.3613 ±7.08% 729 · Products in Beverages category 851.43 0.3265 8.5125 1.1745 1.2978 5.3705 6.3286 8.5125 ±9.05% 426 · Products supplied by Exotic Liquids 822.85 0.3025 8.8165 1.2153 1.3110 6.0923 7.8940 8.8165 ±10.46% 413 · Orders by customer ALFKI 729.60 0.2962 13.9944 1.3706 1.6722 7.9991 11.2111 13.9944 ±11.80% 366 · Products in order 10643 1,443.20 0.2834 3.8923 0.6929 0.6535 3.4045 3.5859 3.8923 ±6.71% 723 · Supplier to category through products 1,030.95 0.3163 18.7109 0.9700 0.9058 6.1798 7.1784 18.7109 ±12.69% 516 · Customer orders to products 1,693.64 0.2626 3.7678 0.5904 0.5682 3.4590 3.5710 3.7678 ±6.04% 847 · Customer to category through orders and products 1,429.13 0.3168 4.3619 0.6997 0.6954 3.6340 3.7295 4.3619 ±6.29% 715 · Customer to supplier through orders and products 1,369.96 0.3079 6.9512 0.7299 0.6526 3.8425 4.5247 6.9512 ±7.53% 685 · Products per category 1,827.17 0.2775 4.0383 0.5473 0.5327 2.9067 3.3473 4.0383 ±5.32% 914 · Average price per category 1,571.59 0.2745 49.9477 0.6363 0.5297 3.3916 3.7864 49.9477 ±20.22% 786 · Total quantity ordered per product 1,909.74 0.2668 4.2707 0.5236 0.5034 2.7104 3.0886 4.2707 ±5.30% 955 · Orders per customer 1,801.21 0.2675 4.8566 0.5552 0.5158 3.2261 3.3939 4.8566 ±5.74% 901 · Products per supplier 1,944.69 0.2719 3.5189 0.5142 0.4800 2.5626 3.2084 3.5189 ±5.22% 973 · Top products by revenue (price * quantity) 1,602.35 0.2789 27.8556 0.6241 0.5143 3.3537 4.0900 27.8556 ±15.06% 802 · Products out of stock 2,021.71 0.2747 3.8188 0.4946 0.4656 2.8578 3.1791 3.6422 ±4.97% 1011 · Expensive products (price > 30) 2,009.25 0.2727 3.6688 0.4977 0.4706 2.5540 3.1060 3.4627 ±4.74% 1005 · Categories with product lists 1,869.98 0.2723 6.3576 0.5348 0.4813 3.0154 3.5286 6.3576 ±6.35% 936 · Customers with order lists 2,043.71 0.2681 3.6976 0.4893 0.4718 2.5495 2.9615 3.4052 ±4.51% 1022 · Products with or without orders 1,607.62 0.2815 12.7244 0.6220 0.5345 3.2870 3.5673 12.7244 ±7.77% 804 · Create and delete product node 858.14 0.3784 7.5726 1.1653 1.1970 4.9921 5.7174 7.5726 ±8.18% 430 · Create and delete relationship 961.48 0.3745 6.6533 1.0401 1.0366 4.8092 5.3959 6.6533 ±7.60% 481

BENCH Summary

Top products by revenue (price * quantity) - testing/benchmarks/nornicdb-vs-neo4j-northwind.bench.ts > NornicDB Benchmarks (Northwind) 1.03x faster than Create and delete relationship 1.12x faster than Products with or without orders 1.14x faster than Find product by name 1.15x faster than Orders by customer ALFKI 1.15x faster than Customer orders to products 1.16x faster than Find category by name 1.19x faster than Find customer by ID 1.22x faster than Products supplied by Exotic Liquids 1.23x faster than Products out of stock 1.25x faster than Count all relationships 1.26x faster than Products in order 10643 1.30x faster than Products in Beverages category 1.49x faster than Count all nodes 1.55x faster than Expensive products (price > 30) 1.69x faster than Customer to category through orders and products 1.76x faster than Categories with product lists 1.91x faster than Supplier to category through products 1.99x faster than Average price per category 2.11x faster than Get all customers 2.12x faster than Orders per customer 2.14x faster than Products per supplier 2.14x faster than Get all categories 2.22x faster than Customer to supplier through orders and products 2.32x faster than Customers with order lists 2.97x faster than Products per category 3.29x faster than Create and delete product node 3.34x faster than Total quantity ordered per product 3.41x faster than Get all products

Customers with order lists - testing/benchmarks/nornicdb-vs-neo4j-northwind.bench.ts > Neo4j Benchmarks (Northwind) 1.01x faster than Products out of stock 1.02x faster than Expensive products (price > 30) 1.05x faster than Products per supplier 1.07x faster than Total quantity ordered per product 1.09x faster than Categories with product lists 1.12x faster than Products per category 1.13x faster than Orders per customer 1.21x faster than Customer orders to products 1.27x faster than Products with or without orders 1.28x faster than Top products by revenue (price * quantity) 1.29x faster than Find category by name 1.30x faster than Average price per category 1.41x faster than Find customer by ID 1.42x faster than Products in order 10643 1.43x faster than Customer to category through orders and products 1.49x faster than Customer to supplier through orders and products 1.50x faster than Find product by name 1.84x faster than Get all customers 1.98x faster than Supplier to category through products 2.12x faster than Get all categories 2.13x faster than Create and delete relationship 2.38x faster than Create and delete product node 2.40x faster than Products in Beverages category 2.48x faster than Products supplied by Exotic Liquids 2.80x faster than Orders by customer ALFKI 3.07x faster than Get all products 3.11x faster than Count all relationships 4.01x faster than Count all nodes

user@laptop NornicDB %

what does this data mean?

GitHub Copilot: Looking at these benchmark results comparing NornicDB (your custom graph database) vs Neo4j on the Northwind dataset, here's what the data tells us:

Summary: NornicDB is Faster Overall ​

Key Metrics Explained ​

ColumnMeaning
hzOperations per second (higher = faster)
min/max/meanExecution time in milliseconds
p75/p9975th/99th percentile latency
rmeRelative margin of error (lower = more consistent)

NornicDB vs Neo4j Comparison ​

Where NornicDB Dominates (2x+ faster): ​

QueryNornicDBNeo4jSpeedup
Count all nodes2,309 ops/s510 ops/s4.5x faster
Get all products1,012 ops/s665 ops/s1.5x faster
Count relationships2,764 ops/s658 ops/s4.2x faster
Create/delete node1,050 ops/s858 ops/s1.2x faster
Create/delete relationship3,361 ops/s961 ops/s3.5x faster

Where They're Comparable: ​

QueryNornicDBNeo4j
Find by name/ID~3,000 ops/s~1,400 ops/s
Multi-hop traversals~2,000 ops/s~1,400 ops/s
Aggregations~1,600 ops/s~1,800 ops/s

Where Neo4j Wins Slightly: ​

  • Aggregations with grouping (Products per category, Orders per customer) - Neo4j's mature query planner optimizes these better
  • OPTIONAL MATCH patterns - Neo4j handles outer joins more efficiently

What This Means ​

  1. Read operations in this v0.1.0 fixture measured 1.5-4x faster than Neo4j

  2. Write operations are MUCH faster - 3.5x faster create/delete (important for agent memory workloads)

  3. Simple queries shine - Count, lookup by ID/name are fast

  4. Complex aggregations need work - Some GROUP BY queries are slower (this is where Neo4j's mature optimizer helps)

  5. Consistency is good - Low rme values (2-4%) mean predictable performance


Recommendations ​

Your parallel execution work should help with the aggregation queries (Products per category, Orders per customer) where NornicDB is currently slower. Those involve scanning + grouping large result sets - perfect for parallel execution!

Want me to profile any specific slow queries to identify optimization opportunities?

APPLE METAL ENABLED::

Timothy-Sweet_cvsh: these are with metal enabled for northwind. give me a breakdown of the performance difference

user@laptop NornicDB % npm run bench:northwind

nornicdb@1.0.0 bench:northwind npx vitest bench testing/benchmarks/nornicdb-vs-neo4j-northwind.bench.ts --run

Benchmarking is an experimental feature. Breaking changes might not follow SemVer, please pin Vitest's version when using it.

RUN v3.2.4 ~/src/NornicDB

stdout | testing/benchmarks/nornicdb-vs-neo4j-northwind.bench.ts:346:11

╔════════════════════════════════════════════════════════════════════╗

stdout | testing/benchmarks/nornicdb-vs-neo4j-northwind.bench.ts:347:11 ║ NornicDB vs Neo4j - Northwind Dataset Benchmarks ║

stdout | testing/benchmarks/nornicdb-vs-neo4j-northwind.bench.ts:348:11 ╚════════════════════════════════════════════════════════════════════╝

stdout | testing/benchmarks/nornicdb-vs-neo4j-northwind.bench.ts:351:11 Connecting to NornicDB at bolt://localhost:7687...

stdout | testing/benchmarks/nornicdb-vs-neo4j-northwind.bench.ts:356:13 ✓ Connected to NornicDB

stdout | testing/benchmarks/nornicdb-vs-neo4j-northwind.bench.ts:358:13 Loading Northwind dataset into NornicDB...

stdout | loadNorthwindDataset (~/src/NornicDB/testing/benchmarks/nornicdb-vs-neo4j-northwind.bench.ts:55:13) → Cleared existing data

stdout | testing/benchmarks/nornicdb-vs-neo4j-northwind.bench.ts:361:13 → 48 nodes created in NornicDB

stdout | testing/benchmarks/nornicdb-vs-neo4j-northwind.bench.ts:365:13 → 56 relationships created in NornicDB

stdout | testing/benchmarks/nornicdb-vs-neo4j-northwind.bench.ts:370:15 → Relationship types:

stdout | testing/benchmarks/nornicdb-vs-neo4j-northwind.bench.ts:372:17 • SUPPLIES: 16 • PART_OF: 16 • PURCHASED: 8 • ORDERS: 16

stdout | testing/benchmarks/nornicdb-vs-neo4j-northwind.bench.ts:380:11

Connecting to Neo4j at bolt://localhost:7688...

stdout | testing/benchmarks/nornicdb-vs-neo4j-northwind.bench.ts:385:13 ✓ Connected to Neo4j

stdout | testing/benchmarks/nornicdb-vs-neo4j-northwind.bench.ts:387:13 Loading Northwind dataset into Neo4j...

stdout | loadNorthwindDataset (~/src/NornicDB/testing/benchmarks/nornicdb-vs-neo4j-northwind.bench.ts:55:13) → Cleared existing data

stdout | testing/benchmarks/nornicdb-vs-neo4j-northwind.bench.ts:390:13 → 48 nodes created in Neo4j

stdout | testing/benchmarks/nornicdb-vs-neo4j-northwind.bench.ts:393:13 → 56 relationships created in Neo4j

stdout | testing/benchmarks/nornicdb-vs-neo4j-northwind.bench.ts:398:15 → Relationship types:

stdout | testing/benchmarks/nornicdb-vs-neo4j-northwind.bench.ts:400:17 • SUPPLIES: 16 • PART_OF: 16 • ORDERS: 16 • PURCHASED: 8

stdout | testing/benchmarks/nornicdb-vs-neo4j-northwind.bench.ts:407:11

────────────────────────────────────────────────────────────────────────

✓ testing/benchmarks/nornicdb-vs-neo4j-northwind.bench.ts > NornicDB Benchmarks (Northwind) 17478ms name hz min max mean p75 p99 p995 p999 rme samples · Count all nodes 3,304.28 0.2090 1.7344 0.3026 0.3088 0.6842 0.8918 1.6457 ±1.70% 1653 · Count all relationships 3,962.89 0.1878 0.6969 0.2523 0.2648 0.5298 0.5827 0.6967 ±0.81% 1982 · Get all products 1,141.19 0.6337 1.4095 0.8763 0.9455 1.1293 1.2341 1.4095 ±1.00% 571 · Get all categories 1,883.64 0.4107 0.7797 0.5309 0.5704 0.6734 0.7072 0.7797 ±0.71% 942 · Get all customers 1,897.08 0.4134 1.0865 0.5271 0.5660 0.7007 0.8347 1.0865 ±0.81% 949 · Find product by name 4,051.05 0.1825 0.7080 0.2468 0.2587 0.5367 0.5850 0.6776 ±0.83% 2026 · Find category by name 4,124.70 0.1838 0.7695 0.2424 0.2546 0.5372 0.6145 0.6740 ±0.87% 2063 · Find customer by ID 4,076.57 0.1812 2.5206 0.2453 0.2556 0.5823 0.6744 0.7797 ±1.39% 2039 · Products in Beverages category 3,272.72 0.2166 1.5701 0.3056 0.3183 0.7734 0.9790 1.4387 ±1.72% 1637 · Products supplied by Exotic Liquids 3,548.59 0.2166 1.2168 0.2818 0.2962 0.5987 0.6945 0.8261 ±0.97% 1775 · Orders by customer ALFKI 4,145.02 0.1826 0.8354 0.2413 0.2533 0.5763 0.6974 0.7803 ±1.00% 2073 · Products in order 10643 3,574.53 0.2128 0.8210 0.2798 0.2945 0.6370 0.7045 0.8196 ±0.95% 1789 · Supplier to category through products 1,907.24 0.4048 0.8465 0.5243 0.5593 0.7595 0.7788 0.8465 ±0.77% 954 · Customer orders to products 4,129.72 0.1880 0.8273 0.2421 0.2507 0.6771 0.7260 0.7954 ±1.04% 2065 · Customer to category through orders and products 1,909.68 0.4062 0.9420 0.5236 0.5604 0.7717 0.8662 0.9420 ±0.85% 955 · Customer to supplier through orders and products 1,908.32 0.4096 1.0420 0.5240 0.5597 0.7887 0.9335 1.0420 ±0.85% 955 · Products per category 2,055.99 0.3717 0.9982 0.4864 0.5199 0.7734 0.8272 0.9095 ±0.84% 1029 · Average price per category 2,053.84 0.3736 1.4478 0.4869 0.5224 0.7930 0.8321 1.0961 ±0.99% 1027 · Total quantity ordered per product 1,169.00 0.6635 1.8253 0.8554 0.9187 1.0756 1.1500 1.8253 ±0.96% 585 · Orders per customer 1,906.57 0.4125 1.1563 0.5245 0.5595 0.7740 0.8276 1.1563 ±0.84% 954 · Products per supplier 1,898.07 0.4113 1.3674 0.5269 0.5610 0.9188 1.0235 1.3674 ±0.99% 950 · Top products by revenue (price * quantity) 4,959.36 0.1486 0.9269 0.2016 0.2091 0.6685 0.7988 0.8841 ±1.30% 2480 · Products out of stock 3,562.49 0.2143 1.0617 0.2807 0.2927 0.7385 0.9013 1.0349 ±1.19% 1782 · Expensive products (price > 30) 3,077.89 0.2470 1.2440 0.3249 0.3423 0.7940 0.9409 1.0685 ±1.13% 1539 · Categories with product lists 1,983.83 0.3817 1.4889 0.5041 0.5371 0.9780 1.0357 1.4889 ±1.10% 992 · Customers with order lists 1,865.35 0.4223 1.5911 0.5361 0.5688 1.0305 1.1573 1.5911 ±1.15% 933 · Products with or without orders 4,103.30 0.1829 1.1503 0.2437 0.2509 0.8565 0.9215 1.0641 ±1.46% 2052 · Create and delete product node 2,464.12 0.2895 1.3361 0.4058 0.4273 0.8947 1.0017 1.1672 ±1.13% 1233 · Create and delete relationship 4,938.20 0.1470 1.1654 0.2025 0.2073 0.7691 0.9191 1.0478 ±1.54% 2470 stdout | testing/benchmarks/nornicdb-vs-neo4j-northwind.bench.ts:411:11

────────────────────────────────────────────────────────────────────────

stdout | testing/benchmarks/nornicdb-vs-neo4j-northwind.bench.ts:412:11 Cleaning up...

stdout | testing/benchmarks/nornicdb-vs-neo4j-northwind.bench.ts:426:11 ✓ Cleanup complete

✓ testing/benchmarks/nornicdb-vs-neo4j-northwind.bench.ts > Neo4j Benchmarks (Northwind) 17475ms name hz min max mean p75 p99 p995 p999 rme samples · Count all nodes 1,920.26 0.3017 3.3828 0.5208 0.5786 1.1181 1.2078 3.3828 ±2.15% 961 · Count all relationships 2,008.30 0.2909 1.3387 0.4979 0.5475 0.9733 1.0839 1.1821 ±1.34% 1005 · Get all products 1,800.61 0.3320 1.8842 0.5554 0.6215 1.1024 1.2869 1.8842 ±1.74% 901 · Get all categories 1,949.07 0.2811 6.9235 0.5131 0.5495 1.1055 1.3178 6.9235 ±2.97% 975 · Get all customers 1,934.31 0.2921 6.2568 0.5170 0.5704 1.1202 1.2048 6.2568 ±2.75% 968 · Find product by name 2,034.21 0.2792 1.7971 0.4916 0.5370 1.1155 1.2015 1.3253 ±1.58% 1018 · Find category by name 2,098.78 0.2678 1.5732 0.4765 0.5319 1.0516 1.1876 1.2612 ±1.65% 1050 · Find customer by ID 1,989.50 0.3033 1.6974 0.5026 0.5532 1.1294 1.2208 1.6974 ±1.60% 995 · Products in Beverages category 2,035.12 0.3027 1.4218 0.4914 0.5470 1.0316 1.1600 1.2879 ±1.49% 1018 · Products supplied by Exotic Liquids 2,029.91 0.2846 7.3204 0.4926 0.5298 1.0925 1.2072 1.3353 ±3.05% 1015 · Orders by customer ALFKI 2,093.93 0.2852 1.4698 0.4776 0.5320 1.1160 1.2412 1.3320 ±1.59% 1048 · Products in order 10643 2,097.82 0.2910 1.4129 0.4767 0.5321 1.0938 1.1916 1.3150 ±1.53% 1049 · Supplier to category through products 1,713.86 0.2981 3.4392 0.5835 0.6158 1.8965 2.7056 3.4392 ±3.42% 857 · Customer orders to products 1,725.25 0.2946 3.6644 0.5796 0.6153 2.1128 2.6618 3.6644 ±3.80% 863 · Customer to category through orders and products 1,750.31 0.3328 8.5523 0.5713 0.6334 1.2545 1.4155 8.5523 ±3.54% 876 · Customer to supplier through orders and products 1,850.74 0.3016 1.7362 0.5403 0.6006 1.2922 1.3417 1.7362 ±1.70% 926 · Products per category 1,977.30 0.2991 1.4076 0.5057 0.5597 1.2452 1.3266 1.4076 ±1.57% 989 · Average price per category 1,950.91 0.2923 1.5900 0.5126 0.5698 1.1989 1.3564 1.5900 ±1.62% 976 · Total quantity ordered per product 1,842.66 0.3236 1.5331 0.5427 0.5922 1.3262 1.3884 1.5331 ±1.64% 922 · Orders per customer 1,863.44 0.3132 1.4901 0.5366 0.6037 1.2297 1.3475 1.4901 ±1.73% 932 · Products per supplier 1,931.43 0.3083 1.8870 0.5177 0.5750 1.2539 1.3555 1.8870 ±1.70% 966 · Top products by revenue (price * quantity) 1,849.10 0.3182 1.6995 0.5408 0.5893 1.2203 1.4133 1.6995 ±1.61% 925 · Products out of stock 2,046.96 0.2817 1.5414 0.4885 0.5375 1.1872 1.3849 1.4868 ±1.66% 1024 · Expensive products (price > 30) 2,030.10 0.2740 1.4711 0.4926 0.5508 1.2891 1.3432 1.4117 ±1.70% 1016 · Categories with product lists 1,930.37 0.3028 7.9957 0.5180 0.5658 1.3052 1.4605 7.9957 ±3.39% 966 · Customers with order lists 1,947.89 0.2893 1.7172 0.5134 0.5653 1.3477 1.5198 1.7172 ±1.78% 975 · Products with or without orders 1,865.24 0.3168 1.7097 0.5361 0.5810 1.3580 1.5448 1.7097 ±1.71% 933 · Create and delete product node 1,625.77 0.3227 5.4628 0.6151 0.6719 1.6602 2.1209 5.4628 ±3.29% 813 · Create and delete relationship 1,308.40 0.3651 14.8878 0.7643 0.7682 2.3593 2.7068 14.8878 ±6.91% 655

BENCH Summary

Top products by revenue (price * quantity) - testing/benchmarks/nornicdb-vs-neo4j-northwind.bench.ts > NornicDB Benchmarks (Northwind) 1.00x faster than Create and delete relationship 1.20x faster than Orders by customer ALFKI 1.20x faster than Customer orders to products 1.20x faster than Find category by name 1.21x faster than Products with or without orders 1.22x faster than Find customer by ID 1.22x faster than Find product by name 1.25x faster than Count all relationships 1.39x faster than Products in order 10643 1.39x faster than Products out of stock 1.40x faster than Products supplied by Exotic Liquids 1.50x faster than Count all nodes 1.52x faster than Products in Beverages category 1.61x faster than Expensive products (price > 30) 2.01x faster than Create and delete product node 2.41x faster than Products per category 2.41x faster than Average price per category 2.50x faster than Categories with product lists 2.60x faster than Customer to category through orders and products 2.60x faster than Customer to supplier through orders and products 2.60x faster than Supplier to category through products 2.60x faster than Orders per customer 2.61x faster than Products per supplier 2.61x faster than Get all customers 2.63x faster than Get all categories 2.66x faster than Customers with order lists 4.24x faster than Total quantity ordered per product 4.35x faster than Get all products

Find category by name - testing/benchmarks/nornicdb-vs-neo4j-northwind.bench.ts > Neo4j Benchmarks (Northwind) 1.00x faster than Products in order 10643 1.00x faster than Orders by customer ALFKI 1.03x faster than Products out of stock 1.03x faster than Products in Beverages category 1.03x faster than Find product by name 1.03x faster than Expensive products (price > 30) 1.03x faster than Products supplied by Exotic Liquids 1.05x faster than Count all relationships 1.05x faster than Find customer by ID 1.06x faster than Products per category 1.08x faster than Average price per category 1.08x faster than Get all categories 1.08x faster than Customers with order lists 1.09x faster than Get all customers 1.09x faster than Products per supplier 1.09x faster than Categories with product lists 1.09x faster than Count all nodes 1.13x faster than Products with or without orders 1.13x faster than Orders per customer 1.13x faster than Customer to supplier through orders and products 1.14x faster than Top products by revenue (price * quantity) 1.14x faster than Total quantity ordered per product 1.17x faster than Get all products 1.20x faster than Customer to category through orders and products 1.22x faster than Customer orders to products 1.22x faster than Supplier to category through products 1.29x faster than Create and delete product node 1.60x faster than Create and delete relationship

user@laptop NornicDB %

GitHub Copilot: ## NornicDB vs Neo4j Performance Breakdown (Metal GPU Enabled)

Overall: NornicDB is 1.5x - 4.3x faster across the board ​


Performance Comparison Table ​

Query TypeNornicDB (ops/s)Neo4j (ops/s)SpeedupNotes
Top products by revenue4,9591,8492.68xFastest NornicDB query
Create/delete relationship4,9381,3083.78xMassive write advantage
Orders by customer ALFKI4,1452,0941.98xSimple traversal
Customer orders to products4,1301,7252.39xMulti-hop traversal
Find category by name4,1252,0991.97xIndex lookup
Products with/without orders4,1031,8652.20xOPTIONAL MATCH
Find customer by ID4,0771,9902.05xIndex lookup
Find product by name4,0512,0341.99xIndex lookup
Count relationships3,9632,0081.97xSimple aggregation
Products in order 106433,5752,0981.70xPattern match
Products out of stock3,5622,0471.74xWHERE filter
Products supplied by Exotic3,5492,0301.75xPattern match
Count all nodes3,3041,9201.72xSimple count
Products in Beverages3,2732,0351.61xCategory filter
Expensive products (>30)3,0782,0301.52xWHERE filter
Create/delete node2,4641,6261.52xWrite operation
Products per category2,0561,9771.04xGROUP BY
Average price per category2,0541,9511.05xAVG aggregation
Categories with product lists1,9841,9301.03xCOLLECT
Customer→category→orders1,9101,7501.09x3-hop traversal
Customer→supplier→orders1,9081,8511.03x3-hop traversal
Supplier→category→products1,9071,7141.11x3-hop traversal
Orders per customer1,9071,8631.02xGROUP BY
Get all customers1,8971,9340.98xNeo4j wins slightly
Products per supplier1,8981,9310.98xNeo4j wins slightly
Get all categories1,8841,9490.97xNeo4j wins slightly
Customers with order lists1,8651,9480.96xNeo4j wins slightly
Total qty ordered per product1,1691,8430.63xNeo4j wins
Get all products1,1411,8010.63xNeo4j wins

Key Insights ​

Where NornicDB Dominates (2x+ faster): ​

CategorySpeedupWhy
Write operations3.78xOptimized WAL + BadgerDB MVCC
Index lookups~2xSimpler index structure
Simple traversals2-2.4xLess query planning overhead
Aggregations (no GROUP BY)2.7xParallel execution shines

Where They're Equal (~1x): ​

CategoryReason
GROUP BY queriesNeo4j's mature aggregation optimizer
COLLECT operationsSimilar implementation
Multi-hop traversalsBoth handle graph patterns well

Where Neo4j Wins (0.6-0.98x): ​

QueryNeo4j AdvantagePossible Fix
Get all products1.58x fasterBatch return optimization
Total qty ordered1.58x fasterSUM aggregation tuning
Get all customers1.02x fasterMinor - acceptable

Metal GPU Impact ​

Comparing to your previous run without Metal:

QueryWithout MetalWith MetalMetal Boost
Count all nodes2,309 ops/s3,304 ops/s+43%
Count relationships2,764 ops/s3,963 ops/s+43%
Find product by name3,028 ops/s4,051 ops/s+34%
Top products by revenue3,451 ops/s4,959 ops/s+44%
Create/delete relationship3,361 ops/s4,938 ops/s+47%

Metal provides ~35-47% performance boost on most queries!


Optimization Opportunities ​

The two queries where Neo4j wins significantly:

  1. Get all products (0.63x) - Returning all 16 products with all properties
  2. Total quantity ordered per product (0.63x) - SUM aggregation with GROUP BY

These would benefit from:

  • Parallel property serialization when returning many nodes
  • Parallel SUM with partitioned aggregation for large groupings

Want me to optimize these specific queries?

Timothy-Sweet_cvsh: Get all customers 1,897 1,934 0.98x Neo4j wins slightly Products per supplier 1,898 1,931 0.98x Neo4j wins slightly Get all categories 1,884 1,949 0.97x Neo4j wins slightly Customers with order lists 1,865 1,948 0.96x Neo4j wins slightly Total qty ordered per product 1,169 1,843 0.63x Neo4j wins Get all products 1,141 1,801 0.63x Neo4j wins

check if they are easy performance gains such as regex not compiled up front if we can, better cleanup and management of things, etc.. CHANGE NO FUNCTIONALITY

GitHub Copilot: Let me investigate these slower queries to find easy performance wins without changing functionality.

Searched for regex regexp\.Compile|regexp\.MustCompile (**/nornicdb/**/*.go), 20 results

Good - the regex patterns are pre-compiled at package level. Let me check if there are any regex being compiled inside functions (hot paths):

Searched for regex regexp\.Compile\(|regexp\.MustCompile\( (**/nornicdb/**/*.go), 50 results

Found several regex patterns being compiled inside functions in create.go! Let me check those:

Read , lines 855 to 915

Read , lines 1000 to 1100

Read , lines 1100 to 1200

I found several regex patterns being compiled inside functions in hot paths. Let me also check if there are any in the executor or match files:

Searched for regex func.*\{[^}]*regexp\.(Must)?Compile (**/nornicdb/pkg/cypher/*.go), no results

Searched for regex regexp\. (**/nornicdb/pkg/cypher/executor.go), 1 result

Read , lines 2360 to 2380

Found one! regexp.MatchString compiles the regex every call. Let me also look for other common inefficiencies - strings.Split in loops, unnecessary allocations, etc:

Searched for regex regexp\.|strings\.Split|strings\.ToLower|strings\.ToUpper (**/nornicdb/pkg/cypher/match.go), 18 results

Let me also check how nodes are returned/serialized - this could be a bottleneck for "Get all products":

Searched for regex make\(map\[string\]|make\(\[\] (**/nornicdb/pkg/cypher/*.go), 20 results

Let me check the regex_patterns.go to see the structure and look for the regex cache opportunity:

────────────────────────────────────────────────────────────────────────

✓ testing/benchmarks/nornicdb-vs-neo4j-northwind.bench.ts > NornicDB Benchmarks (Northwind) 41568ms name hz min max mean p75 p99 p995 p999 rme samples 536 · Customer to supplier through orders and products 1,031.31 0.6650 4.6032 0.9696 0.9645 2.6989 4.2535 4.6032 ±2.99% 516 · Products per category 1,117.17 0.7190 2.1266 0.8951 0.9380 1.1234 1.3042 2.1266 ±0.84% 559 · Average price per category 1,176.60 0.6270 2.1334 0.8499 0.8803 1.0428 1.0670 2.1334 ±0.79% 589 · Total quantity ordered per product 1,017.37 0.7366 2.1327 0.9829 1.0323 1.2541 1.3257 2.1327 ±0.86% 509 · Orders per customer 1,117.22 0.6544 3.9100 0.8951 0.9415 1.1478 2.1856 3.9100 ±1.59% 559 · Products per supplier 1,140.24 0.6239 2.6550 0.8770 0.9274 1.1900 1.3216 2.6550 ±1.20% 571 · Top products by revenue (price * quantity) 1,271.93 0.6412 2.3894 0.7862 0.8129 1.0327 1.1199 2.3894 ±1.08% 637 · Products out of stock 1,285.50 0.6430 2.2735 0.7779 0.8005 0.9989 1.0871 2.2735 ±0.97% 643 · Expensive products (price > 30) 1,209.61 0.6636 1.9992 0.8267 0.8798 1.0449 1.0792 1.9992 ±1.04% 605 · Categories with product lists 1,141.45 0.7414 2.2706 0.8761 0.9122 1.1751 1.2315 2.2706 ±0.95% 571 · Customers with order lists 1,082.78 0.6969 2.7066 0.9235 0.9599 1.0634 1.0903 2.7066 ±1.09% 542 · Products with or without orders 1,201.73 0.6383 3.4020 0.8321 0.8785 1.1018 1.2001 3.4020 ±1.37% 601 · Create and delete product node 754.22 1.0031 2.3815 1.3259 1.3233 2.3314 2.3529 2.3815 ±1.75% 378 · Create and delete relationship 1,184.00 0.6500 2.1544 0.8446 0.8891 1.0150 1.0539 2.1544 ±0.84% 593 stdout | testing\benchmarks\nornicdb-vs-neo4j-northwind.bench.ts:411:11

────────────────────────────────────────────────────────────────────────

stdout | testing\benchmarks\nornicdb-vs-neo4j-northwind.bench.ts:412:11 Cleaning up...

✓ testing/benchmarks/nornicdb-vs-neo4j-northwind.bench.ts > Neo4j Benchmarks (Northwind) 17704ms name hz min max mean p75 p99 p995 p999 rme samples · Count all nodes 451.95 1.7100 3.9066 2.2126 2.2950 3.2194 3.3107 3.9066 ±1.77% 227 · Count all relationships 467.13 1.5926 3.8127 2.1407 2.3228 2.8931 3.3900 3.8127 ±1.78% 234 · Get all products 442.73 1.8030 3.0118 2.2587 2.4116 2.9224 2.9970 3.0118 ±1.42% 222 · Get all categories 471.52 1.5977 6.2990 2.1208 2.1714 3.6964 4.2035 6.2990 ±2.54% 236 · Get all customers 421.99 1.7777 5.9498 2.3697 2.4817 4.6237 4.6954 5.9498 ±2.76% 211 · Find product by name 442.91 1.6685 3.5084 2.2578 2.4339 3.4152 3.4477 3.5084 ±2.17% 222 · Find category by name 449.41 1.5563 4.4131 2.2251 2.5065 3.6915 3.9018 4.4131 ±2.85% 225 · Find customer by ID 477.39 1.4832 3.1421 2.0947 2.3276 2.8058 3.0540 3.1421 ±1.89% 239 · Products in Beverages category 453.24 1.3902 19.0072 2.2063 2.3434 3.2030 3.2145 19.0072 ±6.91% 227 · Products supplied by Exotic Liquids 489.57 1.3827 3.0612 2.0426 2.2112 2.8266 2.8471 3.0612 ±1.75% 245 · Orders by customer ALFKI 592.76 1.2123 3.5823 1.6870 1.7344 2.9155 3.4440 3.5823 ±2.25% 297 · Products in order 10643 623.10 1.1736 2.5195 1.6049 1.6936 2.1065 2.1294 2.5195 ±1.20% 312 · Supplier to category through products 532.53 1.3698 2.8540 1.8778 2.0774 2.5914 2.5942 2.8540 ±1.86% 267 · Customer orders to products 647.56 1.1950 2.3117 1.5443 1.6559 2.2135 2.2737 2.3117 ±1.53% 324 · Customer to category through orders and products 530.51 1.3416 6.3153 1.8850 2.0381 2.7913 2.8481 6.3153 ±2.48% 266 · Customer to supplier through orders and products 523.72 1.4665 3.0557 1.9094 2.0671 2.7347 2.8156 3.0557 ±1.74% 262 · Products per category 550.91 1.2888 2.8005 1.8152 1.9648 2.5696 2.7129 2.8005 ±1.66% 276 · Average price per category 509.00 1.0654 3.6025 1.9646 2.2677 3.3211 3.3794 3.6025 ±2.97% 255 · Total quantity ordered per product 622.58 1.2270 2.6862 1.6062 1.7455 2.2409 2.6389 2.6862 ±1.62% 312 · Orders per customer 663.20 1.1364 2.2180 1.5078 1.5984 1.9929 2.0883 2.2180 ±1.16% 333 · Products per supplier 582.89 1.1452 5.0242 1.7156 1.9287 3.1040 3.1280 5.0242 ±3.00% 292 · Top products by revenue (price * quantity) 548.85 1.1585 3.4319 1.8220 2.0011 3.0117 3.0762 3.4319 ±2.28% 275 · Products out of stock 757.79 0.9920 3.2709 1.3196 1.4263 1.9332 2.1028 3.2709 ±1.61% 379 · Expensive products (price > 30) 627.58 1.1188 5.1640 1.5934 1.7012 2.4953 2.5551 5.1640 ±2.35% 315 · Categories with product lists 634.17 1.0582 3.0414 1.5769 1.7907 2.8042 2.9368 3.0414 ±2.87% 318 · Customers with order lists 713.61 1.1269 2.4573 1.4013 1.4759 2.0956 2.2985 2.4573 ±1.38% 357 · Products with or without orders 648.69 0.9861 2.7417 1.5416 1.6742 2.1130 2.1998 2.7417 ±1.68% 325 · Create and delete product node 447.50 1.2669 4.3633 2.2346 2.5678 3.7773 4.2393 4.3633 ±3.56% 224 · Create and delete relationship 518.00 1.3475 6.2666 1.9305 2.0269 2.9652 3.8091 6.2666 ±2.47% 259 stdout | testing\benchmarks\nornicdb-vs-neo4j-northwind.bench.ts:426:11 ✓ Cleanup complete

BENCH Summary

Products out of stock - testing/benchmarks/nornicdb-vs-neo4j-northwind.bench.ts > NornicDB Benchmarks (Northwind) 1.01x faster than Top products by revenue (price * quantity) 1.04x faster than Find customer by ID 1.06x faster than Expensive products (price > 30) 1.07x faster than Products with or without orders 1.07x faster than Customer orders to products 1.09x faster than Create and delete relationship 1.09x faster than Supplier to category through products 1.09x faster than Average price per category 1.10x faster than Find category by name 1.11x faster than Products in order 10643 1.13x faster than Categories with product lists 1.13x faster than Products per supplier 1.14x faster than Products supplied by Exotic Liquids 1.14x faster than Find product by name 1.15x faster than Orders per customer 1.15x faster than Products per category 1.17x faster than Products in Beverages category 1.17x faster than Orders by customer ALFKI 1.18x faster than Count all relationships 1.19x faster than Customers with order lists 1.20x faster than Customer to category through orders and products 1.25x faster than Customer to supplier through orders and products 1.25x faster than Count all nodes 1.25x faster than Get all customers 1.26x faster than Total quantity ordered per product 1.28x faster than Get all categories 1.34x faster than Get all products 1.70x faster than Create and delete product node

Products out of stock - testing/benchmarks/nornicdb-vs-neo4j-northwind.bench.ts > Neo4j Benchmarks (Northwind) 1.06x faster than Customers with order lists 1.14x faster than Orders per customer 1.17x faster than Products with or without orders 1.17x faster than Customer orders to products 1.19x faster than Categories with product lists 1.21x faster than Expensive products (price > 30) 1.22x faster than Products in order 10643 1.22x faster than Total quantity ordered per product 1.28x faster than Orders by customer ALFKI 1.30x faster than Products per supplier 1.38x faster than Products per category 1.38x faster than Top products by revenue (price * quantity) 1.42x faster than Supplier to category through products 1.43x faster than Customer to category through orders and products 1.45x faster than Customer to supplier through orders and products 1.46x faster than Create and delete relationship 1.49x faster than Average price per category 1.55x faster than Products supplied by Exotic Liquids 1.59x faster than Find customer by ID 1.61x faster than Get all categories 1.62x faster than Count all relationships 1.67x faster than Products in Beverages category 1.68x faster than Count all nodes 1.69x faster than Find category by name 1.69x faster than Create and delete product node 1.71x faster than Find product by name 1.71x faster than Get all products 1.80x faster than Get all customers

PS C:\Users\timot\Documents\GitHub\NornicDB>

Analytics privacy