>
Archives

PostgreSQL

This category contains 49 posts

Losing Data is Harder Than I Expected

This is a follow‑up to the last article: Run Jepsen against CloudNativePG to see sync replication prevent data loss. In that post, we set up a Jepsen lab to make data loss visible when synchronous replication was disabled — and to show that enabling synchronous replication prevents it under crash‑induced failovers. Since then, I’ve been … Continue reading →

Run Jepsen against CloudNativePG to see sync replication prevent data loss

Are you in the Pacific Northwest? This Thursday Sep 4 at 6pm we have special guest Nikolay Samokhvalov visiting Seattle and speaking at the Seattle Postgres User Group! Nik is the founder of PostgresAI and co-host of the long-running weekly podcast postgres.fm – we are very lucky to have him as a guest and I … Continue reading →

Graviton2 versus Graviton4

Just a short post, because I thought this was pretty remarkable. Below, I have screenshots showing the CPU utilization of two AWS instances in us-west-2 which are running an identical workload. They are running the CloudNativePG playground, which is a production-like learning and testing environment (all running virtually inside the single ec2 instance, which can … Continue reading →

Collation Torture Test versus Debian

Collation torture test results are finally finished and uploaded for Debian. https://github.com/ardentperf/glibc-unicode-sorting The test did not pick up any changes in en_US sort order for either Bullseye or Bookworm 🎉️ Buster has glibc 2.28 so it shows lots of changes – as expected. The postgres wiki had claimed that Jessie(8) to Stretch(9) upgrades were safe. … Continue reading →

Waiting for Postgres 18 – Docker Containers 34% Smaller

On February 25, 2025 Christoph Berg committed the patch: This closed Debian bug 927182 which had been opened in April 2019 by Laurence Parry. That bug had raised concerns over the significant size increase of adding LLVM as a requirement to support Postgres JIT functionality. Postgres supports packaging LLVM as a separate optional package without … Continue reading →

Testing loadBalancerSourceRanges with CloudNativePG on Azure Kubernetes

This option didn’t seem super widely documented from my initial searches online; it should be able to basically enforce layer 4 ingress/firewall rules at the individual service level. This is a quick test to check if it works. Steps were generated with ChatGPT, and mostly worked. It missed Azure provider registration, but I figure that … Continue reading →

Postgres Per-Connection Statistics

I’ve had a wish list for a few years now of observability-related things I’d love to see someday in community/open-source Postgres. A few items from my wish list: Wait event counters and cumulative time Wait event arguments (like object, block, etc – specific argument depends on the wait event) Comprehensive tracking of CPU time (ie. … Continue reading →

Challenges of Postgres Containers

Many enterprise workloads are being migrated from commercial databases like Oracle and SQL Server to Postgres, which brings anxiety and challenges for mature operational teams. Learning a new database like Postgres sounds intimidating. In practice, most of the concepts directly transfer from databases like SQL Server and Oracle. Transactions, SQL syntax, explain plans, connection management, … Continue reading →

Kubernetes Requests and Limits for Postgres

As Joe Drumgoole said a few days ago: so many Postgres providers. Aiven, AWS, Azure, Crunchy, DigitalOcean, EDB, GCP, Heroku, Neon, Nile, Oracle, Supabase, Tembo, Timescale, Xata, Yugabyte… 🤯 I’m sure there’s more I missed. And that’s not even the providers using Postgres underneath services they offer with a different focus than Postgres compatibility. (I … Continue reading →

Good Benchmark Engineers and Postgres Benchmark Week

There are four major components to being a good benchmark engineer: Methodology: A good benchmark engineer defines the goals and non-goals of the exercise, makes strong choices on variables in the experiment, configures the SUT in a valid manner, and makes smart decisions about when and how to iterate the test. Investigation: A good benchmark … Continue reading →

Disclaimer

This is my personal website. The views expressed here are mine alone and may not reflect the views of my employer.

contact: 312-725-9249 or schneider @ ardentperf.com


https://about.me/jeremy_schneider

oaktableocmaceracattack

(a)

Enter your email address to receive notifications of new posts by email.

Join 78 other subscribers