Kuntal Ghosh

Tags:   postgresql    india    babelfish    zheap    conferences    high-availability   
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.

Hi, I am Kuntal, and I live in Bangalore, India. I’ve started exploring PostgreSQL during my Master Thesis, and continued it by joining EDB in India. Currently, I’m working at Amazon on Aurora Postgres.

Kuntal Ghosh

Kuntal Ghosh

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

In my free time, I like to relax with my family and friends. In pre-covid times, I enjoyed travelling to different places. I can’t wait for these to resume again. I also love reading books, blogs and papers.

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

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

Currently, I’m reading Daniel Kahneman’s masterpiece - Thinking, Fast and Slow. I highly recommend this book to anyone who is slightly interested in knowing how the mind works. You’ll be lost in your thoughts after reading each chapter. Otherwise, my other favourites are ‘To kill a mockingbird’, ‘This must be the place’, ‘Crossing to Safety’ and many more. In comics, I’m a die-hard Tintin fan.

Any favorite movie, or show?

Actually, the list changes quite often. But, there are a few that I enjoy re-watching like ‘The Secret Life of Walter Mitty’, ‘Before Sunset’, ‘Life Is Beautiful’, any Indiana Jones movie, especially ‘Raiders of the Lost Ark’, Dollars Trilogy, the Star War series.

What’s still on your bucket list?

Since I love travelling, the top three from my list include a trip to Faroe Island, driving the Iceland’s Ring Road, and experiencing the wilderness of Masai Mara.

What is the best advice you ever got?

Keep asking questions until you understand.

Tell us about your Master Thesis? What was the research topic?

As part of my master’s thesis, I had to implement selectivity injection for base predicates and join predicates. Our objective was to explore the selectivity space of TPC-H and TPC-DS queries and find the number of plans that a relational database optimizer generates for a single query in that space. For that, I hacked the PostgreSQL 9.6 optimizer and implemented base predicate and join predicate selectivity hint injection. Using the same, you can vary the selectivity of a predicate (from 0 to 1) and obtain the plan generated by the optimizer. There were a few interesting findings - more than 90% of the space was covered by 5% of the total plans identified in the space. And that number can be reduced to a small absolute number incurring only marginal increases in the estimated query processing costs.

I did my masters in computer science at the Indian Institute of Science, Bangalore, India. As part of the system course work, I enrolled in database systems and the first lecture was on IBM System-R. After attending a few database lectures, I was certain that I would like to pursue my career in databases.

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

So far, I’ve only used and explored PostgreSQL and two PG forks - EDB Postgres Advanced Server and Aurora Postgres.

Currently, I am working on a feature called, Babelfish for Aurora PostgreSQL. This is a new extension for PostgreSQL that enables PG to understand commands from applications written for SQL Server. With this new extension, PG can directly communicate with a SQL Server client driver using TDS protocol. Additionally, PG can also parse and execute a SQL command, procedure or function written in T-SQL syntax. This has been open-sourced as well - Babelfish for PostgreSQL.

How do you contribute to PostgreSQL?

  • Reviewing or authoring patches in commitfests
  • Writing blogs on PostgreSQL features
  • Participating and presenting in PG conferences

What is your favorite PostgreSQL extension?

pg_stat_statements - this is very useful when you want to track the planning and execution statistics for all the queries executed in the engine.

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

Since PG maintains multiple versions of a row in the heap pages itself, often we’ve seen the customers complaining about table bloat. Additionally, the Autovacuum process often doesn’t do a good job in removing the bloat quickly. In EDB, we’ve attempted to reduce the effect of bloat using an undo-based storage, called ‘zheap’. There are still some open problems in ‘zheap’. It would be great if we could solve them and get this awesome feature committed.

Could you describe your PostgreSQL development toolbox?

All very basic - a linux box with tmux, vim, git, gcc, gdb, valgrind and perf. I however use a few vim plugins including cscope, fugitive, ctrlp, bufferline and cctree.

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

A lot of enthusiasm to learn database internals and good debugging skills

Do you use any git best practices, which makes working with PostgreSQL easier?

Frequent check-in of codes using git commit –amend and produce a patch using the git format-patch command.

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

Yes, I’ve presented in PGCon, pgconf.in.

Do you think PostgreSQL has a high entry barrier?

No, I don’t think so. It’s really well documented from both an user’s and a developer’s perspective. I think this is one of the reasons why a lot of university grads pick Postgres to implement their ideas. And, in my experience, the community is very welcoming as well.

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, I would suggest subscribing to the PG -hackers mailing-list. Once you have some understanding of the community activities, you can start reviewing and testing small patches and share your opinions. You can also check currently in-progress features in Commitfest. I would also recommend subscribing to Postgres weekly - weekly newsletter for PG news and articles and Planet Postgresql - different blogs on different PG features.

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

Yes, of course. There is a growing trend of adopting open source products. And in databases, PostgreSQL is already playing a significant role in that.

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

I’m on two mailing lists: -hackers and -bugs.

Anything else you like to add?

Stay safe. I hope to see you all at the next conference!