PostgreSQL is the World’s most advanced Open Source Relational Database. The interview series “PostgreSQL Person of the Week” presents the people who make the project what it is today. Read all interviews here.
Please tell us about yourself, and where you are from.
I’m Franck Pachot. I was born in South of France (Avignon), studied in Paris (Orsay), worked in Paris, Brussels, Dakar, Libreville, Antananarivo, Sophia-Antipolis… and now settled in Switzerland for 10 years. I’ve been working in IT mostly with databases, in development (data architecture and modeling) and operations (installation, migration, High-Availability, tuning), and mostly as a consultant, also giving training. I’m passionate about all databases and enjoy it the most when I can improve both the database performance and the dev-ops communication.
How do you spend your free time? What are your hobbies?
I like to travel, meet people, I need frequent contact with nature (mountains at all seasons). Besides that, accompanying kids from toddlers, to teenagers now, is probably the most enlightening hobbie I have.
Any Social Media channels of yours we should be aware of?
I’m way too much on Twitter (@FranckPachot) which tells me that I joined on October 2012 and posted 22.7K Tweets 😱… but I learned a lot there, met incredible people and found many friends, so it’s definitely worth the time spent. I have a lot of blog posts on blog.dbi-services.com/author/franckpachot/ (and many drafts in backlog as well…)
Any favorite movie, or show?
I’ve watched “Pink Floyd - the Wall” so many times. The images, the music, the fears, the feelings,… all resonates.
How would your ideal weekend look like?
I’m living in Switzerland, near Geneva lake. In Winter it can be all gray and foggy (‘stratus’) but driving 20 minutes from there, hiking in the mountains and I’m above a sea of clouds, with shining sun and Alps summits all around.
What’s still on your bucket list?
I want to look at databases in many clouds. I know quite well OCI and AWS and currently looking at GCP. Azure is on the list.
What is the best advice you ever got?
“Don’t change” (from a team leader when I was a junior). I changed a lot, because we learn, and grow, but knowing that you don’t have to change, that brings a lot of self-confidence.
When did you start using PostgreSQL, and why?
Very recently, when compared to the 20 years on Oracle (and a bit of DB2 a long time ago, and some other commercial databases). First, I like open source because it gives additional documentation on the software. I rarely try to read the C code, but the comments around it are great value to understand the intention and limitations of a feature. And second, in the last years many features came to postgres to bring it at enterprise level (I’m thinking about partitioning, parallel query, and materialized views that are coming). This is very similar to the shift from Unix to Linux. And I’m always listening to developers and the best experience they have with a database is when they can start a database in seconds in a small container, without caring about where it runs and the associated license rules. I’m happy to work with both commercial and community-driven databases. And seeing how problems are addressed by one engine or the other is very informative.
Have you studied at a university? If yes, was it related to computers? Did your study help you with your current job?
I studied at Université Paris XI a “MIAGE” which is a master in Enterprise IT. I did two years with Math + Physics only before and came to MIAGE because I needed more diversity (we had economics, legal, management, computers,…) and this is where I enjoyed programming and became a real fan of databases.
What other databases are you using? Which one is your favorite?
I know that it may sound weird to say that in an open-source community but I love Oracle Database. I am admirative on how most of the architecture choices from 40 years ago are still relevant now with hardware and database size that are completely different. Of course this also comes with a high complexity, and price and this is where open source is appealing for the opposite reason: keep things simple and expandable.
On which PostgreSQL-related projects are you currently working?
Current project: compare the performance of Postgres database on Linux POWER vs. Intel processors, in order to define the best platform for the customer context (high consolidation of many databases with unpredictable capacity).
Any contributions to PostgreSQL which do not involve writing code?
Besides presenting, I’m involved in the PostgreSQL Geneva meetup. And I also co-organized Postgres@CERN in 2020 (Yes.. we had a physical conference in 2020 🎉) The story and records are in medium.com/@FranckPachot/postgres-cern-480828b55f94.
What is your favorite PostgreSQL extension?
pg_stat_statements is the one I want to be installed everywhere. I like performance tuning, and I prefer metrics over guesses. There will always be one day where we need to drill down to SQL statement level performance statistics.
What is the most annoying PostgreSQL thing you can think of? And any chance to fix it?
Hints. I have no doubts that we need them. pg_hint_plan can help but I need more control to understand the query planner decisions, do a what-if estimation for another plan, and sometimes to workaround the data distribution that the optimizer cannot guess.
What is the feature you like most in the latest PostgreSQL version?
PostgreSQL 13 exposes the WAL size generated per statement. In the execution plan with ´explain (analyze, wal)´ and in pg_stat_statements . Those little things help a lot for troubleshooting on facts rather than guesses.
Adding to that, what feature/mechanism would you like to see in PostgreSQL? And why?
I would love to get an in-place upgrade that does not have to even read our data. An upgrade modifies the system catalog of course, but this is fast and does not depend on the size of data. Currently, we can do upgrade in-place with pg_upgrade but there are still things to do before re-opening the database, like re-gathering statistics. This is a no-go for very large databases.
Could you describe your PostgreSQL toolbox?
I’m a DBA consultant and I work at different customers where, sometimes, there’s nothing else than ssh to servers, without the possibility to install anything else. So psql and vi are my toolbox for things that work. Linux troubleshooting tools (strace, perf-stat, 0xTools) are the ones when things don’t work.
Which skills are a must have for a PostgreSQL developer/user?
As with any RDBMS: read an execution plan and understand the lower level operations that happen. At least the concepts. Without it, the application design and data model may be sub-optimal and difficult to evolve.
Which PostgreSQL conferences do you visit? Do you submit talks?
I plan to go more to developers conferences rather than DBA ones. Riga Dev Days is for developers and has a database stream. And I learned a lot from discussions with fellow AWS Heroes. Those are the best place to understand other point of views (other than: “we all agree that RDBMS is the right place to process data, with SQL as the best language”).
Do you think Postgres has a high entry barrier?
For people coming from MySQL, yes definitely. You need to change many default parameters before starting to use it efficiently because they are defined to work everywhere for ages and are not adapted to current systems. I discovered postgresqlco.nf recently which helps with that.
What is your advice for people who want to start PostgreSQL developing - as in, contributing to the project. Where and how should they start?
Understand how the community works (people, mailing lists, philosophy). And meet people from the community. Some reactions in social media or mailing lists may sound very conservative and even harsh, but meeting people clears out this feeling.
Do you think PostgreSQL will be here for many years in the future?
Yes. It follows the SQL standard very strictly and even becomes a standard by itself. There are many databases for which being PostgreSQL compatible drives the API (CockroachDB, YugaByteDB, Amazon Aurora with MySQL and PostgreSQL full compatibility). When AWS tries to translate SQL Server to Aurora (Babelfish project), they use PostgreSQL extensibility features. An open-source software that is a pillar for commercial ones cannot disappear, because there is critical data to persist for decades behind that.
Would you recommend Postgres for business, or for side projects?
Business use cases are ok when people understand that open source doesn’t mean no-cost. PostgreSQL doesn’t try to solve all problems, There are things to take care in application design, in storage and OS optimization, in automation and HA/DR procedures. Commercial databases can implement a lot of complexity to cope with bad applications when the customer pays for it. But an open-source community will just say: “no, we will not increase our code complexity to workaround problems that have their roots in other components”. There’s an effort to move to open-source, and maybe some tools and support to subscribe to.
Are you reading the -hackers mailinglist? Any other list?
Only when I need information that I cannot find elsewhere (in doc or in source code comments). I don’t like to read long threads of discussions. Commercial databases maintain “support notes” to summarize issues. But this is a hard job: read all discussion, validate workarounds and solutions, write an aggregated summary.
What other places do you hang out?
Twitter is my place to learn from others, share and discuss topics.
Which other Open Source projects are you involved or interested in?
I’m not a developer. I share a lot in blogs where I try to explain things clearly, and in a reproducible way. But the code I write is mostly short-term ugly scripts and cannot help anyone ;)
Anything else you like to add?
I always move out of the battles between open source and commercial databases, between Oracle and PostgreSQL, between Linux and Windows, between PostgreSQL and MySQL, between SQL and NoSQL, between managed cloud and on-premises. The best tool is the one you like, you understand, and can manage with confidence. I can describe a few alternatives to a customer, but he will have to do the choice by pondering the pros and cons within his context. And my job is then helping him to get the best from the chosen solution, whatever it is. For example, a company that is not ready to use open-source, and to be involved in a community rather than transferring all responsibilities to a commercial support, will fail with PostgreSQL as soon as he encounters a critical issue. And, on the other hand, a company that doesn’t use the exclusive features from a commercial software because they are frustrated to pay expensive licenses, and always think about moving out without finally doing it, will also fail to reduce costs. However both approaches can be totally valid when used correctly. Stop the fight, listen to people and get the best from the good products. They all have great communities.