Skip to content

[Enhance]: Follow up on DiskANN integration and validation #604

Description

@zhourrr

Affected Component

DiskANN

Current Behavior

Background

PR #602 packages the DiskANN implementation into zvec_core. This allows downstream consumers to use DiskANN without linking core_knn_diskann separately.

The change was merged promptly to unblock the upcoming Node.js SDK release. It has been validated downstream on Linux x86_64.

The following review comments should be addressed in a follow-up change.

Follow-up tasks

  • Decide whether interface/indexes/diskann_index.cc should remain in zvec_core when DISKANN_SUPPORTED=OFF.

    • Consider aligning its behavior with HNSW RaBitQ.
    • If the interface can compile without the DiskANN implementation, keep the interface layer available and guard only implementation-specific code.
    • Verify behavior on supported and unsupported platforms.
    • Review context: discussion
  • Simplify the CMake comments introduced by fix(diskann): add diskann into zvec core lib #602.

    • Keep a concise explanation of why DiskANN implementation sources are conditionally included.
    • Avoid documenting excessive linker implementation details in the build file.
    • Review context: discussion
  • Add a core-level DiskANN example or integration test.

    • Link only against zvec_core.
    • Do not explicitly link core_knn_diskann.
    • Create a DiskANN index.
    • Insert documents.
    • Build or optimize the index.
    • Execute a vector query and validate its results.
    • Run the example or test on Linux x86_64 with DISKANN_SUPPORTED=ON.
    • Review context: discussion
  • Confirm that Python binding linkage remains free of duplicate symbols.

    • The Python binding still whole-archives core_knn_diskann_static while also linking zvec_core.
    • Verify that supported Python wheel builds and imports continue to work correctly.

Desired Improvement

See above

Impact

See above

Metadata

Metadata

Assignees

Labels

enhancementImprove an existing feature or component

Type

No type

Projects

Status
Backlog

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions