Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

兼容性检查工具(check_compatibility

check_compatibility 用于验证当前 VSAG 构建是否能够加载并搜索旧版本 VSAG 生成的索引文件。 它主要用于 CI,帮助发现序列化格式和向后兼容性回归。

构建

使用项目 Makefile 时,通过 VSAG_ENABLE_TOOLS=ON 开启工具构建;底层对应的 CMake 选项是 ENABLE_TOOLS=ONENABLE_CXX11_ABI=ON

VSAG_ENABLE_TOOLS=ON make release
# 产物:./build-release/tools/check_compatibility/check_compatibility

如果直接调用 CMake,需要显式传入两个选项:

cmake -S . -B build-release -DCMAKE_BUILD_TYPE=Release \
  -DENABLE_TOOLS=ON -DENABLE_CXX11_ABI=ON
cmake --build build-release -j

输入

命令接收一个形如 <tag>_<algo_name> 的位置参数,例如 v1.0.0_hnsw。对于该标识,工具会在 /tmp/ 下查找以下文件:

文件用途
/tmp/<tag>_<algo_name>.index旧版本 VSAG 生成的序列化索引
/tmp/<tag>_<algo_name>_build.json构建该索引时使用的参数
/tmp/<tag>_<algo_name>_search.json搜索校验使用的参数
/tmp/random_512d_10K.bin搜索校验使用的测试向量

这些文件通常由旧版本兼容性 fixture 生成。

使用

./build-release/tools/check_compatibility/check_compatibility v1.0.0_hnsw

工具会创建当前版本的索引实例,反序列化旧索引文件,然后执行一次小规模 KNN 搜索。加载和搜索都成功 时输出 <identifier> success;否则输出 <identifier> failed 并以非零状态退出。

本地入口

tools/check_compatibility/README_zh.md 保留为浏览工具目录时的简短入口。