← all runs
Cohere-1M — 2026-08-26
m8g.large · peak recall 0.9972 @ 39 QPS
“cohere-1m ladder: m8g.large 8 GiB”
QPS at recall
| Recall | Meerkat | pgvector HNSW (halfvec) | Δ vs best competitor |
|---|
| 0.90 | 2,141 | 970 | +121% |
| 0.95 | 1,184 | 778 | +52% |
| 0.99 | 362 | 299 | +21% |
Latency at recall
| Meerkat | pgvector HNSW (halfvec) | Δ vs best competitor |
|---|
| @ recall 0.90 | | | |
| p50 | 0.46 ms | 0.92 ms | -50% |
| p95 | 0.57 ms | 1.79 ms | -68% |
| p99 | 0.71 ms | 2.31 ms | -69% |
| @ recall 0.95 | | | |
| p50 | 0.85 ms | 1.26 ms | -33% |
| p95 | 0.95 ms | 1.87 ms | -49% |
| p99 | 0.98 ms | 2.21 ms | -56% |
| @ recall 0.99 | | | |
| p50 | 2.77 ms | 3.36 ms | -18% |
| p95 | 3.06 ms | 4.53 ms | -33% |
| p99 | 3.18 ms | 4.79 ms | -34% |
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 — Meerkat @0.90: mkt-defaults-rerank-sweep · pgvector HNSW (halfvec) @0.90: hnsw-m24-halfvec · Meerkat @0.95: mkt-defaults-rerank-sweep · pgvector HNSW (halfvec) @0.95: hnsw-m24-halfvec · Meerkat @0.99: mkt-defaults-rerank-sweep · pgvector HNSW (halfvec) @0.99: hnsw-m24-halfvec
Build comparison
| Meerkat | pgvector HNSW (halfvec) | Δ vs best competitor |
|---|
| Build time | 236 s | 1270 s | -81% |
| Index size | 266.7 MB | 1.9 GB | -86% |
Build stats are for the configuration backing each column's best operating point: Meerkat = mkt-defaults-rerank-sweep, prewarmed · pgvector HNSW (halfvec) = hnsw-m24-halfvec, prewarmed.
Plots
Pareto svg ·
Distance-recall svg ·
Per-config svg ·
Build times svg ·
Index sizes svgHost
| Instance type | m8g.large |
| Hostname | ip-172-31-11-119 |
| CPU | unknown (2 vCPU) |
| Memory | 8 GB |
| OS | Ubuntu 26.04 LTS |
| Kernel | 7.0.0-1011-aws |
Versions
| rekall | 0.1.0 (1834b41 / main) |
| PostgreSQL | PostgreSQL 18.6 (Ubuntu 18.6-1.pgdg26.04+2) on aarch64-unknown-linux-gnu, compiled by gcc (Ubuntu 15.2.0-16ubuntu1) 15.2.0, 64-bit |
| meerkat | 0.1.0 (12d8109) |
| pg_prewarm | 1.2 |
| vector | 0.8.6 |
Search
Index builds
| Index | Type | Build time | Size | Workers |
|---|
| hnsw-halfvec | pgvector-hnsw | 916.6s | 1.9 GB | 1 |
| hnsw-m24-halfvec | pgvector-hnsw | 1270.2s | 1.9 GB | 1 |
| mkt-defaults-rerank-sweep | meerkat | 236.0s | 266.7 MB | 1 |
Index parameters
hnsw-halfvec: {"ef_construction":200,"encoding":"halfvec","m":16}
hnsw-m24-halfvec: {"ef_construction":200,"encoding":"halfvec","m":24}
mkt-defaults-rerank-sweep: {"boundary_epsilon":null,"centroid_compression":null,"centroid_fastscan":null,"fan_out":null,"fastscan":null,"fastscan_bits":null,"nlist":null,"rerank_vectors":null,"soar_lambda":null}
Instance settings (observed)
instance type m8g.large
vCPU (observed) 2
memory (observed) 7.6 GiB
cpu model unknown
kernel 7.0.0-1011-aws
data directory /var/lib/postgresql/18/main
mount point /
filesystem ext4
media unknown
device root
provisioned IOPS — not an EBS volume
PostgreSQL settings
checkpoint_completion_target = 0.9
cluster_name = 18/main
data_directory = /var/lib/postgresql/18/main
effective_cache_size = 6 GB
effective_io_concurrency = 200
huge_pages = try
jit = off
maintenance_io_concurrency = 200
maintenance_work_mem = 3 GB
max_connections = 100
max_parallel_maintenance_workers = 1
max_parallel_workers = 2
max_wal_size = 16 GB
random_page_cost = 1.1
server_version = 18.6 (Ubuntu 18.6-1.pgdg26.04+2)
shared_buffers = 2 GB
wal_level = replica
work_mem = 64 MB