Error Autopsy
The Connection String That Broke on a Special Character
The rotation generated a strong password with an at sign in it, and the connection string, parsed as a URL, read the at sign as the user host separator, and…
Query performance, deadlocks, N+1 patterns and data integrity problems across relational and non relational stores.
Error Autopsy
The rotation generated a strong password with an at sign in it, and the connection string, parsed as a URL, read the at sign as the user host separator, and…
DevOps
The primary died and the replica took over in seconds, which is what the dashboard promised. The last three hours of writes were not there, because the…
Performance
The LLM answered in four hundred milliseconds and the request took four seconds. The gap was retrieval, a vector search over an index nobody sized, chunked…
Performance
Nothing about the query changed. The table crossed the size where the planner stops choosing the index and starts scanning, because the working set stopped…
DevOps
The backup completed every night and the restore failed in the first hour of the drill. A backup is a claim about the future restore, and claims that are…
Code Review
Offset pagination that scans, an unbounded page size, and a cursor that drifts when rows insert. The pagination diff looks like plumbing and contains the…
Bug Hunt
Scaling out doubled the instances and, invisibly, doubled the connection pool, past the database's limit. The database was the bottleneck the day the team…
Deep Dive
MVCC gives every transaction an id and keeps old row versions until vacuum says they are dead to everyone. If vacuum falls behind for long enough, the id…
Error Autopsy
The query fails with relation does not exist while the table sits in the schema browser a click away. The table never moved.
Performance
Each Redis command took a tenth of a millisecond to execute and a full round trip to deliver, and two hundred of them in a loop made the request slow while…
Code Review
A cache is reviewed for correctness on the happy path and fails on the edges: the cold start, the hot key, the poison entry and the deploy.
Bug Hunt
In production the query took nine hundred milliseconds. Under EXPLAIN it ran in four. The difference was the plan: production ran a cached generic plan…