Topic
Databases & Data Ops
Databases that just work — and the moves that keep them that way. Postgres tuning that isn't astrology, Redis/Valkey patterns, SQLite-as-a-real-database, MariaDB without the legacy ick, schema migrations on big tables without downtime, and the connection-pool / replication choices you'll thank yourself for later.
48 articles in this topic.
Featured posts
-
Postgres in Docker: The shm_size Gotcha
Docker gives Postgres a 64MB /dev/shm. A big parallel query then dies with 'could not resize shared memory segment'. Here is the fix and the trap behind it.
7 min read -
Postgres Autovacuum Tuning for Small DBs
Leave most autovacuum globals alone, raise the cost limit, and give your one hot table a per-table scale_factor. Tested on postgres:18.6 with real numbers.
13 min read -
LLM Semantic Caching: Stop Paying Twice
Exact-match vs semantic caching for LLM calls: a small Python cache, LiteLLM and RedisVL setups, and real scores showing why restart and stop nginx collide.
16 min read -
Monolith vs Microservices, Measured
One Go shop app as a monolith and as gRPC microservices on the same pinned CPU cores. The monolith won every throughput test, and Postgres capped some loads.
15 min read -
Near-Zero-Downtime Postgres Major Upgrades
pg_upgrade in link mode takes seconds. Logical replication takes planning. Here is when each wins, plus a tested Postgres 17 to 18 cutover with a rollback path.
14 min read -
Database Connection Storms, Explained
Why apps fall over under load: pool size times replicas versus Postgres max_connections, restart herds, retry storms, timeouts, and the configs that fix them.
13 min read
All Databases & Data Ops articles
- Postgres in Docker: The shm_size Gotcha
- Postgres Autovacuum Tuning for Small DBs
- LLM Semantic Caching: Stop Paying Twice
- Monolith vs Microservices, Measured
- Near-Zero-Downtime Postgres Major Upgrades
- Database Connection Storms, Explained
- Agent Memory Without a Vector DB
- SurrealDB vs Postgres: Real or Toy?
- osm2pgsql Tuning for Modest Hardware
- DBeaver vs pgAdmin vs DataGrip
- MongoDB Self-Hosted in 2026: SSPL and Alternatives
- PgBouncer for Connection Pooling
- SQLite Replication: Litestream and rqlite
- PostGIS for Self-Hosted Mapping
- pgvector for Local Embeddings
- Postgres Replication: Streaming + Logical
- Database Migrations: Liquibase vs Flyway vs Atlas
- MariaDB vs MySQL in 2026
- SQLite for Self-Hosted Apps
- Redis vs Valkey After the License Drama
- Postgres Backups: pg_dump vs pgBackRest vs WAL-G
- Postgres in Docker: The Durable Setup
- dbt-core for Self-Hosters: SQL With Tests, Without dbt Cloud
- Durable Objects: Stateful Serverless
- ClickHouse vs DuckDB vs StarRocks: Light OLAP
- Adding NOT NULL on a Big Table Without Downtime
- Postgres HA: Patroni + etcd + HAProxy
- Dragonfly vs Redis: Single-Binary Performance
- KeyDB: A Redis Fork With Multi-Threading
- pg_repack vs VACUUM FULL: Reclaim Bloat Live
- pg_stat_statements: What Most Tutorials Miss
- Postgres EXPLAIN ANALYZE Without Crying
- pgAdmin vs Adminer vs CloudBeaver: Web UIs
- PostgreSQL on ZFS: Tuning, Snapshots, Pitfalls
- TimescaleDB Continuous Aggregates Without Pain
- DuckDB for Local Analytics: Pandas on Steroids
- Neo4j vs ArangoDB: Graph DB Showdown
- Postgres vs SQLite for Home Lab Apps
- Qdrant vs Weaviate vs Chroma: Vector DB Showdown
- PostgreSQL + Linux: Kernel Tuning That Actually Matters
- MySQL & MariaDB CLI in 2026: What Changed
- Appwrite: Your Own Firebase, Minus the Google Surveillance Subscription
- Understanding PostgreSQL Connection URIs
- Wiki.js for your documentation in docker
- NocoDB DB Management System
- Automatic Backup of Docker MySQL or MariaDB Containers
- Repair & Optimize all Mysql Databases one liner
- MySQL CLI: From Connection to Maintenance