Skip to content

feat(config): expose deleted_threshold and vacuum_min_vector_number - #163

Merged
tellet-q merged 2 commits into
devfrom
feat/vacuum-optimizer-config
Aug 10, 2026
Merged

feat(config): expose deleted_threshold and vacuum_min_vector_number#163
tellet-q merged 2 commits into
devfrom
feat/vacuum-optimizer-config

Conversation

@tellet-q

@tellet-q tellet-q commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Adds two optional fields to collection.optimizers in the upload config, passed through to Qdrant's OptimizersConfigDiff:

Field Type Qdrant default Meaning
deleted_threshold f64 0.2 Fraction of a segment that must be deleted before the vacuum optimizer rebuilds it
vacuum_min_vector_number u64 1000 Smallest segment, in vectors, the vacuum optimizer will consider

All Submissions:

  • Contributions should target the dev branch. Did you create your branch from dev?
  • Have you followed the guidelines in our Contributing document?
  • Have you checked to ensure there aren't other open Pull Requests for the same update/change?

The upload config could set every optimizer knob except the two that control
the vacuum optimizer, so a collection built by `bfb upload` could not be made
to heal deletions promptly: Qdrant's defaults (deleted_threshold 0.2,
vacuum_min_vector_number 1000) let a fifth of a segment rot before a rebuild.

Any benchmark that deletes points needs both -- the healing experiment in
BENCHMARK_ROADMAP.md L3, and the deferred-points search case.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@tellet-q
tellet-q requested review from generall and a lite review from Copilot August 10, 2026 08:45

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds support for two additional Qdrant optimizer tuning parameters in the upload YAML config so collection creation can pass them through to OptimizersConfigDiff.

Changes:

  • Extend OptimizersConfig with optional deleted_threshold and vacuum_min_vector_number.
  • Pass the new optimizer fields through when building OptimizersConfigDiffBuilder from config.
  • Update the hand-written schema reference and the “reference covers every field” test fixture to include the new keys.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

File Description
src/config/schema.rs Documents the new optimizer fields in the schema reference and includes them in the reference-example test fixture.
src/config/collection.rs Adds the two new optional optimizer fields to the config struct.
src/collection/from_config.rs Wires the new config fields through to Qdrant’s OptimizersConfigDiffBuilder.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread src/config/schema.rs Outdated
@tellet-q
tellet-q merged commit 4f49946 into dev Aug 10, 2026
5 checks passed
@tellet-q
tellet-q deleted the feat/vacuum-optimizer-config branch August 10, 2026 08:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants