Amit Kapila



Tags:   postgresql    databases    logical-replication    performance and scalability    parallel-query    hash-index   
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 live in Bangalore, India. I have been working in databases for more than 20 years and with PostgreSQL for about 11 years. I have started my journey of PostgreSQL in Huawei, then moved to EDB and now working with Fujitsu. Prior to that, I have worked mostly with Oracle database.

Amit Kapila

Amit Kapila

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

I like to spend my free time with my family and friends, going to different places. I also like to spend time reading books or other available material on Biographies of Famous Personalities, and Investing.

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

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

The last few books I read (a) A book on Elon Musk by Ashlee Vance, (b) Shackleton’s Incredible Voyage ENDURANCE by Alfred Lansing and, (c) The Intelligent Investor by Benjamin Graham

When did you start using PostgreSQL, and why?

In one of my previous jobs, as part of the project we wanted to integrate PostgreSQL’s SQL engine with an in-memory storage engine. At that time, there was no pluggable storage API for PostgreSQL, so we hacked it at a lot of places for this integration work.

Do you remember which version of PostgreSQL you started with?

v8.3

I studied Computer Science from Motilal Nehru National Institute of Technology. It is among the best engineering colleges in India, so going there helped me to build a good friend circle with a lot of smart people. It did help me in my job but not a lot.

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

I am currently only using PostgreSQL.

I am currently working on Logical Replication related projects. The last one I worked on was logical replication of in-progress transactions. Next, I am working on allowing logical replication of two-phase transactions (at prepare time).

How do you contribute to PostgreSQL?

By doing patch reviews, writing code for features, and fixing bugs. I also encourage and support others at my job to work on PostgreSQL.

Any contributions to PostgreSQL which do not involve writing code?

From time-to-time, I write Blogs and present papers at various PostgreSQL conferences like 1234567891011 which helps to spread the PostgreSQL knowledge.

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

I see that there are a lot of code contributions from various people around the world, and sometimes it takes more time for senior hackers to review the work in detail. And many-a-times, the features need redesign and multiple rounds of reviews which takes quite some time. In the meantime, sometimes authors lose interest and the work never gets committed unless someone else shows interest and picks up the work. I am not sure what is the most appropriate way to deal with it but I do spend a lot of my time reviewing other people’s work.

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

I would like to see enhancements/improvements in Logical Replication, Partitioning, and Performance/Scalability. Those are some of the areas which will further increase adoption of PostgreSQL.

Could you describe your PostgreSQL development toolbox?

I use MSVC on Windows to develop the code, just for the reason that from the past many years I have been using it and became comfortable with it. However, for most of the testing part, I work on CentOS. Apart from that I use Git for source code maintenance, perf for profiling.

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

I think as a PostgreSQL developer, one must know C and good debugging skills.

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

Yes, I do visit and present to various conferences like PGCon Ottawa, PGConf.EU, pgconf.in.

Do you think Postgres has a high entry barrier?

I think entering PostgreSQL is quite easy as there is a community which helps answer your questions and helps in various ways to start being involved in the development.

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

To start with one can subscribe to -hackers mailing list, check the currently in-progress Commitfest, pick the feature of your interest and start reviewing/testing it and share your findings on -hackers. You can also start with fixing bugs that are reported at -bugs . My advice to beginners would be to start with something small and then slowly start working towards more fancier and bigger features. In one of my presentations, I have mentioned how one can contribute to PostgreSQL and my journey that might help people to contribute.

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

Yes, because of various reasons (a) it has an extensible architecture like for data types which allows to extend it various ways, (b) the code is well maintained, so it is easy to enhance and extend it for newer capabilities, (c) there are various companies that provide PostgreSQL support which attracts its customers as there is lesser chance of vendor lock-in, (d) it’s ever growing popularity which is visible at DB-Engines ranking.

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

For both. I think it is already being used by many of the enterprise applications and its use is getting increased with time. In some of the universities students use it in their research projects [1][2]. Then there are various forks of PostgreSQL like TimescaleDB, Amazon Aurora For PostgreSQL, EDB Postgres Advanced Server, Fujitsu Enterprise PostgreSQL, etc. which helps in advancing the PostgreSQL’s ecosystem.

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

Yes, I try to read most of the emails though I don’t go deep in each and every email. I also try to read -bugs but I’m not able to read all the emails there.

Anything else you like to add?

It is really nice working with the PostgreSQL community as there are a lot of smart people who help you to become better at your work.