Repository navigation
msmarco-disk: add rare-terms-or-wide, OR of 40 terms over the whole rare band (v7) - #403
Conversation
…are band (v7) rare-terms-or draws its terms from the df 11-100 band, which holds only 156,060 eligible terms on the 10M corpus: an epoch is 3,901 lines, so the same terms, postings and passages come back every few thousand queries. In a 10-minute run both Redis Flex and OpenSearch ended up serving it entirely from RAM / page cache, so it does not test the disk. rare-terms-or-wide has the same shape (OR of RARE_OR_N = 40 segment terms, top 100, HIGH_PRESSURE_FETCH, exact totals only, epoch batches keyed "rare-terms-or-wide/epoch-<e>", exact count = distinct passages holding any term) but draws from the rare-term pool: df RARE_OR_WIDE_DF = RARE_DF (1-100) with the same eligibility code (zero ambiguous passages, no over-long run, no Redis escape). On the 10M corpus that is 3,179,660 terms (mean df ~3.0): an epoch of ~79K lines (~20x longer), ~120 matches per query spread over the whole corpus. Lines with fewer than 100 matches are expected and recorded (batch.lines_below_top, expected_count stats). Postings for the ~3.2M-term pool are kept in one flat CSR array sized from the pass-1 df (~40 MB at 10M) instead of a Vec per term. GENERATOR is now vdb-msmarco-disk/v7; KEY_DOMAIN is unchanged. All twelve v6 family files are byte-identical (pinned by the v5/v6 hash tests); v6 manifests are refused, since they lack the new file. The duration-mode single-pass identity pin moves with the generator name, as it did for v6. Tests: pool size equals the brute-force df 1-100 eligible set (fails with 151 vs 3151 if the family used RARE_OR_DF), exact union counts against the classifier and the RediSearch tokenizer, own epoch partitions, Redis / OpenSearch rendering, param checks, the new file pinned, and the integration disk run gains a rare-terms-or-wide point. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
🤖 Automated first-pass review — a human maintainer's review is still required before merge. What I checked: the CSR posting build in pass 2, its checks against pass-1 df, the epoch/batch wiring, the Things that already hold up:
Optional / follow-up (not blockers):
Net: careful, well-pinned addition that follows the v6 precedent closely, and the pass-1/pass-2 df check is the right guard on a 3.2M-term CSR build. The live disk-pressure check above would confirm the family does what it was added to do. |
Docker Build ValidationPlatforms tested:
Tests performed:
|
…indow The result file records the window under compound.window; the configured compound.offset is not echoed back, so the lower-bound fetch check panicked on unwrap in the Redis and OpenSearch disk-suite integration tests. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Docker Build ValidationPlatforms tested:
Tests performed:
|
Why
rare-terms-ordraws from the df 11–100 band: only 156,060 eligible terms on the 10M corpus, so an epoch is 3,901 lines and the same terms/postings/passages repeat every few thousand queries. In a 10-minute run both Redis Flex and OpenSearch served it entirely from RAM / page cache — not a disk test.What
rare-terms-or-wide: same shape asrare-terms-or(OR of 40segmentterms,top: 100, fetchtitle, segment, url, exact totals only, epoch batches underrare-terms-or-wide/epoch-<e>, exact count = distinct passages holding any term), drawn from therare-termpool:RARE_OR_WIDE_DF = RARE_DF(1–100), same eligibility code (zero ambiguity, no long run, no Redis escape).batch.lines_below_topand theexpected_countstats.GENERATOR→vdb-msmarco-disk/v7;KEY_DOMAINunchanged. All twelve v6 family files are byte-identical (hash-pinned tests); v6 manifests are refused (they lack the new file) — regenerate with--add-disk-queriesand replace the directory.--queries≤ 150,000 for 10-minute duration points (the default 1M timed lines hold six such windows).Tests
RARE_OR_DFfails it: 151 vs 3151), exact union counts vs the classifier and the RediSearch tokenizer, own epoch partitions, Redis/OpenSearch rendering, param/fetch checks, new file pinned, v5/v6 files unchanged.rare-terms-or-widepoint — exercised in CI.cargo fmt --check,cargo clippy --all-targets -D warnings, andcargo test(lib/bins/harness/cli) pass locally, except the macOS-flakyopensearch_maintenancemock-server tests, which fail on master too.🤖 Generated with Claude Code