Vanakkam
Notes on databases, data, and AI.
RSS FeedWrite-ups of real customer problems from the field, with the diagrams I wish the docs had.
Occasionally travel, cooking, cricket, DIY and whatever is going on in the garden.
Series
-
RAG Retrieval Non-Determinism
Why an identical query returns a different top 10, and how to bound the variance instead of chasing determinism.
-
Zero-Downtime Multi-TB Migrations
Moving 12 TB from PostgreSQL 11 on-prem to a managed PostgreSQL 16 with five-minute write pauses: planning the waves, then running them.
Featured
-
RDS MySQL Blue/Green Upgrades: Don't Let Debezium Lose Its Place
Updated:How to run a major version upgrade on RDS MySQL without breaking your Debezium CDC pipeline. Covers binlog position recovery, GTID auto-positioning, and how to verify you did not lose any changes.
-
Cut Your LLM Bill by 80% Without Shipping a Worse Product
Cost-tiered model routing: send the routine 80% of traffic to a small model, verify the answer before you trust it, and keep the expensive model for the work that actually needs it. Provider-neutral architecture, the arithmetic, and the parts that go wrong.
-
Streaming Aurora DSQL Changes into an Iceberg Lakehouse with Firehose
Aurora DSQL CDC is GA. Here's how to build a fully managed pipeline that lands committed changes in Apache Iceberg on S3 Tables via Kinesis and Firehose, and the record-format details you need to get right.
-
Altering a big table online: ADD column with near-zero downtime on MySQL 8+ and Postgres 14+
Updated:A practical, cloud-agnostic look at adding columns to large tables without downtime — what MySQL 8+ and Postgres 14+ actually let you do, the expand-contract pattern that beats native DDL alone, the OSS tools, and the managed-service caveats.
-
Aurora to Redshift Zero-ETL: what actually replicates
A practical look at Aurora PostgreSQL Zero-ETL into Redshift — how NOT NULL really behaves, why your PostgreSQL indexes don't translate, and how retries stay idempotent without enforced uniqueness.
-
Why Is My PostgreSQL Major Version Upgrade So Slow?
A deep dive into why PostgreSQL major version upgrades take longer than expected — what actually happens under the hood, why parallelism won't save you, and how to diagnose the bottleneck. Applies to Aurora PostgreSQL, RDS PostgreSQL, and self-hosted.
-
Troubleshooting Data Dictionary Issues in MySQL and Aurora
A practical guide to understanding, diagnosing, and resolving MySQL Data Dictionary inconsistencies on RDS MySQL and Aurora MySQL — before they become emergencies.
-
Hello, I'm Venki — and welcome to my notes
A short introduction to who I am and what this blog is going to be about — a mix of tech, travel, cooking, cricket, DIY, and gardening.
Recent Posts
-
Why Your RAG Search Returns Different Results Every Time (Part 1)
Updated:Same query, same corpus, different top 10. A tour of every layer in a RAG pipeline that can make retrieval results move, from Unicode normalization to replica divergence to fusion scoring.
-
Fixing Unstable RAG Retrieval (Part 2)
Updated:How to find out which layer is making your RAG results move, in an order that costs almost nothing to start, and what to actually do about each one.
-
The Pre-Filter and Post-Filter Cliff in Vector Search
Why a metadata filter can make vector search suddenly slow or silently incomplete, and how to pick between pre-filtering, post-filtering, and filter-aware search.
-
Zero-Downtime Multi-TB Migrations: Cutover, Validation and Rollback (Part 2)
Planning the second half of a zero-downtime multi-terabyte migration and version upgrade: how to prove the data matches, rehearse, run the cutover for each wave, and keep a real rollback path.