Skip to content

fix: update SVS SQ8 storage enum after Faiss 1.15.0+ upgrade - #1784

Merged
sre-ci-robot merged 1 commit into
mainfrom
codex/fix-svs-sq8
Aug 20, 2026
Merged

fix: update SVS SQ8 storage enum after Faiss 1.15.0+ upgrade#1784
sre-ci-robot merged 1 commit into
mainfrom
codex/fix-svs-sq8

Conversation

@jamesgao-jpg

@jamesgao-jpg jamesgao-jpg commented Aug 20, 2026

Copy link
Copy Markdown
Collaborator

Fixes #1785

What changed

  • Update the Knowhere SVS storage-kind helper to use faiss::SVS_SQ8.
  • Preserve the existing sqi8 Knowhere configuration value and SQI8 runtime behavior.

Root cause

Knowhere vendors the Faiss source, including Faiss's SVS integration layer, under thirdparty/faiss. The Intel SVS runtime itself remains a separate dependency fetched and linked by the SVS-enabled CMake build.

The relevant dependency boundary is:

Knowhere svs_utils.h
  -> vendored Faiss SVS API
       -> external Intel SVS runtime

The Faiss 1.15.0+ upgrade renamed its public storage enum from SVS_SQI8 to SVS_SQ8. Faiss also updated its internal translation so that SVS_SQ8 continues to map to svs_runtime::StorageKind::SQI8. However, Knowhere's own src/index/svs/svs_utils.h, which is outside the vendored Faiss tree, retained the old faiss::SVS_SQI8 reference.

Consequently, the incompatibility is between the stale Knowhere call site and the updated Faiss API; it is not an incompatibility between Faiss and the Intel SVS runtime. Builds with WITH_SVS=ON fail because the old Faiss enum no longer exists.

The external configuration remains unchanged:

Knowhere config "sqi8"
  -> faiss::SVS_SQ8
       -> svs_runtime::StorageKind::SQI8

Verification

  • git diff --check
  • Compiled a C++20 syntax probe for str_to_svs_storage_kind("sqi8") against the vendored Faiss headers and SVS runtime 0.4.0 headers with KNOWHERE_WITH_SVS enabled.

Signed-off-by: jamesgao-jpg <james.gao@zilliz.com>
@mergify

mergify Bot commented Aug 20, 2026

Copy link
Copy Markdown

@jamesgao-jpg 🔍 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!.

@jamesgao-jpg jamesgao-jpg changed the title fix: update SVS SQ8 storage enum after Faiss upgrade fix: update SVS SQ8 storage enum after Faiss 1.15.0+ upgrade Aug 20, 2026
@jamesgao-jpg jamesgao-jpg added bug Something isn't working and removed do-not-merge/missing-related-issue labels Aug 20, 2026
@alexanderguzhva

Copy link
Copy Markdown
Collaborator

/lgtm
/approve

@sre-ci-robot

Copy link
Copy Markdown
Collaborator

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: alexanderguzhva, jamesgao-jpg

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 added the ci-passed label Aug 20, 2026
@sre-ci-robot
sre-ci-robot merged commit 8c864b5 into main Aug 20, 2026
13 checks passed
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.

SVS-enabled build fails after Faiss 1.15.0+ upgrade

3 participants