Andreas Scherbaum · PostgreSQL Person of the Week

Please tell us about yourself, and where you are from.

I grew up in the Boston area. I currently live in the San Francisco Bay Area and have resided here for over 40 years.

Curt Kolovson
Curt Kolovson

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

My wife and I love to travel. I also do volunteer work at Stanford Hospital. I’m a Volunteer Facilitator for San Francisco Bay Area Skywarn, which combines my interests in Meteorology and Amateur Radio. I am also a part-time research collaborator with Eurospider Information Technology AG, whose CEO and company founder is my long-time friend, Peter Schäuble.

Any exercises you do regularly?

I do lap swimming 3 days a week. Swimming is my favorite form of exercise.

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

Two books have helped me make the transition to being retired:

The first book is about recognizing that I’m no longer good at what I used to do early in my career, and realizing that I am now much better at being a research collaborator as a result of my background and past experience. The second book is about having memorable experiences from activities like travel, especially while one is healthy and energetic. The title refers to shifting one’s mindset from working and saving for retirement to spending time and money enjoying it.

What does your ideal weekend look like?

I enjoy going for long walks and going out for a nice meal with my wonderful wife, Mihaela.

What is the best advice you ever got?

Professor John Ousterhout of Stanford used to be a professor at the University of California, Berkeley. At Berkeley, he used to give “mini-sermons” in his undergraduate Operating Systems class. He now calls these “Thoughts for the Weekend”, or something to that effect. One of his mini sermons was about career advice. He said that it’s best to be adaptable and always be willing to learn new things, because technology is always changing and one should always re-invent oneself every few years. That advice has served me well, and it is certainly still true today.

When did you start using Postgres, and why?

I was fortunate to have been one of several graduate students that were part of the original Postgres Project at the University of California Berkeley from 1986 through 1990. Although I was not a major contributor to the project, I did implement early versions of the “Vacuum Cleaner Process” for Postgres. Today, Postgres vacuuming does garbage collection of old multi-version concurrency control (MVCC) versions, and has become known as one of the most hated features of Postgres. However, the original Vacuum Cleaner’s function was simply to periodically transfer old historical versions of tuples to archival storage such as write-once read-many (WORM) optical drives.

Do you remember which version of Postgres you started with?

The original “University Postgres” code.

I majored in Computer Science at the University of New Hampshire (earned a BS in 1990), and then at University of California, Berkeley (MS in 1981, PhD in 1990). My PhD advisor was Professor Michael R. Stonebraker. My research topic was on Indexing Techniques for Multi-Dimensional Spatial Data and Historical Data in Database Management Systems. I presented the results of my research at ICDE 1989 and ACM SIGMOD 1991. My work was also cited in the original LSM Tree paper.

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

I have used several databases throughout my career. My favorite is Postgres. Another notable database was Xpand, a former product from MariaDB Corp through its acquisition of Clustrix. That was a remarkably scalable distributed database, developed by some truly talented people.

I am experimenting with vector databases using pgvector. I am fascinated by vector embeddings and the functionality provided by vector databases. Efficient indexing of vectorized data consisting of 100s or 1000s of dimensions is an amazing technical achievement.

How do you contribute to Postgres?

My recent contributions involved submitting some corrections to Postgres documentation.

Any contributions to Postgres which do not involve writing code?

Yes, corrections to documentation. Having accurate and up-to-date documentation is very important.

What is your favorite Postgres extension?

I particularly like pgvector. I believe that this extension will continue to become popular as the number of vector database applications increases.

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

A couple of things come to mind. First, Postgres should use a thread-based approach as opposed to a process-per-connection based software architecture, though this would be a major change in the core implementation. Second, Vacuuming and MVCC are in great need of being redesigned and reimplemented. These have been problematic for many years.

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

As I said, I very much like the pgvector extension, especially its vector indexing techniques.

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

I would like to see a good implementation of temporal data and time-travel added to Postgres. I particularly like pg_bitemporal, by the very talented Henrietta (“Hetti”) Dombrovskaya. It should become part of Postgres Core. I would also like to see LSM trees added as a core Postgres indexing technique.

Should Postgres have a built-in connection pooler?

Yes. However, PgBouncer is quite good.

Should Postgres have built-in multi-master replication?

No. I have never been a fan of multi-master replication.

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

A solid understanding of relational database and transaction concepts – particularly ACID properties. When I’m interviewing someone, my favorite question is to explain the ACID properties.

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

Yes, I believe that Postgres will continue to be widely used for many years to come.

How do you see the future of Postgres development?

I believe that the Postgres community will continue to add new features. I believe one reason for this is the extensibility framework that was a fundamental part of Postgres from the beginning. Also, AI is playing a key role in tuning Postgres performance. An excellent example is the product DBtune.

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

Yes and yes. It is already widely used for both.

What is your opinion on ORMs?

I am not a fan of ORMs. They cause more problems than they solve, such as overly complex queries. Although they often serve a useful purpose, they are often misused.

SQL versus NoSQL databases?

I am agnostic when it comes to SQL vs NoSQL. One’s choice of database depends on the problem you’re trying to solve.

Anything else you like to add?

I would like to celebrate and give thanks to Prof. Michael Stonebraker for having been the driving force and creative visionary behind the original Postgres concepts. Many of his original ideas are still present in today’s Postgres, including the extensibility features and framework that have played a major part in its remarkably widespread adoption. Of course, the popularity of Postgres is largely due to the amazing contributions of the many contributors in the open-source community. But without the solid foundation of the original “University Postgres”, there would be no Postgres as we know it today.

If there is ever a “Database Test of Time Award”, the overwhelming favorite would have to be Postgres.

Read the original on postgresql.life ↗