Skip to content

perf: use 4096 as default SINDI window size - #1855

Merged
sre-ci-robot merged 1 commit into
zilliztech:mainfrom
chasingegg:codex/sindi-default-window
Sep 28, 2026
Merged

sre-ci-robot merged 1 commit into
zilliztech:mainfrom
chasingegg:codex/sindi-default-window

Conversation

@chasingegg

@chasingegg chasingegg commented Sep 28, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

  • change the default SINDI window size from 65535 to 4096
  • preserve the supported 1024-65535 range and explicit overrides

Related to #1730.

Motivation

Local IP benchmarks on NQ, FEVER, HotpotQA, and MS MARCO SPLADE data measured
window sizes 1024, 4096, 16384, and 65535 at topK 10, 100, and 1000. Window
4096 had the highest QPS in every dataset/topK combination for both tested
dim_max_score_ratio values (1.05 and 0.756), with unchanged available recall.

Window 4096 balances cache locality and per-window overhead: its 16 KiB score
buffer fits comfortably in L1 and enables finer-grained pruning and earlier
TopK threshold updates, while avoiding the extra metadata and cursor/loop work
seen with window 1024.

Query-level counters on the same workload confirm the pruning effect (ranges
across the four datasets):

topK Scored postings: 4096 / 65535 Documents scanned: 4096 / 65535
10 51.11-70.49% / 72.08-85.25% 1.94-5.07% / 17.67-29.33%
100 68.21-83.69% / 92.40-97.75% 11.07-22.85% / 63.51-82.10%
1000 89.28-96.52% / 99.92-99.99% 49.48-71.63% / 99.28-99.94%

SPLADE IP performance (dim_max_score_ratio=1.05)

The benchmark used the first 1,000 real queries, no filter, three timed rounds
per point (median reported), and eight search threads on an 8-core Neoverse-V2
machine. Table values are QPS; the best window in each row is bold.

Dataset topK window 1024 window 4096 window 16384 window 65535 4096 vs 65535
NQ SPLADE 10 1532.49 1835.77 1299.12 1142.87 1.606x
NQ SPLADE 100 1195.56 1390.65 966.98 898.52 1.548x
NQ SPLADE 1000 892.42 1031.54 800.34 817.60 1.262x
FEVER SPLADE 10 588.10 648.83 473.66 419.98 1.545x
FEVER SPLADE 100 495.12 538.15 391.07 354.08 1.520x
FEVER SPLADE 1000 397.57 439.65 340.67 330.22 1.331x
HotpotQA SPLADE 10 596.53 662.29 487.48 434.45 1.524x
HotpotQA SPLADE 100 504.97 553.05 407.37 368.87 1.499x
HotpotQA SPLADE 1000 410.59 456.33 358.61 349.60 1.305x
MS MARCO SPLADE 10 707.98 991.16 613.29 530.09 1.870x
MS MARCO SPLADE 100 549.13 736.46 461.38 404.31 1.822x
MS MARCO SPLADE 1000 411.35 533.73 358.53 357.22 1.494x

All tested window sizes produced the same sampled result hash for each
dataset/topK slice, and all available recall values were unchanged.

Test plan

  • built the Release knowhere_tests target from a clean upstream/main worktree
  • knowhere_tests "[config]"

@sre-ci-robot

Copy link
Copy Markdown
Collaborator

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: chasingegg

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@mergify

mergify Bot commented Sep 28, 2026

Copy link
Copy Markdown

@chasingegg 🔍 Important: PR Classification Needed!

For efficient project management and a seamless review process, it's essential to classify your PR correctly. Here's how:

  1. If you're fixing a bug, label it as kind/bug.
  2. For small tweaks (less than 20 lines without altering any functionality), please use kind/improvement.
  3. Significant changes that don't modify existing functionalities should be tagged as kind/enhancement.
  4. Adjusting APIs or changing functionality? Go with kind/feature.

For any PR outside the kind/improvement category, ensure you link to the associated issue using the format: “issue: #”.

Thanks for your efforts and contribution to the community!.

Signed-off-by: chasingegg <gaoc96@qq.com>
@chasingegg

Copy link
Copy Markdown
Collaborator Author

/kind improvement

@alexanderguzhva

Copy link
Copy Markdown
Collaborator

/lgtm

@sre-ci-robot
sre-ci-robot merged commit d0d49bc into zilliztech:main Sep 28, 2026
13 checks passed
@chasingegg
chasingegg deleted the codex/sindi-default-window branch September 28, 2026 13:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants