miroir/tests/benches/score-comparability/results/experiment.json
jedarden b23e70656e P2.2: Implement write path with primary key validation, shard injection, and two-rule quorum
Implements POST/PUT /indexes/{uid}/documents and DELETE /indexes/{uid}/documents:

- Primary key extraction on hot path with 400 miroir_primary_key_required if missing
- _miroir_shard injection into every document before forwarding to nodes
- Rejection of _miroir_shard in client-submitted docs (400 miroir_reserved_field)
- Two-rule quorum: per-group floor(RF/2)+1 ACKs, success if ≥1 group meets quorum
- X-Miroir-Degraded header when any group misses quorum
- 503 miroir_no_quorum only when NO group meets quorum
- Per-batch grouping by target shard for efficient HTTP fan-out
- DELETE by IDs routes each ID independently to its shard
- DELETE by filter broadcasts to all nodes

Acceptance tests pass:
- Primary key validation before any writes
- Reserved field rejection
- Shard distribution uniformity (17-26 shards/node with 64 shards/3 nodes)
- Quorum calculation: floor(RF/2)+1
- Meilisearch-compatible error shape

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-19 06:48:30 -04:00

59 lines
No EOL
955 B
JSON

{
"corpus_dir": "corpus",
"query_file": "queries/queries.jsonl",
"shard_count": 10,
"limit": 100,
"total_queries": 10000,
"merge_strategies": [
"score",
"rrf",
"dfs"
],
"rrf_k": 60,
"global_stats": {
"N": 100000,
"avgdl": 53.56222
},
"shard_stats": {
"0": {
"N": 930,
"avgdl": 53.40752688172043
},
"1": {
"N": 93015,
"avgdl": 53.55875933989142
},
"2": {
"N": 930,
"avgdl": 53.48924731182796
},
"3": {
"N": 930,
"avgdl": 53.5505376344086
},
"4": {
"N": 930,
"avgdl": 53.73010752688172
},
"5": {
"N": 930,
"avgdl": 53.075268817204304
},
"6": {
"N": 930,
"avgdl": 53.89247311827957
},
"7": {
"N": 930,
"avgdl": 53.85376344086021
},
"8": {
"N": 465,
"avgdl": 54.05806451612903
},
"9": {
"N": 10,
"avgdl": 56.8
}
}
}