slow-J opened a new pull request, #16868: URL: https://github.com/apache/lucene/pull/16868
If DocValues.unwrapSingleton returns a segment's values, use the single-valued leaf cutter (instead of current multi-valued) whether or not the field has a skip index. Follow-up to #16268. It was originally part of that, but was spun off as a follow-up. ### Benchmarked via luceneutil Same setup as #16268, on my luceneutil branch https://github.com/slow-J/luceneutil/tree/github-16249-range-facet-bench: `wikimediumall` (33.3M docs), index sorted by `lastMod_skipper`, `addDVSkippers=true`, both tests have `DURING_COLLECTION`. `id` is the only faceted field without a skip index, so I ran its tasks on their own, and the `lastMod_skipper` tasks as a control: ``` cp tasks/wikimedium.10M.rangefacets.tasks /tmp/rf.tasks grep -E '^(Browse|MedTerm)ID' /tmp/rf.tasks > tasks/wikimedium.10M.rangefacets.tasks python3 src/python/localrun.py -s rangeFacetsWikimediumAll -b lucene_baseline -c lucene_candidate -searchConcurrency 0 -iterations 30 -warmups 20 cp /tmp/rf.tasks tasks/wikimedium.10M.rangefacets.tasks ``` Hardware: - EC2 Host: m6g.16xlarge - AWS Graviton2 (Neoverse N1), aarch64, JDK 25.0.2 `id` (no skip index), main vs this PR | Task | QPS main | StdDev | QPS this PR | StdDev | Pct diff | p-value | |---|---:|---:|---:|---:|---:|---:| | BrowseIDRangeFacets | 0.67 | 1.3% | 1.28 | 8.7% | +92.2% (81% - 103%) | 0.000 | | MedTermIDRangeFacets | 5.64 | 8.1% | 8.16 | 4.1% | +44.8% (30% - 62%) | 0.000 | | BrowseIDOvlpRangeFacets | 0.30 | 1.5% | 0.41 | 2.9% | +38.7% (33% - 43%) | 0.000 | | MedTermIDOvlpRangeFacets | 2.51 | 3.3% | 3.18 | 2.6% | +26.6% (20% - 33%) | 0.000 | Latency (ms), aggregated across all iterations | Task | P50 main | P50 this PR | P50 diff | P90 diff | P99 diff | |---|---:|---:|---:|---:|---:| | BrowseIDRangeFacets | 1510.3 | 810.4 | -46.3% | -39.3% | -38.1% | | MedTermIDRangeFacets | 178.5 | 123.8 | -30.6% | -12.8% | -10.9% | | BrowseIDOvlpRangeFacets | 3396.6 | 2448.1 | -27.9% | -25.8% | -0.5% | | MedTermIDOvlpRangeFacets | 398.8 | 317.1 | -20.5% | -13.9% | -8.2% | Control, `lastMod_skipper` (skip index, same path before and after) | Task | QPS main | StdDev | QPS this PR | StdDev | Pct diff | p-value | |---|---:|---:|---:|---:|---:|---:| | BrowseLastModRangeFacets | 1.06 | 3.6% | 1.06 | 4.4% | +0.0% (-7% - 8%) | 0.980 | | BrowseLastModOvlpRangeFacets | 0.80 | 3.0% | 0.80 | 3.7% | +0.2% (-6% - 7%) | 0.836 | | MedTermLastModRangeFacets | 6.16 | 10.8% | 6.30 | 11.1% | +2.3% (-17% - 27%) | 0.415 | | MedTermLastModOvlpRangeFacets | 4.94 | 11.7% | 5.06 | 12.1% | +2.5% (-19% - 29%) | 0.411 | -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
