Another story of something I saw in the field which surprised me. Turns out recovery_prefetch can cause outages.
Something which has been happening quietly in the background all the time, but we didn’t notice until we looked close enough to see it.
After a lot of work I discovered this was partly a case where someone had dropped an email to the postgres hackers list years ago “hey what about this” and everyone thought “nah it can’t be that bad” … and now here we are seeing production outages!
Exhibit A: Feb 2021, while the feature was being developed, a year and a half before it shipped, Stephen Frost
https://www.postgresql.org/message-id/20210214231815.GO27507@tamriel.snowman.net
Exhibit B: Mar 2025, clear report from the field, Michael Zhilin (Postgres Pro)
https://www.postgresql.org/message-id/9bdb428a-fc8e-4801-8fff-1ad0bc6f
[...]A friend of mine is an excellent architect but a complete snob. He has four different databases in production: PostgreSQL for OLTP, ClickHouse for OpenTelemetry data and web analytics, Elasticsearch for full-text search in the application, and MongoDB, “for historical reasons.”
In between, there are ETL and CDC pipelines, plus on-call developers hunting for where exactly the results don’t match. To him, it’s all a well-thought-out architecture; to me, it’s needless complexity in maintenance and development.
The other day I told him what I’ve been working on lately.
“I’ve managed to plug ClickHouse’s MergeTree table engine into PostgreSQL as a table access method, on a vanilla database core, without a fork, and with a vectorized query executor reading from it.”
“What for? Just use ClickHouse and spare yourself the pain.”
“Because I need JOINs across lots of tables, consistent data throughout the system, and one platform that’s familiar to develop and maintain.”
“That’s not how it works. It’s either reliable or fast!”
“Well, I’ve managed to combine the best of both worlds.”
“Wait a minute. Didn’t you just port Greenplum into a Postgres extension and then write a vectorized executor on top of it? What do you need MergeTree for?”
“Vectorization grinds through columns fast, but it chokes the moment it has to read the data.”
The backstory began when I ported Apache Cloudberry to PostgreSQL 19 as a set of extensions, which got me ORCA, Greenplum’s cost-based planner, on PostgreSQL 19. On top of that query optimizer I developed pg_vexec, a vectorized executor without a single core patch.
Its nodes, VecScan, VecHashJoin, VecAgg and VecSort, get into a query plan through the database’s standard extension mechanisms and compete with the ordinary nodes on cost. ORCA prices the vector nodes with its own cost model. Inside, the executor processes batches of 1,024 rows in columnar form with kernels bound to function OIDs. Where there is no dedic
[...]The PostGIS Team is pleased to release PostGIS 3.7.0rc3! Best Served with PostgreSQL 19 RC 1 , GEOS 3.15.0 , postgis_tiger_geocoder 2025.2 , and address_standardizer.
This version requires GEOS 3.10+, PostgreSQL 14-19beta3, Proj 6.1+, and libgmp. To take advantage of all postgis extension features, GEOS 3.15+ is needed. To take advantage of all postgis_sfcgal extension features SFCGAL 2.3+ is needed. Python 3 is a new requirement to build the documentation. Visual examples in the docs are off by default. To build docs with them, configure with --with-visual-examples and make sure you have a running PostgreSQL instance; they are then generated automatically when building the docs (or explicitly with make -C regress visual-examples).
This release contains fixes since 3.7.0rc3 release.
Cheat Sheets:
This release is a release candidate of a major release, it includes bug fixes since PostGIS 3.6.4 and new features.
We’re continuing our review of the March CommitFest for PostgreSQL 19. This third article in the series covers the changes related to our DBA3 and DBS courses.
As a reminder, here’s the plan for our coverage of the final PostgreSQL 19 CommitFest:
Part 5.3 (DBA3, DBS) -- you are here 🙂
Part 5.4 (SQL, DEV1, DEV2)
For the earlier CommitFests, see: 2025-07, 2025-09, 2025-11, 2026-01.
Here’s what’s covered:
...
The source code is available on Codeberg.
The extension is also available on PGXN.
The extension is also availabe through the PostgreSQL rpm packages.
This release adds a new view to the extension, pg_index_bloat.
Last month PlanetScale published a blog post on how they achieved 118 million queries per second on Neki, their sharded Postgres. It included data points at 5, 50 and 512 shards, and showed the scalability between them.
While this was breaking news, our team at StackGres was working on a benchmark to show how we removed Citus' single-coordinator ceiling, allowing Citus to scale without limits. We introduced an architecture in StackGres 1.19 that allows to create as many Query Routers (think of Citus Coordinators, but you can scale them out) as you need. Query Routers scaled near-linearly up to two routers, allowing a three worker cluster to go from 550K queries per second with a single coordinator to 1.4M with three Query Routers.
The question then became obvious: can we compare Neki and Citus? Can Citus match, or outperform, with the new Query Routers, Neki? One observation further motivated us: Neki’s numbers show that data nodes were delivering 231K tps. A trained eye would soon recognize that figure as a low per node number for a modern ARM64 server with 64 cores. Certainly there’s overhead on a sharded system, and both Neki and Citus suffer from it. But we believed Citus could do better.
And so it did. We matched the 1M and 10M data points. At those data points Citus was able to achieve slightly better performance (with possibly lower latency too, but those numbers were not drilled down in Neki’s post) with 60% and 48% of the data nodes, respectively. The number of Query Routers was half of Neki’s at 1M and the same at 10M. Overall, Neki needed 1.5 to 1.8 times the vCPU to reach Citus performance levels.
Our benchmark was created as similar as possible to Neki’s, but they haven’t published all the details about their setup. Our benchmark setup, but also all the code needed to reproduce it anywhere, will be published soon as a follow-up blog post, so th
[...]84% of surveyed Rails developers use PostgreSQL in production
While PostgreSQL is less popular than Oracle, MySQL, and Microsoft SQL Server today, the gap is narrowing
Win a signed copy of High Performance PostgreSQL for Rails, see below for details
The 2026 version of the Ruby on Rails Community Survey results are now live.
Two things caught my eye: just how much PostgreSQL is in production for Rails apps, and the learning resources Rails developers use.
The survey has responses from nearly 1,800 developers.
Among relational SQL databases, 84% of respondents use PostgreSQL in production. That’s wild! The next one is MySQL at 23%.

84% of nearly 1,800 surveyed Ruby on Rails developers use PostgreSQL in production
This reflects a multi-year trend not only in the Ruby on Rails community but also in the broader industry among relational databases.
According to the DB-Engines Ranking Trend, Oracle, MySQL, and Microsoft SQL Server are all still more popular than PostgreSQL, but declining. In the graph below we can see the growing popularity of PostgreSQL and this trend line implies it may surpass Microsoft SQL Server. MySQL could be next.

Popularity of Oracle, MySQL, Microsoft SQL Server and PostgreSQL per DB-Engines
How do developers learn? Books hold a smaller but steady percentage among learning resources. 37% of respondents in their first two years of learning felt reading whole books was most helpful, while 10% have read parts of a book and found that best.
What worked best among respondents was building and deploying their own applications. This makes sense! That’s how it’s always been for me too, nothing beats building something yourself and becoming an owner and operator. Documentation, learning videos, podcasts, books, and blog posts all help support developers looking to improve their skills.
I was happy to see High Performance Pos
[...]
My job at pgEdge allows me a significant amount of time to work on pgAdmin, a project I started nearly 30 years ago. The previous blog and this followup is an update on some of the recent work I’ve been doing.In my last post I wrote about moving pgAdmin's build farm from Jenkins to GitHub Actions, and I promised a follow-up about , which is the least famous repository in the pgAdmin organisation and quietly one of the most important. If you have installed pgAdmin on Windows in the last year or so, or on macOS since the move to GitHub Actions, you ran code that came from the buildfarm.
Prairie Postgres just turned two! We say “community building” often, maybe not always thinking about what it means, but looking back on the past two years, I can confidently say the most important achievement, the one I’m most proud of, is reshaping the Chicago Postgres Community.
Gradually, our gatherings transformed from a group of experienced DBAs plus a dozen newcomers who sat quietly and didn’t ask any questions because they didn’t know where to start, to a gathering of curious developers, data scientists, and yes, both junior and experienced DBAs are here – how could we keep going without them? Each talk sparks a lot of questions; people stay engaged in conversations long after it ends. It’s not just about “Do you have job openings in your organization?” It’s also (and mostly) about knowledge sharing, talking about passion projects, and building connections.
I am not saying it happened during these last two years; things started to change a while ago, but the changes were empowered by the sense of ownership: it’s our organization, our meetups, and it’s up to us to make the most of them.
Another exciting change is the growth of our connections with other technical meetups. We have strong ties with Chicago Code&Coffee and the Chicago Ruby and Django communities, and we are planning our first joint meetup with ChiPy. We are also exploring ways to strengthen connections with the Chicago AWS meetup and the Databricks meetup.
Working together. Building connections. Building community. All I was dreaming about
What am I looking forward to? What would I like us to achieve in our third year?
First, the geography. There is more Postgres in the greater Midwest than just Chicago, and Prairie Postgres is happy to help give it a jump start. Reach out to us – you know where we are!
Second, building connections with educational institutions. So far, there is nothing major to report, except that we have some students coming to our meetups, but we hope we can do more.
Finally, we hope to b
[...]Number of posts in the past two months
Number of posts in the past two months
Get in touch with the Planet PostgreSQL administrators at planet at postgresql.org.