Julien Riou

Tags:   postgresql    opensource    python    patroni    belgium    ovhcloud   
Category:   Interviews   
Interviewed by: Andreas Scherbaum

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.

My name is Julien Riou. I currently work at OVHcloud, a major Cloud Computing provider in Europe. As a student, I discovered GNU/Linux. I started my career as a system administrator, then I became an open-source database specialist. I live in Belgium, a small country with cold and wet Winters but also with warm welcoming people.

Julien Riou

Julien Riou

How do you spend your free time? What are your hobbies?

I spend my free time taking care of my family, hacking on my computers, supporting my favorite football team (a.k.a “soccer”) and gardening.

Any Social Media channels of yours we should be aware of?

Last book you read? Or a book you want to recommend to readers?

I’m reading “Le bourreau de Gaudi” (FR, translated from Spanish) which is a detective story taking place in Barcelona where a serial killer murders a few important people next to places designed by Gaudi, the famous Catalan architect. I tend to like this literary genre. The “Millenium“ trilogy (translated from Swedish) may be a good start.

On a technical side, even if it’s not PostgreSQL specific, I would like to recommend the “High Performance MySQL” book. It contains a lot of database tips and tricks that helped me a lot to start my career.

Last but not least, you definitely should read “The Art of PostgreSQL” by Dimitri Fontaine. This book is a must-have if you are interested in PostgreSQL!

Any favorite movie, or show?

My #1 movie is “The Matrix”. The concept of living in a virtual world may sound crazy but our lives are driven by algorithms. Is it only a movie? Yes, but we’ll never know.

What’s still on your bucket list?

It may sound cliché but I would like to travel to the other side of the planet to do a road trip on the Golden Coast, Australia.

What is the best advice you ever got?

Communication is key and what happens outside your comfort zone makes you better.

When did you start using PostgreSQL, and why?

In 2010, when I was an intern at my first job. We managed websites and some of them needed PostgreSQL.

Do you remember which version of PostgreSQL you started with?

We were a Red Hat shop and the default version shipped at that time was 8.3. The oldest was 8.1.

I have a master degree in computer science. I had the chance to study at a private school which was specialized in computing. I almost failed my high school diploma but I really loved the university because I was passionate. University and work are very similar. It’s not the structure that makes you great, it’s you. As soon as you are passionate, no matter which school or job you come from, you will master it.

What other databases are you using? Which one is your favorite?

I started with Oracle, SQL Server and MySQL. I decided to go further with MySQL, I’m even certified. At my current job, we have a good balance between MySQL and PostgreSQL clusters. Apart from PostgreSQL, I would say MySQL is my favorite (please don’t blame me).

More recently, we have implemented solutions that involved non-relational data stores like InfluxDB, ElasticSearch, Consul, ZooKeeper, etc. They all are fun to use but my heart goes for RDBMS.

How do you contribute to PostgreSQL?

Whenever I see a missing feature or missing piece in a PostgreSQL-related project, I try to create a thread or even a patch. Unfortunately, my C skills are very limited. I tried to implement Proxy Protocol for pgBouncer and it was really hard. I contributed to Patroni multiple times since I have been more familiar with Python.

Any contributions to PostgreSQL which do not involve writing code?

I try to talk at conferences to give real-world feedback. In March, with Boriss Mejias and Stefan Fercot, we organized a local meetup in Brussels to prepare for the Nordic PGDay.

What is the most annoying PostgreSQL thing you can think of? And any chance to fix it?

Logical replication is pretty new to PostgreSQL and can be improved. There is no failover slot for example. If a logical replication slot is lagging on a primary and a replica is promoted, there is no way to create a slot on the new primary with a LSN on a different/previous timeline. It’s always on the current timeline. That means, all the changes between the lag and the promotion are lost. It’s a blocker to implement a reliable change data capture solution based on logical replication. This section is under heavy development so there is a high chance to have this feature one day.

Another annoying point is the lack of Proxy Protocol support. Setting up a transparent proxy is hard and involves advanced networking skills. The Proxy Protocol is a small addition to the communication protocol to add proxy information (who’s the real client). This can be used for security (pg_hba.conf) and traceability (logs). And, the most important, it simplifies the setup by an order of magnitude.

What is the feature you like most in the latest PostgreSQL version?

Not in the latest version but since the 9.0 era, PostgreSQL has a very strong replication system: physical, can be synchronous and in real-time (streaming). It just works.

Could you describe your PostgreSQL development toolbox?

The CLI client, psql, does the job. It can even invoke vim, or your favorite editor, to edit the last query before sending it to the server. Backslash shortcuts are handy (\dt, \d, \z, \ddp, \copy, etc).

Which skills are a must have for a PostgreSQL developer/user?

SQL. The language that developers tend to avoid by using ORM. You don’t need advanced queries to be productive. A majority of problems can be solved with a simple SELECT that joins two or three tables together. GROUP BY and aggregate functions (like SUM, AVG, etc) are not bad words, they are your friend.

Which PostgreSQL conferences do you visit? Do you submit talks?

My very first conference was pgDay FR (Nantes) in 2013. I loved the concept of one day, one track, one hour per talk. I go to FOSDEM (FOSDEM PGDay and devroom) every year since I have been living in Belgium. I had the chance to be accepted to talk at pgDay FR (Lyon), PostgresOpen , and Percona Live 2020.

Do you think Postgres has a high entry barrier?

Sometimes, PostgreSQL has advanced features that might be complex to master. I’m thinking about privileges and ownerships. Otherwise, it’s pretty simple!

Do you think PostgreSQL will be here for many years in the future?

When I started my career, all developers wanted “NoSQL” because “SQL doesn’t scale”. Fortunately, I’m still an employee today and my team and I have plenty of advice to give to our own developers. PostgreSQL is built with freedom in mind and has a strong community. I’m sure it will last for a long time!

Would you recommend Postgres for business, or for side projects?

PostgreSQL can be used from side projects to large businesses with a bazillion of clusters. No problem. Note that your data model is very important. If you plan to store only jsonb columns because you don’t know what will happen in the future and you don’t want to be bothered by altering the schema, you may have a bad data model and you may suffer from bad performance at scale.

Anything else you like to add?

PostgreSQL is awesome. The community is awesome. Long live PostgreSQL!