Skip to content

Releases: tensorchord/VectorChord

1.0.0

12 Nov 04:19

Choose a tag to compare

VectorChord 1.0 Release Notes

VectorChord 1.0 is here. This release delivers much faster PostgreSQL index builds with IVF + RaBitQ, quicker updates, broader architecture support, and a stack of new features since our first release. It’s a major milestone—production-ready and thoroughly tested.

Highlights

We have dramatically optimized index build speed, now capable of building a 100M-vector dataset in 20 minutes on a 16-vCPU machine while sharply cutting memory usage, making index construction in production far more convenient.

What's changed since 0.5

Performance & scalability

  • Lock-contention optimizations in index building
  • Faster table sampling in index building
  • Hierarchical K-means
  • Dimension reduction in K-means
  • Parallel compacting in index building
  • Prints estimated memory usage in index building

Fixes

  • Don't use expensive Rayon fold/reduce
  • Freespace recycle in vchordg

Full Changelog: 0.5.3...1.0.0

0.5.3

26 Sep 11:32

Choose a tag to compare

VectorChord 0.5.3 Release Notes

  • Fix build.pin if parallel build is not enabled. #346
  • Run tests on x86_64 MacOS. #348
  • Build prebuilt packages for PostgreSQL 18. #349

0.5.2

15 Sep 07:17

Choose a tag to compare

VectorChord 0.5.2 Release Notes

  • Add built-in query simpling, for recall evaluation with online queries, see also Query sampling. (#321, #334, #337, #338)
  • Fix MVCC violation if either build.rerank_in_table or vchordrq.prefilter is enabled. (#336)
  • Fix incorrect order of vchordrq.probes. (#342)

The vchord-postgres image includes pgvector 0.8.1 now. You could update the extension schema by running the following SQL:

ALTER EXTENSION pgvector UPDATE;
ALTER EXTENSION vchord UPDATE;

0.5.1

02 Sep 07:48

Choose a tag to compare

VectorChord 0.5.1 Release Notes

  • A little performance improvement. (#314)
  • Fix compilation on x86_64 nix with gcc.arch set. (#316)
  • Fix compilation and tests, and add initial simd support, on s390x and powerpc64le, see also s390x. (#318, #323, #324, #326, #325, #327, #328, #329, #330)

Full Changelog: 0.5.0...0.5.1

0.5.0

15 Aug 07:11

Choose a tag to compare

VectorChord v0.5.0

Two big upgrades, focused and pragmatic.

1) Experimental DiskANN (with RaBitQ) — vchordg (preview)

A new disk-backed graph index that keeps memory low while giving you a DiskANN-style option inside VectorChord.

  • When it shines: can be faster than IVF+RaBitQ (vchordrq) on some embeddings (e.g., OpenAI/Cohere) — but not always.
  • Caveats: slow build, and insert/delete are weaker than IVF. Dataset-dependent: benchmark before switching.
  • Try it:
    CREATE INDEX ON items USING vchordg (embedding vector_l2_ops)
    WITH (options = $$
      m = 64
      ef_construction = 128
    $$);
    
    SET vchordg.ef_search = 128;
  • Memory knob: bits = 1 halves index memory vs default bits = 2 (better recall/QPS).

We’re shipping this to give you a one-stop vector search toolbox at VectorChord. Feel free to share any thoughts and questions about it!

2) Recall measurement for IVF+RaBitQ — vchordrq_evaluate_query_recall

Approximate ≠ exact. Now you can quantify how close your results are with vchordrq_evaluate_query_recall. It accepts a query that returns row identifiers (e.g., ctid) and returns a recall score.

SET vchordrq.probes = '100';
SET vchordrq.epsilon = 1.0;

SELECT vchordrq_evaluate_query_recall(query => $$
  SELECT ctid FROM items
  ORDER BY embedding <-> '[3,1,2]'
  LIMIT 10
$$);  -- add ", exact_search => true" for table-scan ground truth

Note: recall evaluation targets vchordrq in 0.5 (not vchordg yet).

Other fixes

We fixed some performance regression problems in this release. User can enjoy better performances with it!

Talk to us

Thanks for building with us. If you have any question or thoughts, open an issue, join our discord or start a Discussion. Your notes guide what we fix first. If VectorChord helped you, drop us a ⭐ on GitHub and hit Watch → Releases.

0.4.3

20 Jun 04:51

Choose a tag to compare

VectorChord 0.4.3 Release Notes

  • use mimalloc on aarch64-linux
  • fix compilation with gcc on x86_64
  • fix compilation with clang on Windows
  • prompt the user to rebuild the index after the upgrade

Full Changelog: 0.4.2...0.4.3

0.4.2

29 May 23:46

Choose a tag to compare

VectorChord 0.4.2 Release Notes

  • fix compilation on aarch64 macos
  • add support for pgxnclient: you can install VectorChord with pgxnclient install vchord==0.4.2 now

Full Changelog: 0.4.1...0.4.2

0.4.1

24 May 09:54

Choose a tag to compare

VectorChord 0.4.1 Release Notes

  • Fix potential precision issue if the dimension of vectors is 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768.

Full Changelog: 0.4.0...0.4.1

0.4.0

23 May 18:18

Choose a tag to compare

VectorChord 0.4 Release Notes


Major Improvements

  • Streaming I/O & Page Prefetch

    • Complete rewrite of page layout to enable pipelined computation with streaming I/O.
    • On PostgreSQL 17, uses fadvise to prefetch buffers into the OS page cache, eliminating per-buffer read waits and fully leveraging disk throughput.
    • In upcoming PostgreSQL 18, direct support for io_uring will further streamline asynchronous I/O.
    • Benchmarks: 2–3× lower latency on cold queries (no buffer or page cache), translating to significantly improved tail latency in production.
  • Prefilter Acceleration

    • Introduces true prefilter support for vector + filter queries.
    • Previous postfilter approach ranked full result sets and then applied filters—inefficient when selectivity is low (e.g., 1% filter rate).
    • Applies SQL filters before full precision vector distance computations, avoiding unnecessary work.
    • Benchmarks: Up to 3× faster end-to-end search on highly selective filters without any additional tuning.

Other Improvements

  • Optimized Residual Quantization

    • Collaboration with RaBitQ author Jianyang: refactored distance term $|⟨o, q–c⟩|$ into $⟨o, q⟩ – ⟨o, c⟩$, so the query vector is quantized only once.
    • Result: ~20% QPS improvement over 0.3.
    • Recommendation: Enable residual quantization for L2 workloads.
  • Fast Walsh-Hadamard Transform for Rotation

    • Collaboration with RaBitQ author Jianyang: replaced manual vchordrq.prewarm_dim GUC with an on-the-fly Fast Walsh-Hadamard Transform.
    • Removes the need to configure a prewarmed dimension list and yields marginal speed gains during setup.

Thank you for using VectorChord! As always, we welcome feedback and contributions on GitHub.

Full Changelog: 0.3.0...0.4.0

0.3.0

11 Apr 08:11

Choose a tag to compare

Features

Native support for the maxsim operator and efficient indexing inspired by XTR-WARP project. This makes it possible to build ColBERT- or ColPaLI-style multi-vector retrieval applications seamlessly within PostgreSQL.

Improvements

  • More KMeans parameters can be configured
  • Better progress report for internal KMeans build

What's Changed

Full Changelog: 0.2.2...0.3.0