Setup
- Collection
- 100,000 unchanged documents + 200 initial mutation targets
- Measured phase
- 30 seconds · 10 changes/s · 10 background queries/s
- Database
- Version 1.40.3 · 2 CPUs · 3 GiB memory
Validity checks
- Changes were submitted on schedulePassed
- Observation reads started on schedulePassed
- Background queries started on schedulePassed
- Search recall met the 95% targetPassed
- Every mutation had a valid starting statePassed
- The client dropped no mutationsPassed
- Quality queries stayed in the intended corpusPassed
- The configured search index was verifiedPassed
Measurements
| Change | First visible p95 | Confirmed p95 | Confirmed changes |
|---|---|---|---|
| insert | 34.56 ms | 106.85 ms | 100/100 |
| Replace | 33.66 ms | 106.19 ms | 100/100 |
| delete | 20.21 ms | 87.69 ms | 100/100 |
Background queries: 300/300 succeeded · recall 99.1% · p95 time 16.25 ms.
Client scheduling and request times
Arrival lag p95: 0.61 ms. Probe dispatch lag p95: 2.25 ms. Probe request p95: 12.18 ms. Write request p95: 14.94 ms.
Inspect the raw evidence
These compressed files are the inputs to the evidence audit.
Effective database configuration
{
"version": "1.40.3",
"schema": {
"class": "Ffb2429e9a002",
"invertedIndexConfig": {
"bm25": {
"b": 0.75,
"k1": 1.2
},
"cleanupIntervalSeconds": 60,
"stopwords": {
"additions": null,
"preset": "en",
"removals": null
},
"usingBlockMaxWAND": true
},
"multiTenancyConfig": {
"autoTenantActivation": false,
"autoTenantCreation": false,
"enabled": false
},
"properties": [
{
"dataType": [
"text"
],
"indexFilterable": true,
"indexRangeFilters": false,
"indexSearchable": true,
"name": "doc_id",
"tokenization": "field"
},
{
"dataType": [
"int"
],
"indexFilterable": true,
"indexRangeFilters": false,
"indexSearchable": false,
"name": "version"
},
{
"dataType": [
"text"
],
"indexFilterable": true,
"indexRangeFilters": false,
"indexSearchable": true,
"name": "cohort",
"tokenization": "field"
},
{
"dataType": [
"text"
],
"indexFilterable": false,
"indexRangeFilters": false,
"indexSearchable": false,
"name": "text",
"tokenization": "word"
}
],
"shardingConfig": {
"actualCount": 1,
"actualVirtualCount": 128,
"desiredCount": 1,
"desiredVirtualCount": 128,
"function": "murmur3",
"key": "_id",
"strategy": "hash",
"virtualPerPhysical": 128
},
"vectorIndexConfig": {
"bq": {
"enabled": false
},
"cleanupIntervalSeconds": 300,
"distance": "cosine",
"dynamicEfFactor": 8,
"dynamicEfMax": 500,
"dynamicEfMin": 100,
"ef": 128,
"efConstruction": 128,
"filterStrategy": "acorn",
"flatSearchCutoff": 0,
"maxConnections": 16,
"multivector": {
"aggregation": "maxSim",
"enabled": false,
"muvera": {
"dprojections": 16,
"enabled": false,
"ksim": 4,
"repetitions": 10
}
},
"pq": {
"bitCompression": false,
"centroids": 256,
"enabled": false,
"encoder": {
"distribution": "log-normal",
"type": "kmeans"
},
"segments": 0,
"trainingLimit": 100000
},
"rq": {
"bits": 8,
"centering": false,
"enabled": false,
"rescoreLimit": 20,
"trainingLimit": 10000
},
"skip": false,
"skipDefaultQuantization": false,
"sq": {
"enabled": false,
"rescoreLimit": 20,
"trainingLimit": 100000
},
"trackDefaultQuantization": false,
"vectorCacheMaxObjects": 1000000000000
},
"vectorIndexType": "hnsw",
"vectorizer": "none",
"replicationConfig": {
"deletionStrategy": "TimeBasedResolution",
"factor": 1,
"asyncEnabled": false
}
},
"shards": [
{
"name": "jktJ2NmXUKJj",
"per_node_status": {
"node1": "READY"
},
"status": "READY",
"vectorQueueSize": 0
}
],
"ack": "synchronous indexing, object PUT/POST/DELETE",
"transport": "HTTP REST writes + GraphQL search, pooled httpx"
}