Home / AI & GenAI / Vector Databases

Vector Databases

Running vector databases in production: pgvector, Pinecone, Milvus, Qdrant, Weaviate and Chroma - setup, troubleshooting, performance, scaling and backups. 50 posts.

Vector Databases / Troubleshooting

Chroma \"database is locked\" and missing data with several workers: why PersistentClient isn't multi-process safe and how to fix it

A FastAPI app with four Gunicorn workers, or an ingestion job running beside the API, all open the same Chroma directory. Writes fail with "database is locked", some workers don't see new data, and the index occasionally corrupts. Find the processes sharing the directory and move to a single owner.

5 min readIntermediate

Vector Databases / How-to

Moving Chroma from an embedded notebook database to a server: Docker deployment, persistence, access control and health checks

The RAG prototype uses chromadb.PersistentClient inside the app, and now three app instances need the same data. Run Chroma as a server in Docker with persistent storage, connect with HttpClient, put authentication and TLS in front of it, add health checks and backups, and know when to move to something bigger.

5 min readIntermediate

Vector Databases / Runbook

Upgrading Chroma without losing your collections: version pinning, backups, compatibility checks and the export-import fallback

A routine pip install --upgrade moved Chroma across a major version and the app now fails to open its data or talks to the server with the wrong API. Plan Chroma upgrades like database upgrades - pin versions, back up, test on a copy, upgrade client and server together, and keep an export-import path when the on-disk format changes.

5 min readIntermediate

Vector Databases / Runbook

Re-embedding a vector index when the embedding model retires - a zero-downtime switch with dual indexes and a recall check

Vectors from different embedding models can't be mixed, so when an embedding model retires (Cohere embed v3 on Foundry is deprecated in November 2026 and retires in February 2027) every document must be re-embedded. Build a second index in parallel, compare retrieval quality on a test set, then switch the query path in one step.

4 min readAdvanced

Vector Databases / Runbook

Sev1: RAG answers got much worse after a re-index. Finding what changed and rolling back

After a re-index, pipeline change or data refresh, the assistant says "I don't know" far more often or cites the wrong documents. Compare retrieval before and after, find the change (chunking, embeddings, filters, missing documents), roll back with an index alias, and add a retrieval gate to the pipeline.

4 min readAdvanced

Vector Databases / Runbook

Sev1: vector database pods OOMKilled and search is down

Qdrant, Milvus or Weaviate pods restart with OOMKilled after the collection grew or a bulk load ran. Get search back by adding memory or moving vectors to disk, slow the ingestion down, then size memory properly with quantization and on-disk indexes.

3 min readAdvanced

Vector Databases / Runbook

Sev1: vector search fails or returns nonsense after an embedding model change

Search throws dimension errors, or still works but returns irrelevant results, after someone changed the embedding deployment, model version or dimensions setting. Find which side changed, restore matching query and document embeddings, and lock the embedding config to the index.

3 min readIntermediate

Vector Databases / Runbook

Transformation: consolidating a standalone vector database into PostgreSQL with pgvector

Small and medium RAG workloads often run a separate vector database next to a PostgreSQL that already holds the metadata. Moving vectors into pgvector removes a system to operate and enables joins and transactional updates. Check the fit, design the table and HNSW index, bulk load, verify recall and switch reads.

4 min readAdvanced

Vector Databases / How-to

Transformation: from keyword search to hybrid search with a semantic reranker

Upgrade an intranet, help-centre or ticket search from BM25 keyword matching to hybrid search. Add vector fields, run keyword and vector queries together with rank fusion, rerank the top results, and prove the gain with a relevance test set before switching.

3 min readIntermediate

Vector Databases / How-to

Single-VM RAG proof of concept with Ollama and pgvector

Build a private RAG proof of concept on one VM, with a local model served by Ollama and an embedding model, document chunks in PostgreSQL with pgvector, and a small Python script for ingesting and answering questions. Ends with what to change before production.

3 min readBeginner

Vector Databases / How-to

Vector index DR: rebuild from source, restore a snapshot, or replicate?

Choose a DR strategy for vector indexes by comparing rebuild time, snapshot restore and continuous replication. Includes how to estimate rebuild time from embedding throughput, snapshot commands for common engines, and keeping the embedding model version consistent.

3 min readAdvanced