Ivan Panchenko



Tags:   postgresql    pgconf.russia    russia    mountains    perl    pg_probackup    sql    education    community   
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.

My name is Ivan Panchenko, I live in Moscow, Russia. I am 49 now. Married, 5 children (already grown up).

I am a professional astrophysicist, but after my PhD I have shifted to software development. Now I am a co-founder of Postgres Professional, together with Oleg Bartunov, Teodor Sigaev and other colleagues.

Ivan Panchenko

Ivan Panchenko

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

My job is my hobby… but I also like to travel. This is my second hobby. I like different kinds of travel, from car voyages to mountain climbing, and prefer to do it with my family. I have been in many parts of Russia and former Sovet Union countries, in most of European countries, in Asia and America. Places are so different, but each of them has left something in my soul.

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

This is my Facebook page.

I rarely use other social networks due to lack of time.

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

Ok, mainly I read in Russian. The last one is Brisbane by Evgeny Vodolazkin, a modern Russian author. It’s a very good story giving a specific, unexpected view on modern and recent life. Yes, I can recommend it. Also I would like to recommend Russian classical literature, which is translated to many languages: first of all, the novels of Dostoevsky: The Idiot, The Adolescent, Demons. Also I would like to mention Mikhail Bulgakov’s with his famous Master and Margarita, and The White Guard.

Tell us about the book you wrote.

I’m not Dostoevsky, but I have also written a book. It is a children popular science book, The Unknown Sun. It’s a colorful humorous book, where a dog and a flea guide the young reader through numerous questions about the Sun, the Universe and Physics in general. The book can be read in different ages, starting from any page, and sometimes even upside down. Now the book is only in Russian, but an English translation is also planned.

The Unknown Sun (by Ivan Panchenko and Elena Kirichek)

The Unknown Sun (by Ivan Panchenko and Elena Kirichek)

Any favorite movie, or show?

I like the Star Wars (mainly, Episode IV), Lord of the Rings, Titanic. But my specific favorites are movies with astrophysical basement. These are Interstellar and Contact.

What does your ideal weekend look like?

I prefer physical activity. To fly to Caucasus to climb a mountain. Or to stay near home and enjoy Moscow environs. The city is surrounded by forests, so it’s easy to find a place for a forest trip or run, or to take part in trail running or rogaining competitions, which are held dozens of times per year. Recently I’ve covered 57 kilometers in a “Tour-Marathon” forest race, together with my wife.

What’s still on your bucket list?

I hope to write at least two more popular science books, Physics for Swimmers, and Easy Calculus.

Also I would like to return to teaching.

In the Postgres area, my main and hardly implementable dream is a coroutine-based core, which will help to utilize the hardware resources better and to allow up to a million simultaneous connections on a single server.

What is the best advice you ever got?

My father told me 30 years ago that it’s time to learn Chinese. He managed to forsee the growing significance of China. I did not follow this advice, but now I feel that he was right.

When did you start using PostgreSQL, and why?

In 1999. I was looking for a free DBMS for a web bookstore, which I was developing at that time. The bookstore required to separate the different suppliers’ workspaces inside a single database. Having no RLS, I’ve implemented it with views, rules and table inheritance. While doing that I’ve found that the documentation is perfect, and the DBMS itself is very convenient and stable (if not very, init(1) could restart it :) .

Do you remember which version of PostgreSQL you started with?

It was 6.4.

I’ve graduated from Moscow State University Physics Department, but also took a minor at High Computer School. Both helped me. I am sure that studying Physics gives an experience of mental modelling and formalization of reality in logical schemes, which is very useful for software developers. Later I continued working in the University as a teacher of Astrophysical Computing for 13 years.

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

None. Postgres is enough for me, and it is my favorite. Also I have some experience working with Progress, FoxPro, MySQL and Oracle. But PostgreSQL is still the best.

I am working on Postgres Pro, which is one of the commercial PostgreSQL forks. It has multiple features which are hard to implement and which require a long time to push to the community version, such as 64-bit xid, storage-level data compression, advanced partitioning, etc. The most important project of Postgres Pro now is implementing transparent database sharding for OLTP workloads.

How do you contribute to PostgreSQL?

Being a company COO, I do not have enough time to code myself, though I really love coding. My job is to organize the company work processes, including its contribution to PostgreSQL. See below.

Any contributions to PostgreSQL which do not involve writing code?

Personally I am the organizer of Russian PGConf events. The main annual events take place in Moscow, but also we hold meetups in other Russian cities. This Spring, PGConf.Russia went online with ~1900 total participants, while the largest offline event (2020) gathered ~700 people. We hope to organize the next offline event in October 2021.

As for the Postgres Pro company, we also contribute with Postgres books (now in Russian, but the English translation is pending), articles and support of teaching PostgreSQL in universities.

What is your favorite PostgreSQL extension?

Probably, pg_stat_statements. It helped me to solve database problems many times. Another one is PL/Perl. I have used it a lot and hope to release a small open source library for it.

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

Probably, these are the shared buffers, which are uniform and rigid. We cannot change the shared_buffers on the fly, and cannot effectively use the memory on NUMA hardware.

Of course, the name. I am tired of “Postgreee”. Let it be simply Postgres. It is easily and unambiguously pronounceable for virtually all languages.

Inconvenient full text search at the postgresql.org website. Shoemaker’s son always goes barefoot.

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

I cannot select one. Many useful and great features in Pg13, as well as in the recently released Pg14, but no one looks significantly prominent in comparison with others.

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

My personal opinion is that PostgreSQL development is too slow. We all should increase our effort. Many important features and significant architectural changes are awaited, like really useful pluggable storage, direct I/O, cloud I/O, effective NUMA support, by-database replication, logical DDL replication, connections number scaling and parallel vacuum.

Could you describe your PostgreSQL development toolbox?

I prefer simple “g” - tools: gedit, gcc and gdb. Of course, git and grep. Shell scripts and gmake to run the tests.

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

I wouldn’t like to tell trivial stuff about C, coding guidelines etc.

A PostgreSQL developer must be first of all a careful thinker. The code is rather complex, and side effects are quite possible, especially when working with concurrent access. It is very important to think first and only then hack.

Another skill is communication. One must be able to not only code, but also to promote his result to our conservative community.

Using PostgreSQL is easier than developing it. To use it effectively, one must understand how the queries are planned and executed, and which resources are needed for the query execution. This knowledge is more practical than theoretical, and it comes with experience.

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

As a PGConf.Russia organizer, I visit most of the Russian PostgreSQL events. In addition to PGConf.Russia, there are PGDays and PostgreSQL sections at HighLoad++ and other large conferences. I like PGConf.EU very much: it is a warm and comfortable conference, which combines high level of talks with a friendly social atmosphere. Hope it will come back soon. I have also spoken at PGConf.Asia which is very promising, large and friendly, PGConf.India, and a small but important pgDay Israel.

Do you think Postgres has a high entry barrier?

No. I entered Postgres easily when the barrier was much higher. The problem is that people are less prepared now. They want GUI, clouds etc. There are lots of clouds with their own barriers, and there is no canonical GUI for Postgres. It is a real problem. Postgres needs a more friendly and more direct ecosystem, with GUI, ETL, ECM engine, web services etc.

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

Select a task which you are ready to struggle for. Prepare to be deeply involved. PostgreSQL is interesting, but requires hard work and deep dedication. If you succeed, the result will reward all the effort.

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

One of Bruce Momjian’s lectures is “Will PostgreSQL live forever?”. He says that it has a potential for this, and the key to the long life is the flexibility and extensibility of PostgreSQL itself and of the community. Really, PostgreSQL is a very mature DBMS with a systematic elaborate design (mostly :) ). This gives it an outstanding ability to be flexible and extensible. The community is growing and evolving. Postgres has a real chance to become a World’s DBMS#1.

There is no doubt that Postgres is flexible enough for small changes. This provides a long, but limited life. More interesting is how the community and code are ready for deep architectural changes, which cannot be reduced to a series of step-by-step annual major patches? This is a challenge of the future. I think that the community has to get prepared for a larger release super-cycle, which would introduce great changes. I believe this is possible, and this will give Postgres practical immortality.

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

Yes, I can recommend Postgres for any projects which need to store data. If being used correctly, it can solve any task.

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

Unfortunately, I have no time for reading the mailinglists completely. I do it from time to time. Mostly starting with full text search or commitfest web site.

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

Formerly I was following and contributing to HTML::Mason, Nginx and some minor libraries and tools. Now I am focused on PostgreSQL and related Postgres Pro projects, such as pg_probackup and shardman.

Anything else you like to add?

Thank you Andreas for this interview series. I think that it helps community members to be more open and friendly to each other.