From 9c94815f0918866fbbce87c151bd074bcab665be Mon Sep 17 00:00:00 2001 From: shuhao Date: Fri, 24 Jul 2026 00:43:49 +0800 Subject: [PATCH 1/2] docs: add complete CANDOR publication record --- README.md | 7 ++++++- README.zh-CN.md | 9 +++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index cab8ee8c..96001324 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,12 @@ Streaming vector index benchmarking framework. This repository accompanies the following paper: -- Mingqi Wang et al. "CANDOR-Bench: Benchmarking In-Memory Continuous ANNS under Dynamic Open-World Streams." SIGMOD 2026. +- Mingqi Wang, Junyao Dong, Zhuoyan Wu, Jun Liu, Ruicheng Zhang, Jianjun + Zhao, Ruipeng Wan, Xinyan Lei, Shuhao Zhang, Bolong Zheng, Haikun Liu, + Xiaofei Liao, and Hai Jin. "CANDOR-Bench: Benchmarking In-Memory Continuous + ANNS under Dynamic Open-World Streams." SIGMOD 2026. + [Paper](https://doi.org/10.1145/3786630) | + [Official program](https://2026.sigmod.org/sigmod_program_detailed.shtml) ## Table of Contents - [Quick Start Guide](#quick-start-guide) diff --git a/README.zh-CN.md b/README.zh-CN.md index 36ff27c4..f2f1cac1 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -4,6 +4,15 @@ 流式向量索引基准测试框架 +## 论文 + +Mingqi Wang、Junyao Dong、Zhuoyan Wu、Jun Liu、Ruicheng Zhang、Jianjun +Zhao、Ruipeng Wan、Xinyan Lei、Shuhao Zhang、Bolong Zheng、Haikun Liu、 +Xiaofei Liao、Hai Jin。CANDOR-Bench: Benchmarking In-Memory Continuous ANNS +under Dynamic Open-World Streams。SIGMOD 2026。 +[论文](https://doi.org/10.1145/3786630) | +[官方议程](https://2026.sigmod.org/sigmod_program_detailed.shtml) + ## 1. 一键部署 ```bash From 8c368b566b671fd7e5f2879583c89d97ab0a3a6c Mon Sep 17 00:00:00 2001 From: shuhao Date: Fri, 24 Jul 2026 09:38:14 +0800 Subject: [PATCH 2/2] ci: skip native build for docs-only pull requests --- .github/workflows/build-test.yml | 36 +++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index b42fcc20..51949aa8 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -16,13 +16,37 @@ jobs: uses: actions/checkout@v4 with: submodules: recursive + fetch-depth: 2 + + - name: Classify pull request changes + id: changes + shell: bash + run: | + if [[ "${{ github.event_name }}" != "pull_request" ]]; then + echo "run_build=true" >> "$GITHUB_OUTPUT" + exit 0 + fi + + if git diff --quiet HEAD^1 HEAD -- \ + . \ + ':(exclude)*.md' \ + ':(exclude)**/*.md' \ + ':(exclude).github/workflows/*.yml' \ + ':(exclude).github/workflows/*.yaml'; then + echo "run_build=false" >> "$GITHUB_OUTPUT" + echo "Documentation/CI-only pull request: full native build is not required." + else + echo "run_build=true" >> "$GITHUB_OUTPUT" + fi - name: Set up Python 3.10 + if: steps.changes.outputs.run_build == 'true' uses: actions/setup-python@v5 with: python-version: '3.10' - name: Cache pip packages + if: steps.changes.outputs.run_build == 'true' uses: actions/cache@v4 with: path: ~/.cache/pip @@ -31,6 +55,7 @@ jobs: ${{ runner.os }}-pip- - name: Cache CMake build + if: steps.changes.outputs.run_build == 'true' uses: actions/cache@v4 with: path: | @@ -44,6 +69,7 @@ jobs: ${{ runner.os }}-cmake-all- - name: Install system dependencies + if: steps.changes.outputs.run_build == 'true' run: | sudo apt-get update sudo apt-get install -y \ @@ -63,6 +89,7 @@ jobs: libspdlog-dev - name: Install Intel MKL + if: steps.changes.outputs.run_build == 'true' run: | wget -qO - https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | sudo apt-key add - echo "deb https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list @@ -70,48 +97,55 @@ jobs: sudo apt-get install -y intel-oneapi-mkl-devel || echo "MKL installation warning (non-fatal)" - name: Run deployment script + if: steps.changes.outputs.run_build == 'true' run: | chmod +x deploy.sh ./deploy.sh --skip-system-deps timeout-minutes: 60 - name: Verify PyCANDYAlgo import + if: steps.changes.outputs.run_build == 'true' run: | source sage-db-bench/bin/activate echo "=== Test PyCANDYAlgo Import ===" python3 -c "import PyCANDYAlgo; print('PyCANDYAlgo:', PyCANDYAlgo.__version__)" - name: Verify VSAG (pyvsag) import + if: steps.changes.outputs.run_build == 'true' run: | source sage-db-bench/bin/activate echo "=== Test pyvsag Import ===" python3 -c "import pyvsag; print('pyvsag:', pyvsag.__version__)" || echo "pyvsag: SKIPPED (optional)" - name: Verify GTI (gti_wrapper) import + if: steps.changes.outputs.run_build == 'true' run: | source sage-db-bench/bin/activate echo "=== Test gti_wrapper Import ===" python3 -c "import gti_wrapper; print('gti_wrapper: OK')" || echo "gti_wrapper: SKIPPED (optional)" - name: Verify IP-DiskANN (ipdiskann) import + if: steps.changes.outputs.run_build == 'true' run: | source sage-db-bench/bin/activate echo "=== Test ipdiskann Import ===" python3 -c "import ipdiskann; print('ipdiskann: OK')" || echo "ipdiskann: SKIPPED (optional)" - name: Verify PLSH (plsh_python) import + if: steps.changes.outputs.run_build == 'true' run: | source sage-db-bench/bin/activate echo "=== Test plsh_python Import ===" python3 -c "import plsh_python; print('plsh_python: OK')" || echo "plsh_python: SKIPPED (optional)" - name: Test core dependencies + if: steps.changes.outputs.run_build == 'true' run: | source sage-db-bench/bin/activate python3 -c "import numpy; import torch; print('numpy:', numpy.__version__); print('torch:', torch.__version__)" - name: Upload build logs on failure - if: failure() + if: failure() && steps.changes.outputs.run_build == 'true' uses: actions/upload-artifact@v4 with: name: build-logs