Simon Riggs



Tags:   postgresql    high-availability    scalability    clustering   
Category:   Interviews   
Interviewed 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, your hobbies and where you are from.

I live in the UK with my wife, and spend a lot of time with my extended family, though “kids” have now grown up and left home. Born a Londoner, so my favourite drink is Tea, but I’m partly Irish with a small hint of Chilean blood.

I like to be active if I can and walk every day. I also enjoy hill and mountain walking, and anything that involves adrenaline, like skiing or Tough Mudder. I’ve trained at Aikido for many years. I’ve travelled to more than 50 countries and like to meet people and try new things, pursuing my interests in History, Archaeology and collecting art and sculpture.

I started programming when I was 13, writing computer games, but don’t play much these days. If I play anything these days it would be more likely Cribbage or Scrabble, and we play regular quizzes.

Simon Riggs

Simon Riggs

When did you start using PostgreSQL, and why?

I was working as an Enterprise Architect for a bank and realised that the (then) commercial databases and environments could be replaced by open source systems like Linux and PostgreSQL. PostgreSQL caught my attention because of the maturity of the optimizer and the adherence to common sense and standards. I could see it just needed a couple of additional features, so I got involve to add online backup and Point in Time Recovery (PITR).

Do you remember which version of PostgreSQL you started with?

PostgreSQL 7.3/7.4, but started developing during PostgreSQL 8.0 release cycle.

Yeh, I went to London University and sometimes studied Astrophysics. Afterwards, I worked for a while analyzing satellite data using databases in innovative ways. So yes, my study set me on a path to my current job.

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

I admire many other databases for their ideas and contributions to the very deep pool of knowledge around database systems. Postgres was from its very start an ambitious attempt to improve database technology and remains so today. It’s hard not to say Postgres when its the most cited database in research, the most influential technology in business databases with dozens of commercial forks based upon it (Oracle7, sqlite, Illustra, Netezza, plus all of the modern ones) and the one everybody else likes to copy or compare themselves against.

BDR, the most advanced clustering extension for Postgres.

How do you contribute to PostgreSQL?

When it needed coding, I coded it, but I’ve done a lot of design work and reviews also over the years.

I’ve spoken a lot to small and large groups to show people what PostgreSQL could do. I work behind the scenes to encourage others and develop feature ideas.

Any contributions to PostgreSQL which do not involve writing code?

Many and various things over the last 16 years.

I wrote the PostgreSQL Admin Cookbook, now in its 5th edition. That helped advocacy by showing people the power of PostgreSQL, while explaining how to manage it.

My main contribution these days is to fund others who contribute. Logistics makes the world go round.

What is your favorite PostgreSQL extension?

BDR! I’ve put a lot of love into it over the last 8 years and its now got the features I’ve wanted to see.

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

Dunno, fixed lots of annoying things, I’m sure I’ll fix a few more yet.

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

For me, the “latest version” is the one we’re working (13) on rather than the one we released most recently (12).

My favourite feature is “Allow hash aggregation to use disk storage for large aggregation result sets (Jeff Davis)” because I know Jeff was working on that for many years and there were significant problems to be overcome in the infrastructure. But now we’re able to measure memory usage on the server better we’ll be able to tune things better than we do now, so this is just the start.

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

Full historical database, to allow us to keep a full record of previous changes. Blockchain reminds us that the provenance of data is critical to truth and trust.

Could you describe your PostgreSQL development toolbox?

I don’t like fiddling with tools much but I adopt new tools regularly if I hear of some additional benefits from doing so. I spend my time thinking about the features, not the tools to create them.

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

Understanding what people use databases for and why they sometimes use other tools. If you don’t know why you’re doing something then you lose focus.

Clear thinking and rationality.

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

I can’t really parse this question. Git is wonderful and essential, I use it and so should many people, but it doesn’t have that much to do with PostgreSQL.

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

Conferences are very important as a way to create dialog. People come to hear various kinds of talk and I go especially to listen to what people want and need. I go to as many as I can, but there are so many now that I have to limit that. Yes, I usually submit talks.

Do you think Postgres has a high entry barrier?

SELECT 1+1; Seems easy enough to me.

Database technology is a deep pool of knowledge and the various ways it is used is a very broad subject. You shouldn’t be put off swimming just because the ocean is deep and wide.

The NoSQL movement was really about identifying a useful subset of commonly used actions, reminding people not to focus on the deepest parts of the ocean when only 1m of water is enough to swim in.

More work is always required to simplify and explain things, not just for beginners but for everybody.

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

If you have genuine goals that can be achieved with database technology then you will quickly think of additional features that need work. Start small and build your confidence.

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

I hope so.

I’ve done a lot to encourage new developers to come forwards and help them develop their talents; that is essential to the project.

Companies need to step up and fund contributions too. Many do, but not all.

In fact, anyone who makes money from PostgreSQL in some way should contribute back to it, to some extent. Developers, companies, even users can contribute directly. For example, users can give feedback, tweet, write bug reports and many things.

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

Not sure what a “side project” is. If you do something then you should do it properly. And if you care about the outcome, you should use Postgres. That’s why Postgres is popular with large enterprises, growing businesses as well as government and non-profit sectors.

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

Not as much as I did, there is too much going on to read them all. I prefer to focus on specific activity, so if I’m there it’s never to just read.

What other places (IRC, Slack, Mailinglists, …) do you hang out?

My house, my town, outdoors etc..

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

I’m mostly involved only in database technology.

Anything else you like to add?

Thanks for organizing.