Reading time: 9 minutes
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 and raised in India. After finishing my master’s in Computer Application, I joined CMC Ltd, where I worked as a system integrator and helped three big insurance companies digitize their insurance process. We build a well-connected database network for giving visibility of whole business performance. Later I joined BMC Software and IBM. During my BMC Software and IBM tenure, I worked on multiple database technologies like Oracle, IBM DB2, and MS SQL Server. PostgreSQL came into my life when I joined EnterpriseDB (EDB). I have been working with PostgreSQL for the last thirteen-plus years and continue to love it. I have been helping many companies in their Postgres journey (migration, transformation, and modernization of their data platform using Postgres).
How do you spend your free time? What are your hobbies?
I prefer reading books - primarily biographies, DIY and books which give new perspectives, exploring different technologies, watching TV shows/movies (especially SciFi, suspense…), and going for a walk.
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 would recommend the following books which give a new perspective:
- Sapiens by Yuval Noah Harari: Book traces our evolution from ancient to modern technological age: How we manage to dominate the entire planet, helps in discovering the beginnings of human society and culture.
- How to avoid a climate disaster by Bill Gates: In this book, Bill Gates shared his thoughts and ideas on climate commissions, funding the movements or climate solutions, etc.
- Leaders Eat Last by Simon Sinek: In this book, Simon gives his perspective on true Leaders.
Any favorite movie, or show?
- The Matrix. The Matrix 4 is coming soon. I would love to see the sequel as I hope it will bring a new experience for the audience.
- The Hundred-Foot Journey
- The Good Doctor (TV Show)
- White Collar (T.V. Show)
- Friends (T.V. Show)
What would your ideal weekend look like?
I prefer going for a walk, watching TV shows, and sometimes trying new Indian recipes with my wife on weekends.
What’s still on your bucket list?
Skydiving and exploring cities like Rome, which have history and art.
What is the best advice you ever got?
Every challenge in life is an opportunity to make you ready for the next level of your life. So always do your best!
When did you start using PostgreSQL, and why?
I started using PostgreSQL in 2008 when I joined EDB. Our first goal was to show an oracle alternative. As an open-source database, PostgreSQL has all the features and capabilities to meet the requirements of Enterprises. Therefore, in EDB, we used PostgreSQL and added an Oracle compatibility layer to support the companies looking for an open-source option for their new application and were thinking of reducing their spending on databases. We also started supporting PostgreSQL and built a set of trainings and services to educate and enable people on PostgreSQL.
Do you remember which version of PostgreSQL you started with?
The first version I started working with was version 8.2. However, I also worked on older versions like 7.x, 8.1, and 8.2 for supporting customers who were in the process of upgrading their database to the latest version. I still remember that we used to compile the PostgreSQL, version 7.x, 8.1, and 8.2, using source codes to troubleshoot the problem.
Have you studied at a university? If yes, was it related to computers? Did your study help you with your current job?
I have done Undergrad in computer science and Post Graduation in Computer Application. DBMS concepts and Programming concepts learned in college days helped me understand PostgreSQL and its extension capabilities.
What other databases are you using? Which one is your favorite?
I have used multiple database technologies like Oracle, SQL Server, DB2. However, I love PostgreSQL. Mainly for three reasons:
- I have access to the source code, which helps me understand how PostgreSQL works and how I can leverage it for different use cases.
- Community channels help me know what is getting worked on, what is coming and learning from others' experiences. This way, I make myself ready for the future use cases we will support, and it helps me create a vision of where else we will be expanding.
- Easy to use.
On which PostgreSQL-related projects are you currently working?
Currently, I am working on helping our prospects/customers in their journey to cloud and microservices. Almost all our customers are going to the cloud. They are in the process of transforming their existing app using PostgreSQL and migrating their legacy applications to use Postgres in the cloud. I am helping them plan, migrate, and deployment-at-scale in cloud platforms like AWS, Azure, and GCloud. With helping customers, I am working on two different open-source tools:
- Postgres deployment (edb-deployment)
- edb-ansible (ansible collections for the deployment of Postgres and HA)
I also spend time on other open-source projects related to PostgreSQL (like pg_background, sychronize-logical-slots, cloneschema, etc.)
How do you contribute to PostgreSQL?
My contribution to PostgreSQL is helping people either through community channels or StackOverflow.
Any contributions to PostgreSQL which do not involve writing code?
I am helping people deploy PostgreSQL at scale, building different architectures based on people’s needs and helping them to optimize their PostgreSQL for their workloads. Whenever I have time, I look at StackOverflow and help people by answering their questions.
What are your favorite PostgreSQL extensions?
pg_stat_statements and auto_explain. Both of these extensions help in understanding the workload and also help in optimizing the queries for better performance.
What is the most annoying PostgreSQL thing you can think of? And any chance to fix it?
Transaction wraparound, vacuum, bloat, and no failover slot (logical/physical). I am hopeful that bloat and vacuum issues will be resolved with the zheap project. However, for transaction wraparound, I am not sure how we could resolve this problem except by improving autovacuum capabilities.
What is the feature you like most in the latest PostgreSQL version?
I like all the features of PostgreSQL. However, I would like to highlight four important features that change the READ scaling using PostgreSQL standby.
- Ability to reload streaming replication parameters: With this, users can change the primary database configuration on replica without a restart, which helps in the availability of the replicas.
- Logical replication: People can use this feature for upgrading and building the logical standbys for the analytical workload.
- Sharding capability and performance improvement through postgres_fdw: async_capable = true allows a query referencing multiple foreign tables to perform foreign table scans in parallel.
- Partition features/improvement for scale. New features like detaching partitions in non-blocking mode will help a lot of people.
Adding to that, what feature/mechanism would you like to see in PostgreSQL? And why?
I would like to see progress in the following areas in Postgres:
- zheap project which will help with vacuum/bloat
- zedStore compressed columnar storage in PostgreSQL, which will be helpful for analytical workload.
- More features in partitioning and postgres_fdw for sharding and horizontal scale.
- Ability to switch PostgreSQL from READ/WRITE database to READ only, which would help perform switchover with almost zero data loss.
Could you describe your PostgreSQL development toolbox?
I prefer using vim. For some people, it may be a difficult tool. However, if you are familiar with shortcuts, vim is a very powerful tool for development. There are many extensions available for vim, which you can configure through .vimrc for your custom codings.
Which skills are a must have for a PostgreSQL developer/user?
IMO, If you have a learning attitude, you can learn anything. There is so much information available on postgresql.org and on the Internet, that you can start with whatever level you are comfortable with. However, If you have a good understanding of DBMS, including SQL, Programming Concepts, and C, you can pick up quickly.
Which PostgreSQL conferences do you visit? Do you submit talks?
I go to PostgresOpen and PGConf.EU. I also attend the Boston PostgreSQL Users Group (BPUG). These conferences help me to meet people and also help in sharing ideas and learning from others. I will be in PGConf New York 2021 (Dec 2nd to 3rd). If you are planning I would love to meet you.
Do you think PostgreSQL has a high entry barrier?
I think barriers are for new users. Primarily around tooling, management, and High Availability. There are so many tools available for users that it confuses new users about which one to use. Experienced people know which one to use for their use cases. However, new users are looking for standard tools for Management and High Availability.
What is your advice for people who want to start PostgreSQL developing - as in, contributing to the project. Where and how should they start?
Contribution can be of any form. It depends on what role you plan to play for your project or use cases, and you can contribute in that area. For example, suppose you are a new user or DBA or developer. In that case, you can join the pgsql-novice, pgsql-admin, pg-performance, pgsql-hackers, etc., to support the community in answering the questions or asking questions. Asking questions also helps in building a knowledge base in the community.
Do you think PostgreSQL will be here for many years in the future?
I have seen the growth of PostgreSQL and features added to cover different use cases. Community is continuously evolving PostgreSQL and adding more capabilities based on the need of the use cases and feedback. Those who are using PostgreSQL or build their business using PostgreSQL are continuing to contribute to PostgreSQL. So, there is no doubt PostgreSQL will be here for many, many years.
Would you recommend PostgreSQL for business or for side projects?
Whether it’s NoSQL support or building a data platform, or using it for a system of records, PostgreSQL meets all the needs. In addition, its extensibility allows people to develop valuable extensions like PostGIS. In short, PostgreSQL has all that a business needs for developing and evangelizing its digital footprints.
Are you reading the -hackers mailing list? Any other list?
I listen to the following mailing list and respond to questions wherever I can help:
Which other Open Source projects are you involved or interested in?
I am involved in multiple open-source projects related to PostgreSQL. Following are a few of them
- postgres-deployment: This tool lets users deploy Postgres with reference architecture in any public cloud (AWS, Azure, or GCloud).
- edb-ansible: Ansible collections for the deployment of Postgres @ scale.