Most of CYBERTEC’s employees are spread over central and Eastern Europe, so we rarely get to see each other in person, except for the ubiquitous video calls that have become common nowadays. Going to conferences is the best way to meet, and among them, the annual PGconf.EU conference is the best and biggest opportunity.

This year, the location was Prague (after having already been there in 2012). Since three of us are located around Mönchengladbach, we decided to go by car, and pick up number four in Gießen, which is on the way. We started Tuesday around 9.00 and after a thankfully mostly eventless ride, arrived in Prague around 20.00. Most CYBERTEC people were already there, and we gathered in the open space between the restaurants in the neighboring mall for a company dinner. There were about 20 people around the table, including some guests from friendly other companies.

cybertec event team


After trainings on Tuesday, Wednesday was the first actual conference day. The day started with a keynote from Simon Riggs about looking back at 20 years of PostgreSQL development and projecting how the next 20 years could (or should) look like. His take was that we are already the “most admired” database (according to a StackOverflow developer survey), and we should now aim for more pervasiveness. A theme that was echoed in several other talks.

In the next slot, I went to Peter Eisentraut’s session on the inner workings of the SQL standard committee. Presenting the daily work of the working group, I smiled when I saw some archetypal grey UNIX beards on the pictures. At the moment, there are two PostgreSQL representatives in the committee – Peter and Vik Fearing, who was also present in the talk. Peter stressed that while in the past, the SQL standard was seen as something that got thrown over the fence every few years by the big database players, we are now the big player, and the obligation to carry the standard forward is also on us.

Next, Heikki Linnakangas presented a list of bullet points that will have to be addressed if PostgreSQL were to move to a thread-based model. He doesn’t quite intend to do all the work on it himself (but I’m sure he will be part of it), but after having started a pgsql-hackers discussion on the topic, he collected the feedback from there. My guess is that we will eventually get there, but it will be a major effort that spans several major releases.

After lunch, Melanie Plageman talked about getting patches in shape for having them committed to PostgreSQL. The gist is mostly “talk to people” – conferences are a good place to do that. Several PostgreSQL committers were in the audience and commented on the patch review process from their viewpoint (including Peter Geoghegan remarking “everyone here seems to assume we know what we are doing” 😀 ). It’s been a while since I submitted original patches that weren’t just complaints found by running the testsuites on Debian infrastructure, and I have actually some patches in the queue that I will start pushing to the hackers list. Incidentally, the CYBERTEC and the Microsoft booth were just next to each other, and Melanie and I could exchange some more ideas about the community.

In the next slot, I went to see my colleague Bernd Helmle’s “The Migration Puzzle”. He talked about the difficulties in getting everyone on board for migration projects – again, talking to people is the key to success.

Then, Robert Haas talked about what’s good and what’s not so good about autovacuum. Having been a PostgreSQL consultant for the past one and a half decades, I already knew what to expect, and it was nice to see everything summarized up nicely. To my delight, he also mentioned what I’ve been thinking what’s wrong with autovacuum – there are way too many switches (called GUCs in PostgreSQL slang), and we should try to have less.

I skipped the next talk slot, waiting for the PostgreSQL Europe reception to start in the evening. As usual, there was no shortage of vouchers for drinks, with Dave and Magnus restocking everyone all the time, and it was kind of hard to not have any leftover vouchers at the end. Lots of talking and meeting old and new friends.


Six talks and the evening without much breaks in between demanded their toll on the next day, and I had to slow down a bit on Thursday, spending more time at the booth. The Patroni suitcase again attracted a lot of people who wanted to play with the power switches to see how fast failover between the three nodes would work. And the cute ducks were also, well, cute.

booth at

The first talk I went to was my colleague Ants Aasma on faceting. To me, this was the best talk of the conference: a relevant real-world problem, well presented, with an impressive solution (500x speedup), and the technical details well explained. Briefly explained, the problem of computing counts of subsets of the full 100 million rows is replaced by counting bits in intersections of precomputed bitmaps for each of the interesting attributes. The low-level algorithms for that come from a library for “roaring bitmaps” which is available a as a PostgreSQL extension. (Not packaged yet, but it caught my interest 🙂 )

Having participated in Advent of Code several times over the past years, I was curious to learn about Lætitia Avrot’s tricks for solving the puzzles in pure SQL. I learned Python that way, and have been watching others use SQL before. But to me, there was little insight in the talk.

The next talk was a classic reloaded: Tomas Vondra on Linux filesystem performance with PostgreSQL. Lots of numbers, and the answer of course always depends on the use case in question, but the takeaway still seems to be that the major filesystems are all generally on par with each other. I’ll stick with my recommendation to use the filesystem that people know how to operate and how to debug. To me that’s ext4, but others will also be happy with xfs. Or with btrfs or zfs if snapshotting is a requirement.

After the tea break, Andres Freund talked about the path to using asynchronous IO and direct IO in PostgreSQL, along with vectored IO requests. Lots of work on the topic is being done, with some parts already committed. We will likely see this becoming a main feature well before threads.

The day ended with a series of keynotes from the platinum sponsors, with my boss Hans going first. His message was that open source matters to data because social security data has to be stored for up to a century. A message that I can really agree to.

Still being tired, I skipped the other keynotes. In the evening, we took the subway to some other end of Prague, but I didn’t stay long in the pub.


Friday started with Alex Sosna talking about zero-downtime major upgrades at GitLab. They did impressive engineering to upgrade without taking the API down. The noise in response time spikes is actually greater during normal weekday operation than during the time the upgrade was done. But I spent most of the time making slides: Earlier this week, Devrim had caught me close to the lightning talks registration flip-chart and made me sign up for a talk matching his “State of PostgreSQL in RPMs” talk – “State of PostgreSQL in DEBs”. I managed to mail in the slides before lunch.

I then went to Peter Eisentraut and how pg_failover_slots fills in a missing piece when using logical replication on top of a physical replication HA cluster. Hopefully the problem will be integrated into PostgreSQL core some day.

Next, my colleague Matthias Grömmer was showing a live demo of using PostgreSQL with backups and failover in Kubernetes. The whole funky cloud world is still new to me, so it was nice to see some practical examples. I liked how me was doing the whole session as a live demo – no slides at all, just terminals and web UIs.

After lunch, it was again a colleague talking, Pavlo Golub on PostgreSQL monitoring using the built-in metrics and how pgwatch is using them. And maybe pgwatch3 is actually close to being released now.

The conference was ending with the lightning talks session. There were too many talks to remember, but I generally enjoyed all of them. For mine, I had prepared 20 slides which is a lot for 5 minutes, but most where only about packages added to during the last year. I managed to present almost all, and I think people liked the talk.

In the evening, we took the opportunity to really escape the hotel after basically three days inside and went to find a restaurant near central Prague. Being Friday evening, we had to walk quite a bit to finally find a bar that could host ten people. The beer and the food was enjoyable, so we were happy.

See you next year! (Location still to be determined.)