← all runs
Cohere-50M — 2026-06-23
r8i.16xlarge · peak recall 0.9813 @ 73 QPS
QPS at recall
| Recall | Meerkat | pgvector HNSW | pgvector HNSW (halfvec) | Δ vs best competitor |
|---|
| 0.90 | — (min r=0.901) | 321 | 295 | — |
| 0.95 | 193 | 161 | 148 | +20% |
Latency at recall
| Meerkat | pgvector HNSW | pgvector HNSW (halfvec) | Δ vs best competitor |
|---|
| @ recall 0.90 | | | | |
| p50 | — | 3.14 ms | 3.44 ms | — |
| p95 | — | 4.23 ms | 4.54 ms | — |
| p99 | — | 4.94 ms | 5.61 ms | — |
| @ recall 0.95 | | | | |
| p50 | 5.18 ms | 6.40 ms | 6.98 ms | -19% |
| p95 | 6.20 ms | 7.99 ms | 8.60 ms | -22% |
| p99 | 6.68 ms | 8.70 ms | 9.36 ms | -23% |
All values are taken at exactly the stated recall: each configuration's own sweep is log-interpolated between its two surrounding measured points (measured values are used verbatim on an exact hit) and the best configuration at that recall is shown — values are never interpolated across different configurations. “—” means no single sweep spans that recall; nothing is extrapolated. Recall is distance-based (ann-benchmarks, tie-aware). Insert/update/delete workloads are not measured.
Interpolated on config — pgvector HNSW @0.90: hnsw-m24 · pgvector HNSW (halfvec) @0.90: hnsw-m24-halfvec · Meerkat @0.95: mkt-n480000-cctrue-fs16-soar-cfs · pgvector HNSW @0.95: hnsw-m24 · pgvector HNSW (halfvec) @0.95: hnsw-m24-halfvec
Build comparison
| Meerkat | pgvector HNSW | pgvector HNSW (halfvec) | Δ vs best competitor |
|---|
| Build time | — | 20050 s | 10958 s | — |
| Index size | — | 190.7 GB | 95.3 GB | — |
Build stats are for the configuration backing each column's best operating point: pgvector HNSW = hnsw-m24 · pgvector HNSW (halfvec) = hnsw-m24-halfvec.
Plots
Pareto svg ·
Distance-recall svg ·
Per-config svg ·
Build times svg ·
Index sizes svgHost
| Instance type | r8i.16xlarge |
| Hostname | ip-172-31-79-47 |
| CPU | Intel(R) Xeon(R) 6975P-C (64 vCPU) |
| Memory | 496 GB |
| OS | Ubuntu 26.04 LTS |
| Kernel | 7.0.0-1006-aws |
Versions
| rekall | 0.1.0 (44cdebe / main) |
| PostgreSQL | PostgreSQL 18.4 (Ubuntu 18.4-1.pgdg26.04+1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 15.2.0-16ubuntu1) 15.2.0, 64-bit |
| meerkat | 0.1.0 (8695684) |
| pg_prewarm | 1.2 |
| vector | 0.8.2 |
Search
Index builds
| Index | Type | Build time | Size | Workers |
|---|
| hnsw-m24 | pgvector-hnsw | 20050.0s | 190.7 GB | 32 |
| hnsw-m24-bq | pgvector-hnsw | 4869.0s | 23.2 GB | 32 |
| hnsw-m24-halfvec | pgvector-hnsw | 10957.7s | 95.3 GB | 32 |
| mkt-n80000-cctrue-fs16-soar-cfs | meerkat | 3540.0s | 11.9 GB | 32 |
Index parameters
hnsw-m24: {"ef_construction":200,"m":24}
hnsw-m24-bq: {"ef_construction":200,"encoding":"bit","m":24}
hnsw-m24-halfvec: {"ef_construction":200,"encoding":"halfvec","m":24}
mkt-n80000-cctrue-fs16-soar-cfs: {"nlist":80000}
PostgreSQL settings
effective_cache_size = 384 GB
effective_io_concurrency = 256
huge_pages = try
maintenance_work_mem = 204 GB
max_connections = 100
max_parallel_maintenance_workers = 32
max_parallel_workers = 64
random_page_cost = 1.1
shared_buffers = 128 GB
wal_level = replica
work_mem = 1 GB