Tatsuro Yamada



Tags:   postgresql    japan    pgconf.asia    pgcon    jazzsamba    oracle_fdw    pg_hint_plan    pg_plan_advsr    adaptive   
Category:   Interviews   
Interview conducted 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.

I was born in Hokkaido, a prefecture in the north part of Japan, and I live near Tokyo now. I work as an in-house database engineer at NTT Comware, providing technical support, product verification, and human resource education for PostgreSQL. And I’m contributing to the PostgreSQLcommunity by developing useful features for DBAs, and by reporting problems.

Tatsuro Yamada (right)

Tatsuro Yamada (right)

The rightmost side of the picture is me, Tatsuro Yamada. It was the NTT OSS Center team with Tom at PGCon 2016.

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

I like to go camping in the spring and autumn, and to the sea in the summer. When camping, the fire makes me feel relaxed and peaceful. I also enjoy having a BBQ with my family.

At the beach, even if I don’t swim, I enjoy taking a walk on the beach in the sun and feel the sea breeze.

These are the ideal ways for me to spend my holidays, even if I only do them occasionally.

When I can’t go out, I enjoy listening to music, watching movies, and playing games. I wrote about each of my favorites below.

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

Any favorite movie, or show?

For movies, I often see the action, science fiction, and comedy genres.

The following are some older movies, but some of the more memorable ones I’ve seen in the last few years. Whenever I drink beer with my friends, I try not to look like a “Hangover” movie.

Movie:

I will also share my favorites about my games and music.

I play more often on PS4 and Nintendo Switch than on my laptop.

The following are my favorites. Especially “Uncharted” will be made into a movie, so I’m looking forward to it. My first play of “Diablo 2” was Twenty years ago?! (time flies).

The remake of “Diablo 2” will be released this September, so I’m thinking of playing it if I get permission from my wife.

Game:

When it comes to music, I like the “Jazz Samba” genre. The following are my favorites. The piano is good, but I especially like the drum rhythm patterns. Its grooves and arrangements are not found in computer music. If you are interested, please listen to it on youtube.

Music:

What’s still on your bucket list?

These are what I want to do most recently.

  • Participate in the Oktoberfest in Berlin
  • Walk on Ipanema Beach
  • Publish a book
  • Submitted a paper to an academic conference and accepted

I want to do these things in my 50s and 60s in the future.

  • Create a “Shoot them up game” on a game console
  • Go to a Yakitori restaurant with grown-up children
  • Start surfing (longboard)

What is the best advice you ever got?

“It’s never too late to learn/start something.”

I don’t remember when I learned the phrase or from whom. I think it came from my parents or a book. It is often better to start early, but I should do what I want to do, even if I am too old.

When did you start using PostgreSQL, and why?

When I started using it for commercial use, the version was 9.2.

It was the time when I moved from NTT Comware to the NTT OSS Center. After moving there, I immediately had to provide technical support for a mission-critical, large-scale billing system migration from Oracle to PostgreSQL. But before I moved, I was a DB engineer specializing in Oracle. Therefore, it wasn’t easy for me to provide technical support and catch-up with PostgreSQL on the same time.

Now that I think about it, it was a challenging experience to get it right. But it was an excellent project to train me as a PostgreSQL engineer.

While supporting the migration, I learned that I could extend PostgreSQL through a mechanism called Extensions. I remember thinking that this was exciting because it allowed us to create what we wanted and needed. By the way, I spoke about this migration as a case study presentation at PGCon2016.

In addition, at the NTT OSS Center, it was fun to join and work with Japan’s leading PostgreSQL developers, such as Mr. Fujita, Mr. Horiguchi, Mr. Sawada, and Mr. Amit. I am grateful to all of them. Significantly, Mr. Fujita (committer) helped me as my mentor until I was able to develop a feature in the community. So I’d like to take this opportunity to thank you, Fujita-san!

pg_plan_advsr.

This extension provides automatic tuning for plans I developed in 2018. It’s pretty much like an adaptive execution plan or adaptive query processing in commercial DBMSs and Spark 3.0. As with any DBMS, the more complex the query, the more cost estimation errors occur during planning. In pg_plan_advsr, by feeding back the information when executing the query to the next planning, it is possible to correct the estimation error and generate a more appropriate plan than the previous one. If you are interested, please see my material at PGConf.EU 2018 or PGConf.Russia 2019.

How do you contribute to PostgreSQL?

I contribute in two ways: development and non-development.

Regarding development at the PostgreSQL core, I mainly contribute by developing features that help DBAs and users. The following are examples which got committed:

  • progress reporting features for ANALYZE, CLUSTER, and VACUUM FULL commands
  • psql tab completion
  • psql meta-command (\dX): show the list of extended statistics
  • reporting issues

For extensions, I contribute as a committer for oracle_fdw and an author for pg_plan_advsr.

In terms of non-development contributions, I attend and present talks at conferences and Meetups. Also, I’m an organizer member of PGConf.Asia.

What is your favorite PostgreSQL extension?

pg_hint_plan.

The optimizer hint is a controversial topic, but this is my favorite extension. When the plan tuning is successful and the execution time is reduced by more than half, I am thrilled and want to scream. Yeeeaaahhh!

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

Extended statistics.

In the previous question, I mentioned that pg_hint_plan is my favorite. However, I think it is ideal for getting an efficient plan without plan tuning, no matter how complicated the query is. I think one of the ways to achieve that is to use extended statistics.

Therefore, I hope that the development of extended statistics will progress.

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

I’d like to see Advising features.

For plan tuning, which I am interested in, the current situation requires knowledge and experience for DBAs and users to be familiar with optimizer tips and extended statistics. However, some people are not sufficiently prepared due to a lack of time. I think the advice feature is important to assist such people. Of course, it is also helpful for skilled DBAs.

My pg_plan_advsr automatically finds an efficient plan and proposes it to users. If the ability to suggest alternative plans, indexes, and extended statistics exists in PostgreSQL core, it helps DBAs and users. Since the discussion has started with -hackers, I would like to contribute based on my experience developing and using pg_plan_advsr.

Could you describe your PostgreSQL development toolbox?

vi, ctags, gcc, gdb

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

For Developer:

  • Outline of Database management system
  • Computer Science
  • C Language
  • DBA experience
  • English

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

I attended PGCon, PGConf.Eu, PGConf.Russia, and PGConf.Asia as a speaker. All were great conferences, but I especially like the atmosphere of PGConf.Eu. I would like to participate again if I get the opportunity.

Do you think Postgres has a high entry barrier?

Whether or not there are barriers for participating in the development of PostgreSQL depends mainly on individual qualities. In my case, I used to only use the Japanese language before joining the community, so English was the most significant barrier for me. Unfortunately, it is still the case, but I’m sure I’ll get over it someday.

If the question was asking if there are any barriers for using PostgreSQL, my answer is “yes”. I feel that PostgreSQL still lacks helpful features for DBAs compared to other commercial DBMSs. For example, the progress reporting features (for ANALYZE, CLUSTER, and VACUUM FULL) that I contributed are useful to support the system’s stable operation. By using them, the DBA can confirm whether the processing will be completed or not within the allotted maintenance time. These are valuable features for the DBA. In the future, if the number of features helps to improve the DBAs work, the usability will improve, and the barriers will go away.

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

The most meaningful thing is to find a mentor or collaborator because you can consult with them or ask for cooperation if you face a problem with development. To find a mentor, I think it is crucial to visit conferences and Meetups and interact with various people, not just on the mailing list but in person. (If you find me after the current Corona situation has improved, please feel free to talk to me. Let’s have a beer together and talk about PostgreSQL.)

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

Yes.

The community’s development power is the selling point of PostgreSQL, so I suppose it’s okay as long as the community is not divided and loses the power by forked projects. To maintain a good relationship between forked projects and PostgreSQL, I think it would be better to share experiences and bugs in a forked project with the PostgreSQL community. And improve them together. Again, I think the important thing is to maintain a good relationship with the forked project.

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

Yes.

NTT Comware, where I work, is a group company of NTT, a Japanese telecom company, and uses PostgreSQL in many systems that support information and communication infrastructure in Japan. Of course, because it is the infrastructure, it takes some preparation and ingenuity to master PostgreSQL. However, I can say that PostgreSQL is at a level that many people can fully utilize.

Even in fields other than business, for example, research and development. PostgreSQL’s extensions mechanism is a good infrastructure that allows researchers to try what they want to do. If they make their work an extension and share it with the community, I think it’s good for them because there is a chance that various people will use it and give feedback.

Are you reading the -hackers mailinglist? Any other list?

I read -hackers and -committers when I have time. I also subscribe to -bugs , -advocacy , -general , -performance , but I rarely read them.

Which other Open Source projects are you involved or interested in?

Volumio.

I often play music by Volumio as a network audio player made with Raspberry Pi. I would like to contribute gratitude someday.

Anything else you like to add?

If you have any questions or suggestions, please feel free to email me.

Finally, Thanks for giving me the opportunity. Andreas!