Hironobu Suzuki

Reading time: 9 minutes

Tags:   postgresql (175)   japan (7)   pg_plan_inspector (1)   the-internals-of-postgresql (1)   cycling (2)   music (11)   ai (1)   machine-learning (1)   machinelearning (1)   model-checking (1)  
Category:   interviews   
Written by: Andreas Scherbaum

Please tell us about yourself, and where you are from.

I’m Hironobu Suzuki, the author of The Internals of PostgreSQL and pg_plan_inspector. I was born in and mainly lived in Japan; I lived in South America decades ago; I’ve lived in Europe since 2018. See my site in more detail.

No, Suzuki is one of the most common last names in Japan.

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

My new hobby is cycling to maintain my health. I’ve run 10,000km in two years through regular workouts and weekend touring around Switzerland.

I like reading books, especially cosmology and history books these days.

I listen to a wide variety of music from classic to pop/rock/metal/jazz/fusion and any ethnic music, except hip-hop and rap; I sometimes practice guitar and piano/keyboard.

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’ve recently read SWISS WATCHING, The Body Economics, and two books about European history in Japanese. I’m reading a cosmology book about CMB by Dr. Komatsu.

I choose two books and two essays from many good readings I like: Apollo 13 is the best risk management textbook by engineers with deep knowledge and superior skills; Mathematical Writing is a lecture note by Dr. D. Knuth; Richard Feynman and The Connection Machine is a developing story that stimulates intellectual curiosity; The UNIX Oral History Project is a story behind the birth of the philosophy of UNIX.

Any favorite movie, or show?

I like comedy movies, especially Dirty Rotten Scoundrels, Leap of Faith, Galaxy Quest, Three Amigos!, and Ted.

There are too many favorite shows to list. I like going to concerts by various musicians and have countless memories of shows I’ve ever seen, e.g. Queen, Brian May, Jeff Beck, Steve Vai, BOSTON, Björk, The Police, Van Halen, Olivia Newton-John, Aimer, Spitz, K. Oda, and more. While traveling, I like to listen to the music of local musicians and have met great musicians on the streets and bars, especially Cheryl Balzan in Malta was amazing. When I lived in South America, Ecuadorian friends showed me real Andean music and dance that was indigenous, not commercial. That was fantastic.

What is the best advice you ever got?

I read the following quote in Knuth’s book when I was young.

“The road to wisdom? Well it’s plain and simple to express: err and err and err again but less and less and less”

I was also impressed by the words of an acquaintance: computer programs are human-made, not nature-made, so we can surely understand them. And I fully agree with the following epigram: health is wealth.

What’s still on your bucket list?

I have a lot. For example, I’d like to be able to play J. S. Bach’s organ pieces because it has been one of my dreams since I was a boy. For other examples: I hope to travel to every corner of Europe, especially to peaceful Eastern Europe as soon as possible; I’d like to have rabbits and cats because I used to have them for a long time, but now I can’t for various reasons; I’d like to participate in animal welfare activities; etc.

When did you start using PostgreSQL, and why?

In May 2001, I happened to be involved in building a small system using PostgreSQL 7.1, which was my first DB-related job. Honestly, I didn’t like DB. Typical examples in textbooks, such as money transfers and relational data modeling, were too tedious and uninteresting.

However, in the development, I was surprised and excited that the atomicity of transactions dramatically simplified the error handling codes of the applications. My understanding of the transaction processing had changed from boring examples to one of the most valuable mechanisms. On the other hand, I wasn’t sure about the durability ensured by WAL, so I started looking at the source code and was impressed that it was incredibly organized.

I came to like DBMS through this job, and then I gradually shifted my role from a programming developer to a DB engineer. PostgreSQL 7.1 was released in April 2001. If the project had started in early-2001, we would have used MySQL because PostgreSQL 7.0 didn’t support WAL and had a poor performance. It would have led me to a very different life.

Yes. I graduated from graduate school in information engineering but mainly studied applied mathematics, especially statistics because that time was the second golden era of AI. I studied DBMS by myself after graduation; I learned practical programming in C on UNIX at the first company that I worked for.

In any case, I constantly need to update my knowledge and skills to catch up with modern technologies, e.g, I’m learning about AI again. I feel that what I learned at university helped to learn new things.

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

As mentioned above, I became a DB engineer, but I hadn’t had many opportunities to use PostgreSQL due to the market size, so I used MySQL more than PostgreSQL and published three MySQL books.

A few years ago, I finally decided to abandon MySQL and change my career to be a developer again. The reasons were that I had ideas to make some programs using PostgreSQL, and MySQL didn’t spark joy.

Now, I only use PostgreSQL and feel happiness deeply.

I’m involved in several PostgreSQL-related projects as a job.

In private, I’ve started my project pg_plan_inspector.

How do you contribute to PostgreSQL?

I reviewed and fixed a bug for the permute function in pgbench from mathematical interests, and then I became one of the authors.

My main contribution is probably my technical document The internals of PostgreSQL. Fortunately, there are many accesses every day, and I sometimes receive emails from readers.

Any contributions to PostgreSQL which do not involve writing code?

I was a director of the Japan PostgreSQL Users Group (JPUG1) and organized the technical seminar/lecture on PostgreSQL in Japan for more than six years. I served as the program committee chair of the Japan PostgreSQL Conference in 2013 and as a member2 in 2008 and 2009. I published four PostgreSQL books in Japanese.

What is your favorite PostgreSQL extension?

pg_plan_advsr created by Tatsuro Yamada. I was very impressed by his talk about this extension at PostgreSQL Conference Europe 2018; it inspired me to start my project.

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

As Lukas Fittl pointed out at PGCon 2020, there are many missing features for PostgreSQL monitoring.

I created a query progress monitoring feature in my project. The rest seems almost untouched.

Adding to that, what feature/mechanism would you like to see in PostgreSQL? And why?

Since I’m interested in distributed DBMS and the application of AI, I hope PostgreSQL itself will have the features of distributed DBMS, and the functions of acquiring monitoring data for use in AI will improve.

I also hope that Formal methods and Model-checking, such as TLA+ and SPIN, are used in PostgreSQL development. For the last decade, the use of Formal methods and Model-checking in the development of distributed systems has increased, e.g., AWS, CockroachDB, Postgres Pro Multimaster. In my opinion, Formal methods and Model-checking are essential for the efficient development of both complex features of FDW and distributed processing.

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

As mentioned above, I helped to organize the Japan PostgreSQL conference several times, but for the overseas conference, I only participated in the PostgreSQL Conference Europe 2018 and PGDay Ecuador 20123.

Do you think PostgreSQL has a high entry barrier?

For me, yes. Elementary SQL operations were relatively easy, but understanding the internal mechanism was hard even though it was necessary for system design, administration, and performance tuning. So, I investigated the internals gradually, and I also organized technical seminars for a long time to learn PostgreSQL with other users. This learning wasn’t easy and took a long time and effort.

Contrastingly, some younger people who participated in the seminars quickly understood it and overtook me rapidly. So, after all, it depends on the individual.

I, however, believe that anyone can overcome the barrier if they take the time, and it will be a worthwhile exploration to spend that much time.

What is your advice for people who want to start PostgreSQL developing - as in, contributing to the project. Where and how should they start?

I seriously want to know about it :-)

I believe the best first step to tackle it is to participate in commitfest and review patches.

And it is also a good idea to read some documentation that explains PostgreSQL internals to get an overview. I recommend not only my document but also PostgreSQL Internals by Noriyoshi Shinoda and a series of technical blogs by Egor Rogov.

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

As many have already said, I honestly believe that you can use PostgreSQL for both business and side projects for many reasons.

The only concern I have is the so-called free-rider problem. I hope this problem doesn’t affect the development of PostgreSQL.

Anything else you like to add?

I would like to thank all the developers who have developed PostgreSQL from the beginning to the present. And thanks for giving me the opportunity, Andreas!

  1. I record the significant but forgotten contribution of two directors who left long ago: Shigehiro Honda had been translating the official documents to Japanese for a long time alone; Hiroshi Saito helped develop the Windows version for a long time. ↩︎

  2. The program committee chair was Tatsuo Ishii, and ex-committer Takahiro Itagaki was also a member. Itagaki was one of the most skillful engineers I know, and it was fun to work with him. ↩︎

  3. At this time, I met Jaime and gave him my Japanese PostgreSQL book. I bet that he is already able to understand Japanese. ↩︎