Open-source PostgreSQL operations tool

pgvector-index-manager — safe HNSW index reconciliation

An open-source Go reconciler for pgvector HNSW indexes that belong to a defined workload or filtered population. It detects drift, plans the required change, builds and verifies a replacement concurrently, publishes it under the desired name, and retires only indexes from the same managed family.

GoPostgreSQLpgvectorHNSWConcurrent DDLDocker

What this proves

System behavior and guardrails

  • Detects HNSW drift across health, opclass, dimensions, parameters, population, and ownership metadata
  • Uses advisory locking and concurrent replacement builds
  • Verifies the replacement before publishing it under the desired name
  • Refuses unowned replacement by default and avoids sweeping unrelated indexes

Project scope

pgvector-index-manager

An open-source Go reconciler for pgvector HNSW indexes that belong to a defined workload or filtered population. It detects drift, plans the required change, builds and verifies a replacement concurrently, publishes it under the desired name, and retires only indexes from the same managed family.

Version 0.1.0 · Apache-2.0 · Go

The current public release is v0.1.0. The source demonstrates the intended reconciliation model; it does not establish production history, adoption, or continuous validation.

How reconciliation works

  • Inspects PostgreSQL catalog state for HNSW indexes on the configured table
  • Compares health, vector identity, population filters, opclass, HNSW parameters, ownership, and the complete specification hash
  • Provides status, plan, apply, and dry-run workflows
  • Holds a table-scoped advisory lock through the mutation sequence
  • Builds replacement indexes concurrently and verifies them before publication
  • Records structured ownership, managed-family, and specification metadata
  • Protects a conflicting same-name unowned index unless replacement is explicitly authorized
  • Retires only superseded indexes in the same managed family, optionally after a grace period

Safety and interpretation

Review plan before apply. Catalog inspection can use read-only credentials; applying a plan requires index create, comment, rename, and drop privileges. drop_unowned is an explicit authorization, not a default sweep, and unrelated indexes must never be retired.

Need a related technical system or diagnostic path?