pgvector / pgvector/pgvector

Ideas

Open
#27 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C
Stars
23.1k
Forks
1.3k
PR merge metrics
No merged PRs in 30d

Description

Please create a new issue to discuss any ideas or share your own.

HNSW

  • Add support for streaming I/O - hnsw-read-stream3 branch
  • Use TidStore for vacuuming for Postgres 17+ - hnsw-tidstore2 branch
  • Improve colocation of neighbors on disk for index builds - hnsw-build-order branch
  • Add support for inline filtering
  • Add time budget option - time-budget branch
  • Use scan->kill_prior_tuple - kill-prior-tuple branch (WIP)
  • Add support for index-only scans - hnsw-index-only-v2 branch
  • Add support for INCLUDE clause with CREATE INDEX (not more performant since still accesses heap)
  • Improve performance of on-disk index builds by keeping neighbors and closer in memory

IVFFlat

  • Add support for inline filtering - ivfflat-filtering branch (needs different design for better performance)
  • Add support for product quantization
  • Add support for another coarse quantizer
  • Add support for parallel k-means
  • Update parallel workers calculation - ivfflat-parallel-workers branch
  • Increase default value of ivfflat.probes
  • Add support for setting default probes on index level
  • Scan additional lists if number of entries is low after scanning probes
  • Use pairing heap for index scan for performance - stages and pairingheap branches
  • Use tuplesort_set_bound for performance - bound branch (not needed w/ pairing heap)
  • Add support for parallel index scans (planner gets cost estimate but doesn't use) - parallel-index-scan4 branch
  • Use Lloyd's or MO-Elkan's k-means when not enough memory for Elkan's
  • Use FB-Elkan's k-means for faster index creation
  • Use mini-batch k-means for index creation for reduced memory - minibatch branch
  • Add support for index-only scans - ivfflat-index-only branch
  • Add support for INCLUDE clause with CREATE INDEX
  • Prevent compression for index tuples - ivfflat-storage branch

Indexes

  • Switch to ExtendBufferedRel - extend-buffered-rel branch
  • Include vectors with zero norm in indexes for cosine distance - index-zero-norm branch

Types

  • Add support for fp8 vectors (e4m3) - minivec branch
  • Add support for int8 vectors - intvec branch

Functions

  • Add subscript function - subscript branch (requires Postgres 14+)
  • Add angular_distance function - angular_distance branch - #234
  • Add random_vector function - random_vector branch
  • Add functions to view lists and/or pages like pageinspect (require superuser)
  • Add function to estimate index balance (require superuser?) - #105

Installation

  • Create installer for Windows - #108

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

This is a broad backlog rather than a single task, with proposals spanning HNSW, IVFFlat, indexes, types, functions, and installation. Choose one unchecked item, then review its named branch or linked paper when available; the issue does not specify a single entry point, test, or completion criterion.

Written by the indexing model from the issue text.

Assessment

Tech stack
c, postgresql
Domain
databases
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
15/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.