Sammlung von Newsfeeds
Nikolay Samokhvalov: #PostgresMarathon 2-003: The roots of LWLock:LockManager
As we discussed, Lock Manager manages heavyweight locks – various kinds of them (various modes, various levels of granularity). These locks are released only at the end of the transaction.
In the most trivial case, when you run a SELECT on a table, this table is locked with AccessShareLock. And not only the table, but all its indexes, which happens during planning time (always happens unless you use prepared statements). This is to protect against concurrent DROP. All of these are released only when the transaction ends.
Boriss Mejias: Contributions for week 39, 2025
The PostgreSQL 18 Press Kit contributors team is formed by translators from different countries covering an important set of languages. Here we have the list for the PostgreSQL 18 release. More information can be found here:
Ian Barwick: PgPedia Week, 2025-10-05
Gabriele Bartolini: CNPG Recipe 22 - Leveraging the New Supply Chain and Image Catalogs
This CNPG Recipe explores the latest enhancements to CloudNativePG’s software supply chain and image management. Learn how our new, fully controlled build process—complete with Snyk scanning, image signing, and SBOMs—delivers smaller, more secure PostgreSQL images. We also detail how to leverage the newly streamlined image catalogs for simplified, declarative cluster management and safer fleet-wide upgrades in Kubernetes.
Jeremy Schneider: Testing CloudNativePG Preferred Data Durability
This is the third post about running Jepsen against CloudNativePG. Earlier posts:
Nikolay Samokhvalov: #PostgresMarathon 2-002: Relation-level locks
Let's talk about relation-level locks and various confusions, surprises and what is worth to remember in practice.
The key page in Postgres docs describing relation-level locks is here: https://www.postgresql.org/docs/current/explicit-locking.html#LOCKING-TABLES
Jeremy Schneider: Data Safety on a Budget
Many experienced DBAs joke that you can boil down the entire job to a single rule of thumb: Don’t lose your data. It’s simple, memorable, and absolutely true – albeit a little oversimplified.
Mark Porter’s Cultural Hint “The Onion of our Requirements” conveys the same idea with a lot more accuracy:
Nikolay Samokhvalov: #PostgresMarathon 2-001: Lightweight and heavyweight locks
To warm up, let's talk about lightweight and heavyweight locks (or "regular locks" or just "locks").
I'm using these materials:
Jesse Soyland: Postgres Migrations Using Logical Replication
Moving a Postgres database isn’t a small task. Typically for Postgres users this is one of the biggest projects you’ll undertake. If you’re migrating for a new Postgres major version or moving to an entirely new platform or host, you have a couple options:
Shayon Mukherjee: Exploring PostgreSQL to Parquet archival for JSON data with S3 range reads
Jeremy Sztavinovszki: Bringing etcd to the database with Rust and pgrx
PostgreSQL is a very versatile database. It has countless ways of bringing different functionalities to an already very sophisticated piece of software. Today, I’m going to show you how to use Rust and pgrx to bring etcd into your PostgreSQL database through a nice little interface called Foreign Data Wrappers.
(an image representing rust, etcd and postgres working together. Drawn by Jeremy Sztavinovszki)
Jeremy Schneider: Postgres Replication Links
Our platform team has a regular meeting where we often use ops issues as a springboard to dig into Postgres internals. Great meeting today – we ended up talking about the internal architecture of Postgres replication. Sharing a few high-quality links from our discussion:
Alexander Kukushkin’s conference talk earlier this year, which includes a great explanation of how replication works
Hubert 'depesz' Lubaczewski: Waiting for PostgreSQL 19 – Add GROUP BY ALL.
Daniel Vérité: Pipelining in psql (PostgreSQL 18)
Dave Stokes: PostgreSQL 18 Old & New
Learning Structured Query Language can be frustrating when double-checking that what you wanted to have done is actually what was done. PostgreSQL 18 has 'OLD and NEW support for RETURNING clauses in INSERT, UPDATE, DELETE, and MERGE commands'. Now you can get instant feedback.
The addition of the RETURNING clause in the previous version made MERGE much easier to use. Now it makes other commands easier.
To demonstrate, let's create a table with one column that is designated as a unique, primary key integer and insert a value.
Laurenz Albe: How to do UPDATE ... LIMIT in PostgreSQL
If you are reading this hoping that PostgreSQL finally got UPDATE ... LIMIT like MySQL, I have to disappoint you. The LIMIT clause is not yet supported for DML statements in PostgreSQL. If you want to UPDATE only a limited number of rows, you have to use workarounds. This article will describe how to do this and how to avoid the pitfalls and race condition you may encounter. Note that most of the following also applies to DELETE ... LIMIT!
Tudor Golubenco: Going down the rabbit hole of Postgres 18 features
Jeremy Schneider: 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.
Hans-Juergen Schoenig: PostgreSQL 18 and beyond: From AIO to Direct IO?
PostgreSQL 18 is such an exceptional piece of software - it is hard to imagine anything better, right? I remember a similar thought when PostgreSQL 7 was released (“wow, how cool is that - this is it”). Well, let me put it mildly: I was wrong, and things are a lot better than they used to be. So, obviously the idea that PostgreSQL 18 is as far as humanity can go is also wrong. But what might be next?
Ian Barwick: PgPedia Week, 2025-09-28
PostgreSQL 18 was released on schedule this week!