{
  "startedUtc": "2026-10-03T18:44:45Z",
  "command": "run-all",
  "commandLine": "~/ForClaude/GenericVectorBuilder/src/GenericVectorBuilder.Bench/bin/Release/net10.0/GenericVectorBuilder.Bench.dll run-all --pipeline eshoponweb --targets sql,qdrant,qdrant-hnsw,pgvector,mariadb,oracle,redis,mongodb,clickhouse,milvus,weaviate,chroma,elasticsearch,opensearch,typesense,vespa,duckdb,sqlitevec --queries golden",
  "machine": {
    "host": "bench-host",
    "cpu": "Intel(R) Xeon(R) CPU E5-1620 v3 @ 3.50GHz",
    "logicalCpus": 8,
    "ramGiB": 62.7,
    "gpu": "NVIDIA GeForce RTX 3060, 12288 MiB",
    "os": "Ubuntu 24.04.5 LTS, kernel 6.8.0-142-generic",
    "dotNet": ".NET 10.0.12",
    "loadAverage": "5.55 4.28 3.37"
  },
  "pipeline": "eshoponweb",
  "collection": "gvbbench_eshoponweb",
  "rows": 524,
  "dimension": 1024,
  "source": "Read READ-ONLY from GenericVectorBuilder.dbo.gvb_eshoponweb in ChunkId order, vectors as native SqlVector\u003Cfloat\u003E, 0.3 s.",
  "queries": "golden: 20 labelled questions from ~/ForClaude/evalkit/questions_golden.json, embedded with qwen3-emb-0.6b (cached in ~/gvb-data/bench-cache/golden-eshoponweb-68df42ca69efa079.json, no embedding calls)",
  "queryCount": 20,
  "top": 10,
  "concurrency": [
    1,
    8
  ],
  "secondsPerLevel": 20,
  "truthSeconds": 0.0293938,
  "truthNdcg": 0.5181699774768911,
  "notes": [
    "Load rows/s counts only time inside each target\u0027s upsert calls: one writer, batches of 1000, rows already in memory, the collection dropped and created fresh first.",
    "Latency is client-side wall time around each search (network and driver included), one query at a time, after 20 warm-up queries; at least 200 samples (small query sets are repeated).",
    "QPS: N workers searching back to back for 20 s per level; completed searches divided by elapsed time.",
    "Recall@10: share of the exact top 10 (brute force in memory) that the engine returned. A hit whose exact similarity ties the 10th best (within 1e-5) also counts, because duplicate rows embed to identical vectors.",
    "RAM of always-on servers (SQL Server, Qdrant) is the whole process, including every other database or collection it serves; for compose engines it is docker stats of the engine\u0027s containers. Disk is the table\u0027s reserved pages (SQL), the collection folder (Qdrant), or for other engines what the load added to the engine\u0027s data folder (engines that keep data in memory until a snapshot show almost nothing).",
    "The empty benchmark database GvbBench was dropped at the end."
  ],
  "targets": [
    {
      "name": "sql",
      "engine": "Microsoft SQL Server 2025 (RTM-CU9) (KB5122048) - 17.0.5005.3 (X64)",
      "index": "exact VECTOR_DISTANCE cosine, no vector index (full scan)",
      "hosting": "always-on",
      "load": {
        "rows": 524,
        "batch": 1000,
        "upsertSeconds": 0.9575719,
        "rowsPerSecond": 547.2173943283005,
        "countMatchSeconds": 0.0064463
      },
      "search": {
        "countInTarget": 524,
        "latencySamples": 200,
        "p50Ms": 6.5200499999999995,
        "p95Ms": 9.979455,
        "p99Ms": 11.714671999999995,
        "qps": {
          "1": 195.97215235715004,
          "8": 806.2282066203587
        },
        "recall": 1,
        "ndcg": 0.5181699774768911,
        "errors": 0,
        "exactQueries": 0
      },
      "ram": {
        "bytes": 4431282176,
        "text": "4.13 GiB (whole SQL Server process)"
      },
      "disk": {
        "bytes": 5398528,
        "text": "5.15 MiB (table and its indexes, reserved pages)"
      },
      "notes": [
        "Load average 5.42 4.28 3.37 (1/5/15 min) when searching began.",
        "Benchmark copy gvbbench_eshoponweb dropped afterwards."
      ]
    },
    {
      "name": "qdrant",
      "engine": "Qdrant 1.17.0 (systemd, local)",
      "index": "exact search (the builder\u0027s setting), HNSW m=16 ef_construct=100 built but not used",
      "hosting": "always-on",
      "load": {
        "rows": 524,
        "batch": 1000,
        "upsertSeconds": 0.2225261,
        "rowsPerSecond": 2354.779956148964,
        "countMatchSeconds": 0.0217985,
        "indexSeconds": 2.0362743,
        "indexNote": "status Green, 0 of 524 vectors in HNSW segments (4 segments)"
      },
      "search": {
        "countInTarget": 524,
        "latencySamples": 200,
        "p50Ms": 2.79415,
        "p95Ms": 3.3174199999999994,
        "p99Ms": 4.208997999999997,
        "qps": {
          "1": 407.6832605253228,
          "8": 3443.7710682064203
        },
        "recall": 1,
        "ndcg": 0.5181699774768911,
        "errors": 0,
        "exactQueries": 0
      },
      "ram": {
        "bytes": 4519419904,
        "text": "4.21 GiB (whole Qdrant process, every collection)"
      },
      "disk": {
        "bytes": 344082727,
        "text": "328.14 MiB (collection folder)"
      },
      "notes": [
        "Load average 5.58 4.44 3.46 (1/5/15 min) when searching began.",
        "Benchmark copy gvbbench_eshoponweb dropped afterwards."
      ]
    },
    {
      "name": "qdrant-hnsw",
      "engine": "Qdrant 1.17.0 (systemd, local)",
      "index": "HNSW m=16 ef_construct=100, hnsw_ef=server default, cosine",
      "hosting": "always-on",
      "load": {
        "rows": 524,
        "batch": 1000,
        "upsertSeconds": 0.0790653,
        "rowsPerSecond": 6627.433273509365,
        "countMatchSeconds": 0.0046041,
        "indexSeconds": 2.0022727,
        "indexNote": "status Green, 0 of 524 vectors in HNSW segments (4 segments)"
      },
      "search": {
        "countInTarget": 524,
        "latencySamples": 200,
        "p50Ms": 2.4246999999999996,
        "p95Ms": 2.723255,
        "p99Ms": 2.979818999999991,
        "qps": {
          "1": 412.0971588418075,
          "8": 3432.3362008932595
        },
        "recall": 1,
        "ndcg": 0.5181699774768911,
        "errors": 0,
        "exactQueries": 20,
        "exactP50Ms": 0.84575,
        "exactP95Ms": 0.9672800000000001,
        "exactRecall": 1
      },
      "ram": {
        "bytes": 4519940096,
        "text": "4.21 GiB (whole Qdrant process, every collection)"
      },
      "disk": {
        "bytes": 344082727,
        "text": "328.14 MiB (collection folder)"
      },
      "notes": [
        "Load average 6.21 4.69 3.59 (1/5/15 min) when searching began.",
        "Benchmark copy gvbbench_eshoponweb dropped afterwards."
      ]
    },
    {
      "name": "pgvector",
      "engine": "PostgreSQL 17 \u002B pgvector 0.8.7",
      "index": "HNSW vector_cosine_ops m=16 ef_construction=128, hnsw.ef_search=100 per query, float32 vector(n), cosine; exact mode = same query with index scans off (sequential scan)",
      "hosting": "compose",
      "load": {
        "rows": 524,
        "batch": 1000,
        "upsertSeconds": 0.9919101,
        "rowsPerSecond": 528.2736812539765,
        "countMatchSeconds": 0.0286915
      },
      "search": {
        "countInTarget": 524,
        "latencySamples": 200,
        "p50Ms": 2.86555,
        "p95Ms": 4.114714999999994,
        "p99Ms": 4.900939999999989,
        "qps": {
          "1": 403.1245346231479,
          "8": 3830.9419477503993
        },
        "recall": 1,
        "ndcg": 0.5181699774768911,
        "errors": 0,
        "exactQueries": 20,
        "exactP50Ms": 2.3629,
        "exactP95Ms": 2.4868850000000005,
        "exactRecall": 1
      },
      "ram": {
        "bytes": 106220748,
        "text": "101.3 MiB (docker stats)"
      },
      "disk": {
        "bytes": 7992484,
        "text": "7.62 MiB added by this load (1.04 GiB (whole engine data folder), 1.03 GiB before)"
      },
      "notes": [
        "Started by run-all for this measurement and stopped afterwards.",
        "Load average 6.05 4.86 3.70 (1/5/15 min) when searching began.",
        "Benchmark copy gvbbench_eshoponweb dropped afterwards."
      ]
    },
    {
      "name": "mariadb",
      "engine": "MariaDB 11.8.9 (InnoDB \u002B VECTOR INDEX)",
      "index": "VECTOR INDEX (HNSW variant) DISTANCE=cosine, M=16 (no ef_construction setting exists), mhnsw_ef_search=3200, mhnsw_max_cache_size 4G; exact mode = IGNORE INDEX full scan",
      "hosting": "compose",
      "load": {
        "rows": 524,
        "batch": 1000,
        "upsertSeconds": 0.7842527,
        "rowsPerSecond": 668.1519872357468,
        "countMatchSeconds": 0.0070221
      },
      "search": {
        "countInTarget": 524,
        "latencySamples": 200,
        "p50Ms": 2.33645,
        "p95Ms": 2.724595,
        "p99Ms": 2.9101759999999963,
        "qps": {
          "1": 435.29140081837687,
          "8": 4559.299998060128
        },
        "recall": 1,
        "ndcg": 0.5181699774768911,
        "errors": 0,
        "exactQueries": 20,
        "exactP50Ms": 1.66225,
        "exactP95Ms": 1.7500850000000003,
        "exactRecall": 1
      },
      "ram": {
        "bytes": 163682713,
        "text": "156.1 MiB (docker stats)"
      },
      "disk": {
        "bytes": 23077570,
        "text": "22.01 MiB added by this load (193.79 MiB (whole engine data folder), 171.78 MiB before)"
      },
      "notes": [
        "Started by run-all for this measurement and stopped afterwards.",
        "Load average 5.76 4.88 3.76 (1/5/15 min) when searching began.",
        "Benchmark copy gvbbench_eshoponweb dropped afterwards."
      ]
    },
    {
      "name": "oracle",
      "engine": "Oracle AI Database Free 23.26 (23ai line, VECTOR FLOAT32)",
      "index": "HNSW in-memory neighbor graph NEIGHBORS=16 EFCONSTRUCTION=128, EFSEARCH=100 per query, cosine; exact mode = FETCH EXACT FIRST (full scan)",
      "hosting": "compose",
      "load": {
        "rows": 524,
        "batch": 1000,
        "upsertSeconds": 0.3232659,
        "rowsPerSecond": 1620.956618065809,
        "countMatchSeconds": 0.0544214
      },
      "search": {
        "countInTarget": 524,
        "latencySamples": 200,
        "p50Ms": 5.596550000000001,
        "p95Ms": 6.854059999999999,
        "p99Ms": 7.5647329999999995,
        "qps": {
          "1": 269.26689498159647,
          "8": 695.0843996172132
        },
        "recall": 1,
        "ndcg": 0.5181699774768911,
        "errors": 0,
        "exactQueries": 20,
        "exactP50Ms": 4.1937999999999995,
        "exactP95Ms": 7.613615000000002,
        "exactRecall": 1
      },
      "ram": {
        "bytes": 2243046670,
        "text": "2.09 GiB (docker stats)"
      },
      "disk": {
        "bytes": 0,
        "text": "0 B added by this load (6.88 GiB (whole engine data folder), 6.88 GiB before)"
      },
      "notes": [
        "Started by run-all for this measurement and stopped afterwards.",
        "Load average 5.32 4.93 3.85 (1/5/15 min) when searching began.",
        "Benchmark copy gvbbench_eshoponweb dropped afterwards."
      ]
    },
    {
      "name": "redis",
      "engine": "Redis 8.10.2 (query engine, HASH \u002B vector index)",
      "index": "HNSW TYPE FLOAT32 M=16 EF_CONSTRUCTION=128, EF_RUNTIME=100 per query, cosine; exact mode = FLAT index built on first exact query",
      "hosting": "compose",
      "load": {
        "rows": 524,
        "batch": 1000,
        "upsertSeconds": 0.0825552,
        "rowsPerSecond": 6347.268252030157,
        "countMatchSeconds": 0.0175466
      },
      "search": {
        "countInTarget": 524,
        "latencySamples": 200,
        "p50Ms": 1.5061,
        "p95Ms": 2.02301,
        "p99Ms": 2.5065269999999966,
        "qps": {
          "1": 767.5322546542724,
          "8": 2011.0114160629346
        },
        "recall": 1,
        "ndcg": 0.5181699774768911,
        "errors": 0,
        "exactQueries": 20,
        "exactP50Ms": 1.3377,
        "exactP95Ms": 12.218950000000149,
        "exactRecall": 1
      },
      "ram": {
        "bytes": 22020096,
        "text": "21 MiB (docker stats)"
      },
      "disk": {
        "bytes": 0,
        "text": "0 B added by this load (89 B (whole engine data folder), 89 B before)"
      },
      "notes": [
        "Started by run-all for this measurement and stopped afterwards.",
        "Load average 3.11 4.40 3.72 (1/5/15 min) when searching began.",
        "Benchmark copy gvbbench_eshoponweb dropped afterwards."
      ]
    },
    {
      "name": "mongodb",
      "engine": "MongoDB 8.0.32 Atlas Local (mongod \u002B mongot Vector Search)",
      "index": "vectorSearch index, HNSW maxEdges=16 numEdgeCandidates=128, float32 binData, cosine, numCandidates=20x hits (min 100); exact mode = $vectorSearch exact:true",
      "hosting": "compose",
      "load": {
        "rows": 524,
        "batch": 1000,
        "upsertSeconds": 0.2906357,
        "rowsPerSecond": 1802.9443733168362,
        "countMatchSeconds": 1.3876676
      },
      "search": {
        "countInTarget": 524,
        "latencySamples": 200,
        "p50Ms": 8.1371,
        "p95Ms": 15.782239999999994,
        "p99Ms": 17.495164999999986,
        "qps": {
          "1": 307.7027383978958,
          "8": 2807.436856691334
        },
        "recall": 1,
        "ndcg": 0.5181699774768911,
        "errors": 0,
        "exactQueries": 20,
        "exactP50Ms": 2.66295,
        "exactP95Ms": 4.900760000000003,
        "exactRecall": 1
      },
      "ram": {
        "bytes": 721000857,
        "text": "687.6 MiB (docker stats)"
      },
      "disk": {
        "bytes": 118496,
        "text": "115.72 KiB added by this load (1.12 GiB (whole engine data folder), 1.12 GiB before)"
      },
      "notes": [
        "Started by run-all for this measurement and stopped afterwards.",
        "Load average 3.03 4.14 3.67 (1/5/15 min) when searching began.",
        "Benchmark copy gvbbench_eshoponweb dropped afterwards."
      ]
    },
    {
      "name": "clickhouse",
      "engine": "ClickHouse 26.3.39.7 (MergeTree \u002B vector_similarity index)",
      "index": "vector_similarity HNSW cosineDistance, quantization bf16, M=16 ef_construction=128, hnsw_candidate_list_size_for_search=256, rescoring off; exact mode = full scan with skip indexes off",
      "hosting": "compose",
      "load": {
        "rows": 524,
        "batch": 1000,
        "upsertSeconds": 0.1933184,
        "rowsPerSecond": 2710.554194530888,
        "countMatchSeconds": 0.003233
      },
      "search": {
        "countInTarget": 524,
        "latencySamples": 200,
        "p50Ms": 6.25475,
        "p95Ms": 8.034099999999995,
        "p99Ms": 9.619098,
        "qps": {
          "1": 166.84986495257905,
          "8": 711.2615763181872
        },
        "recall": 0.9850000000000001,
        "ndcg": 0.5199815237648059,
        "errors": 0,
        "exactQueries": 20,
        "exactP50Ms": 6.5344,
        "exactP95Ms": 7.485775000000002,
        "exactRecall": 1
      },
      "ram": {
        "bytes": 1124207689,
        "text": "1.05 GiB (docker stats)"
      },
      "disk": {
        "bytes": 220369144,
        "text": "210.16 MiB added by this load (430.66 MiB (whole engine data folder), 220.5 MiB before)"
      },
      "notes": [
        "Started by run-all for this measurement and stopped afterwards.",
        "Load average 5.43 4.69 3.92 (1/5/15 min) when searching began.",
        "Benchmark copy gvbbench_eshoponweb dropped afterwards."
      ]
    },
    {
      "name": "milvus",
      "engine": "Milvus 2.6.25 (standalone, embedded etcd, local storage, REST API v2)",
      "index": "HNSW M=16 efConstruction=128, ef=100, metric COSINE, Strong consistency searches; approximate only (no exact mode)",
      "hosting": "compose",
      "load": {
        "rows": 524,
        "batch": 1000,
        "upsertSeconds": 0.614653,
        "rowsPerSecond": 852.5135320253867,
        "countMatchSeconds": 1.6372212
      },
      "search": {
        "countInTarget": 524,
        "latencySamples": 200,
        "p50Ms": 7.4178999999999995,
        "p95Ms": 8.234865,
        "p99Ms": 9.962523999999934,
        "qps": {
          "1": 150.799611063961,
          "8": 1723.6211225998966
        },
        "recall": 1,
        "ndcg": 0.5181699774768911,
        "errors": 0,
        "exactQueries": 0
      },
      "ram": {
        "bytes": 214748364,
        "text": "204.8 MiB (docker stats)"
      },
      "disk": {
        "bytes": 9208776,
        "text": "8.78 MiB added by this load (5.2 GiB (whole engine data folder), 5.19 GiB before)"
      },
      "notes": [
        "Started by run-all for this measurement and stopped afterwards.",
        "Load average 5.64 4.87 4.03 (1/5/15 min) when searching began.",
        "Benchmark copy gvbbench_eshoponweb dropped afterwards."
      ]
    },
    {
      "name": "weaviate",
      "engine": "Weaviate 1.39.8 (single node, REST \u002B GraphQL)",
      "index": "HNSW maxConnections(M)=16 efConstruction=128, ef=-1 (dynamic: limit x 8 clamped 100..500), cosine, no quantization; approximate only (no exact mode)",
      "hosting": "compose",
      "load": {
        "rows": 524,
        "batch": 1000,
        "upsertSeconds": 0.9120616,
        "rowsPerSecond": 574.522598035045,
        "countMatchSeconds": 0.0068059
      },
      "search": {
        "countInTarget": 524,
        "latencySamples": 200,
        "p50Ms": 15.36065,
        "p95Ms": 23.275494999999996,
        "p99Ms": 26.334228999999997,
        "qps": {
          "1": 63.8373257373481,
          "8": 541.0584958350915
        },
        "recall": 1,
        "ndcg": 0.5181699774768911,
        "errors": 0,
        "exactQueries": 0
      },
      "ram": {
        "bytes": 112617062,
        "text": "107.4 MiB (docker stats)"
      },
      "disk": {
        "bytes": 3019317,
        "text": "2.88 MiB added by this load (3.44 MiB (whole engine data folder), 576.14 KiB before)"
      },
      "notes": [
        "Started by run-all for this measurement and stopped afterwards.",
        "Load average 4.13 4.65 4.02 (1/5/15 min) when searching began.",
        "Benchmark copy gvbbench_eshoponweb dropped afterwards."
      ]
    },
    {
      "name": "chroma",
      "engine": "Chroma 1.4.4 (single node, REST API v2)",
      "index": "HNSW M=16 ef_construction=128, ef_search=100 (Chroma default), cosine; approximate only (no exact mode)",
      "hosting": "compose",
      "load": {
        "rows": 524,
        "batch": 1000,
        "upsertSeconds": 1.2154734,
        "rowsPerSecond": 431.1077478124984,
        "countMatchSeconds": 0.0506557
      },
      "search": {
        "countInTarget": 524,
        "latencySamples": 200,
        "p50Ms": 6.00655,
        "p95Ms": 6.799939999999999,
        "p99Ms": 7.335098999999998,
        "qps": {
          "1": 167.60203146058583,
          "8": 330.89762574959
        },
        "recall": 1,
        "ndcg": 0.5181699774768911,
        "errors": 0,
        "exactQueries": 0
      },
      "ram": {
        "bytes": 54368665,
        "text": "51.85 MiB (docker stats)"
      },
      "disk": {
        "bytes": 424100,
        "text": "414.16 KiB added by this load (543.56 MiB (whole engine data folder), 543.16 MiB before)"
      },
      "notes": [
        "Started by run-all for this measurement and stopped afterwards.",
        "Load average 4.18 4.57 4.03 (1/5/15 min) when searching began.",
        "Benchmark copy gvbbench_eshoponweb dropped afterwards."
      ]
    },
    {
      "name": "elasticsearch",
      "engine": "Elasticsearch 9.5.3 (dense_vector)",
      "index": "HNSW float32, no quantization, m=16, ef_construction=128, cosine; search k=top, num_candidates=100; 1 shard, 0 replicas",
      "hosting": "compose",
      "load": {
        "rows": 524,
        "batch": 1000,
        "upsertSeconds": 1.1050779,
        "rowsPerSecond": 474.1747165516567,
        "countMatchSeconds": 0.1223149
      },
      "search": {
        "countInTarget": 524,
        "latencySamples": 200,
        "p50Ms": 13.19345,
        "p95Ms": 16.793815,
        "p99Ms": 17.76706199999999,
        "qps": {
          "1": 148.1167537134615,
          "8": 2631.8997711610623
        },
        "recall": 1,
        "ndcg": 0.5181699774768911,
        "errors": 0,
        "exactQueries": 20,
        "exactP50Ms": 4.3468,
        "exactP95Ms": 8.213270000000028,
        "exactRecall": 1
      },
      "ram": {
        "bytes": 2789581258,
        "text": "2.6 GiB (docker stats)"
      },
      "disk": {
        "bytes": 9917611,
        "text": "9.46 MiB added by this load (9.58 MiB (whole engine data folder), 128.77 KiB before)"
      },
      "notes": [
        "Started by run-all for this measurement and stopped afterwards.",
        "Load average 3.45 4.21 3.94 (1/5/15 min) when searching began.",
        "Benchmark copy gvbbench_eshoponweb dropped afterwards."
      ]
    },
    {
      "name": "opensearch",
      "engine": "OpenSearch 3.9.0 (k-NN plugin, faiss)",
      "index": "faiss HNSW float32, no compression, m=16, ef_construction=128, cosinesimil; search k=top, ef_search=100; 1 shard, 0 replicas",
      "hosting": "compose",
      "load": {
        "rows": 524,
        "batch": 1000,
        "upsertSeconds": 1.3558839,
        "rowsPerSecond": 386.4637672886299,
        "countMatchSeconds": 0.0937256
      },
      "search": {
        "countInTarget": 524,
        "latencySamples": 200,
        "p50Ms": 12.2851,
        "p95Ms": 15.042259999999999,
        "p99Ms": 16.467273,
        "qps": {
          "1": 129.8405534505337,
          "8": 1874.576035028215
        },
        "recall": 1,
        "ndcg": 0.5181699774768911,
        "errors": 0,
        "exactQueries": 20,
        "exactP50Ms": 5.4994,
        "exactP95Ms": 7.823290000000016,
        "exactRecall": 1
      },
      "ram": {
        "bytes": 2819646029,
        "text": "2.63 GiB (docker stats)"
      },
      "disk": {
        "bytes": 16853913,
        "text": "16.07 MiB added by this load (16.92 MiB (whole engine data folder), 872.09 KiB before)"
      },
      "notes": [
        "Started by run-all for this measurement and stopped afterwards.",
        "Load average 4.51 4.41 4.03 (1/5/15 min) when searching began.",
        "Benchmark copy gvbbench_eshoponweb dropped afterwards."
      ]
    },
    {
      "name": "typesense",
      "engine": "Typesense 30.2 (vector search)",
      "index": "HNSW float32 (hnswlib), m=16, ef_construction=128, cosine; search k=top, ef=100; exact mode = filter ordinal:\u003E=0 with flat_search_cutoff; index held in memory",
      "hosting": "compose",
      "load": {
        "rows": 524,
        "batch": 1000,
        "upsertSeconds": 0.7390956,
        "rowsPerSecond": 708.9745900259724,
        "countMatchSeconds": 0.004714
      },
      "search": {
        "countInTarget": 524,
        "latencySamples": 200,
        "p50Ms": 8.9246,
        "p95Ms": 12.46074,
        "p99Ms": 13.321655999999999,
        "qps": {
          "1": 95.42371267563212,
          "8": 974.3796340110528
        },
        "recall": 1,
        "ndcg": 0.5181699774768911,
        "errors": 0,
        "exactQueries": 20,
        "exactP50Ms": 9.255099999999999,
        "exactP95Ms": 16.727135,
        "exactRecall": 1
      },
      "ram": {
        "bytes": 126248550,
        "text": "120.4 MiB (docker stats)"
      },
      "disk": {
        "bytes": 408003736,
        "text": "389.1 MiB (whole engine data folder)"
      },
      "notes": [
        "Started by run-all for this measurement and stopped afterwards.",
        "Load average 4.55 4.45 4.07 (1/5/15 min) when searching began.",
        "Benchmark copy gvbbench_eshoponweb dropped afterwards."
      ]
    },
    {
      "name": "vespa",
      "engine": "Vespa 8.754.14 (tensor attribute \u002B HNSW)",
      "index": "HNSW float32 tensor, prenormalized-angular (cosine), max-links-per-node=16, neighbors-to-explore-at-insert=128; search targetHits=top, ef=100 via exploreAdditionalHits; exact mode = approximate:false; vectors held in memory",
      "hosting": "compose",
      "load": {
        "rows": 524,
        "batch": 1000,
        "upsertSeconds": 1.0113453,
        "rowsPerSecond": 518.1217532725965,
        "countMatchSeconds": 0.0081434
      },
      "search": {
        "countInTarget": 524,
        "latencySamples": 200,
        "p50Ms": 6.527100000000001,
        "p95Ms": 8.240804999999998,
        "p99Ms": 9.066135000000001,
        "qps": {
          "1": 174.24078004912369,
          "8": 1552.896322118391
        },
        "recall": 1,
        "ndcg": 0.5181699774768911,
        "errors": 0,
        "exactQueries": 20,
        "exactP50Ms": 2.22035,
        "exactP95Ms": 2.910075,
        "exactRecall": 1
      },
      "ram": {
        "bytes": 3102040129,
        "text": "2.89 GiB (docker stats)"
      },
      "disk": {
        "bytes": 435132306,
        "text": "414.97 MiB added by this load (1.24 GiB (whole engine data folder), 853.39 MiB before)"
      },
      "notes": [
        "Started by run-all for this measurement and stopped afterwards.",
        "WARNING: load average 8.07 5.27 4.36 (1/5/15 min) on 8 logical CPUs when searching began; the box was busy, so latency and QPS are inflated by other work.",
        "Benchmark copy gvbbench_eshoponweb dropped afterwards."
      ]
    },
    {
      "name": "duckdb",
      "engine": "DuckDB 1.5.6 \u002B vss b833341 (HNSW, embedded, in process)",
      "index": "HNSW (vss extension) FLOAT[n] metric=cosine m=16 ef_construction=128, ef_search=100 per connection, persistent (hnsw_enable_experimental_persistence=true, checkpoint_threshold=256MB); exact mode = array_cosine_similarity sequential scan; score = 1 - cosine distance",
      "hosting": "embedded",
      "load": {
        "rows": 524,
        "batch": 1000,
        "upsertSeconds": 0.3338842,
        "rowsPerSecond": 1569.4063989850372,
        "countMatchSeconds": 0.0045595
      },
      "search": {
        "countInTarget": 524,
        "latencySamples": 200,
        "p50Ms": 4.0623000000000005,
        "p95Ms": 5.278169999999999,
        "p99Ms": 6.045924999999996,
        "qps": {
          "1": 257.32976230084387,
          "8": 199.52272588526432
        },
        "recall": 1,
        "ndcg": 0.5181699774768911,
        "errors": 0,
        "exactQueries": 20,
        "exactP50Ms": 5.8551,
        "exactP95Ms": 9.412375000000003,
        "exactRecall": 1
      },
      "ram": {
        "text": "in this process, not measured"
      },
      "disk": {
        "bytes": 3040286,
        "text": "2.9 MiB added by this load (2.9 MiB (engine data folder), 0 B before)"
      },
      "notes": [
        "Load average 7.24 5.47 4.48 (1/5/15 min) when searching began.",
        "Benchmark copy gvbbench_eshoponweb dropped afterwards."
      ]
    },
    {
      "name": "sqlitevec",
      "engine": "SQLite 3.53.3 \u002B sqlite-vec 0.1.7-alpha.2.1 (vec0, embedded, in process)",
      "index": "vec0 brute-force scan, no ANN index (exact), float32, cosine distance, default chunk_size=1024; score = 1 - cosine distance",
      "hosting": "embedded",
      "load": {
        "rows": 524,
        "batch": 1000,
        "upsertSeconds": 0.1301274,
        "rowsPerSecond": 4026.8229442838324,
        "countMatchSeconds": 0.0054143
      },
      "search": {
        "countInTarget": 524,
        "latencySamples": 200,
        "p50Ms": 2.1567999999999996,
        "p95Ms": 2.477125,
        "p99Ms": 2.733176,
        "qps": {
          "1": 545.2028781152445,
          "8": 528.0503160755109
        },
        "recall": 1,
        "ndcg": 0.5181699774768911,
        "errors": 0,
        "exactQueries": 20,
        "exactP50Ms": 1.9472,
        "exactP95Ms": 2.0818900000000005,
        "exactRecall": 1
      },
      "ram": {
        "text": "in this process, not measured"
      },
      "disk": {
        "bytes": 10196088,
        "text": "9.72 MiB added by this load (9.72 MiB (engine data folder), 0 B before)"
      },
      "notes": [
        "Load average 4.58 5.01 4.37 (1/5/15 min) when searching began.",
        "Benchmark copy gvbbench_eshoponweb dropped afterwards."
      ]
    }
  ]
}