An old tech geek with too many cats. I'm a PostgreSQL author, speaker, and fanatic. I play too many video games, and tinker with clusters to keep learning.

Midwest
Joined January 2015
PSA: Install linux-modules-extra on Ubuntu before updating. 😂
Sometimes Linux developers are M0R0NS. Ubuntu 22 LTS, apt upgrade to kernel 6.8, rebooted, networking is gone, no interfaces ... why? Because some IDIOT decided to move a huge amount of network drivers to the linux-modules-extra package, not installed by default. Once you reboot, without networking, you can only install it via USB drive ... if you manage to figure out WHY your network interfaces are all unclaimed. Who the hell thought this was a good idea?
1
I've written so much Ansible in the last week. 😵
The dnf utility has radicalized me by updating the cache for literally every little thing, including just searching for packages. Knock it off!
2
For reference, -15 is SIGTERM, which is the default signal from the kill command.
kill -15 let the kernel send graceful shutdown allowing the process to cleanup. kill -9 does a force kill of a process and doesn't get a chance for the process to gracefully exit. Here is node http-server killed vs shutdown and noticed how it behaved in both scenarios Prepare for the -9s and hope for the -15s.
I recommend doing this whenever possible. Use a redacted backup restore and you kill two birds: regularly validating backup viability, and testing with real production scale.
The bug only happened in production. Not staging. Not local. Only prod. We spent 2 weeks comparing environments: - Same code - Same configs - Same infrastructure - Different behavior The difference? Production had 10x more data. Our pagination logic broke after page 1000. Staging only had 400 pages. We never saw it. We tested the code. We didn't test the scale. Now our staging environment has production-sized data. Slows down our tests, catches real bugs.
Shaun Thomas retweeted
🚀 pgEdge featured in Cloud Native Now! Cloud Native Now highlights how pgEdge is enabling distributed PostgreSQL across multiple Kubernetes clusters — bringing global scale, high availability, and true cloud-native resilience to Postgres. It’s another step forward in simplifying how organizations run Postgres at scale — fully open source, multi-cloud, and Kubernetes-native. 🌍 📰 Read the full feature on Cloud Native Now: hubs.la/Q03R_Wy50 #Postgres #Kubernetes #CloudNative #DistributedPostgres #MultiCluster #pgEdge #OpenSource #DevOps
1
1
I didn't even know pgEdge made pg_upgrade better for Postgres upgrades until I read this. 😂 Slot recreation through extension metadata. Who would have guessed?
Good news for Postgres teams everywhere — upgrading just got easier! 🎉 See how pgEdge + CloudNativePG + Spock make major Postgres version upgrades seamless and downtime-free. 👉 hubs.la/Q03S0xm_0 #Postgres #CloudNativePG #pgEdge #Kubernetes #OpenSource
1
It's actually shocking how long this took. The pglogical extension solved this way back in 9.4 or 9.5 by periodically synchronizing the current value + 1000 as an offset to avoid accidental sequence reuse on the remote system.
PostgreSQL 19dev: Add sequence synchronization for logical replication. git.postgresql.org/gitweb/?p…
This is absolutely massive. This brings essentially seamless Iceberg / Parquet support to Postgres and makes it almost a drop-in Data Lake solution.
Excited to announce the release of pg_lake which lets you: - Manage Iceberg tables directly in Postgres - Query raw data files in your data lake - Flexibly data import/export Repo at: github.com/snowflake-labs/pg… Announce post: snowflake.com/en/engineering…
1
More Postgres Kubernetes love for the win!
Kubernetes adoption keeps accelerating — and PostgreSQL needs to keep pace. Our latest blog explores how pgEdge + CloudNativePG make it easier than ever to run high-availability and distributed Postgres on Kubernetes, with a fully open-source approach and zero lock-in. If you're building modern data platforms or running Postgres at scale, this one's for you 👇 🔗 hubs.la/Q03RPV850 #Postgres #Kubernetes #CloudNativePG #pgEdge #OpenSource #DistributedPostgres #DevOps #DataEngineering
Shaun Thomas retweeted
🔍 Explore how to run enterprise-grade Postgres in Kubernetes environments without compromise. In our new demo video, watch as we deploy CloudNativePG-compatible pgEdge Postgres containers with Helm charts, spanning clusters and regions—making distributed, always-on Postgres a reality. 🎥 Watch now: hubs.la/Q03RSrQv0 #PostgreSQL #Kubernetes #CloudNativePG #DistributedDatabases #pgEdge #OpenSource
1
1
Shaun Thomas retweeted
Cultures are neither equal nor indistinguishable. Cultural relativism (a parasitic idea) coupled with suicidal empathy eradicates this obvious reality. It is a form of lobotomy that immobilizes people from stating that they do not wish to host people who hail from cultures that are antithetical to their foundational values. This simple reality is destroying the West.
I am so sick of gelatin capsules getting stuck in my throat, seemingly welded in just the right spot to steadfastly resist being dislodged by any amount of liquid.
This isn't the first time I've seen this tongue-in-cheek "sorting algorithm", but I always get a slight chuckle out of it. Aside from its undeniably glacial speed, it's easily the simplest and therefore superior approach. 😆
Rate my sorting algorithm 🤓
1
1. Bring salted water to a boil 2. Add eggs 3. Immediately turn off heat 4. Wait 12 minutes 5. Move eggs to ice water 6. Peel I've never had this fail.
I’ve asked Grok. I’ve googled. Someone please tell me your great grandma has a fool proof method for peeling hard boiled eggs that actually works, because I’m ready to chuck all 12 of these against a wall at this point
I wrote about this a while back. For the most part, pg_upgrade is fine, but it still requires downtime. Postgres needs to decouple the catalog APIs so they're pluggable by version. legacy.tembo.io/blog/plug-po…
the majority of Postgres databases we see are pg13. the postgres community should reflect on why people struggle to upgrade. the major version upgrade story is woeful.
3
1
"But TOML is better than..." No. Stop it. [servers] [servers.alpha] [servers.alpha.beta] Go home TOML; you're drunk.
1
GIF
I'm probably biased here, but I strongly prefer YAML for config files. It serializes trivially into JSON if necessary, there are billions of parsing and validation libraries for it, and it's 99999x better than TOML. If you're going to do that, just use INI format.
What do you prefer for config? YAML, JSON ... something else...?
I had to write a project in Scheme back in college. Never again. May all possible deities curse that foul language.
Programming language you learnd but never used again is...?