Why is Postgres popular?
Michael: Hello, and welcome to Postgres fm,
a weekly show about all things Postgres.
I am Michael, founder of PG Mustard, and this
is co host Nikolay, founder of Postgres ai.
Hey, Nikolay, what are we talking about today?
Nikolay: Hi, Michael.
Uh, why Postgres and why Postgres in the past?
Why Postgres had success still is having success, obviously.
Let's also a little bit, talk about what, we should expect
in the future in terms of Postgres popularity, usage.
And so on.
Michael: Yeah, I'm really looking forward to this one.
We have a couple of inspirations.
I wanted to give a shout out to Ryan Booz,
who is starting a community blogging event.
And this "Why Postgres?"
is gonna be, I think, the first topic there.
So maybe we can consider this our entry, our audio entry to that, event.
And, also I saw a tweet not long ago, somebody asking who or
what made Postgres cool, which, had a lot of interesting answers.
And I think it'd be, I'm looking forward
to hearing your takes on this as well.
But first, actually quickly, I did want to apologize because last
week, I said that, amcheck doesn't guarantee no false negatives.
And I was, completely the wrong way around.
It's no false positives,
Nikolay: a huge mistake.
Very huge.
Yeah.
Well, I
Michael: don't, trust me.
Basically
Nikolay: joking.
I'm joking.
I also, I also need to confess, , I also made
mistake and I actually made it in reality.
I, only recently understood, some, case when, like amcheck
when we check a lot of indexes, we usually do it in one
single thread and if it's some temporary server, not
production, of course it does make sense to parallelize it.
And, uh, only in po.
August 14, it was actually implemented in, in CLI tool, pg_amcheck.
So dash J appeared so worth checking and
try to use even the, for older post version.
I personally never tried, but I suspect it should
work as well for, for old versions of I checking post.
, you can use a newer client.
Right.
Okay.
Enough confession.
I also want to thank you everyone again for feedback.
This is super important and I also want to
send everyone, uh, like some words of support.
So in hard times, I hope work distracts from bad news and so on.
And I hope Postgres isnt well in, well
conditioned everywhere, well maintained and so on.
Michael: absolutely.
Well, so why Postgres?
Should we start with a little bit of history?
So maybe we could do a quick summary or do you want to start with where
things started to change or, , where would you like to start with this?
Nikolay: Well, being a human, I always have some right?
When, uh, I, uh, stopped and needed to choose some free database system.
, I, I moved away from Oracle and SQL Server.
Um, MySQL was considered bad very quickly in my mind, and I chose Postgres
because it, behave much better and closer to what I learned at university.
So yes, unlike my sequel, this is, was my
reason why Postgres, but was very long ago.
Almost 20 years actually.
Michael: So are we talking, SQL Standard Compliance or are we
talking around, acid compliance or how would you summarize that?
Nikolay: SQL Standard compliance is one thing and indeed a very good reason.
And it was so, but also, like logical, predictable behavior, you expect
something, but, , with my sequel, for example, this terrible thing we had
with my sequel that time, if you have, February 28 and add one day, you end up
having March 3 or something like this, or date 0 0 0, uh, behavior of nulls.
Although, although Postgres behavior of nulls also interesting.
So in MySQL, I started to encounter too many things and some, not
only a SQL standard, but for example, principles, A C I D principles.
In MySQL.
If you need the full check search, you needed to use my sum.
So my sum required repair table all the time because it was not,
, didn't follow a C I D principles in terms of wall, records and so on.
So pos behave much better.
But it had limitations and lack of some functionality,
of course, like replication at that time and so on.
So we needed to deal with slowly then long debt.
It was not fun, but still, this, this is my path.
But, at that time, I felt clearly that POGO is
considered as not number one choice for most people.
And I felt it clearly, like until like 2014,
I was thinking like, PO this is for spec.
It's like free bsd, you know, most people
choose Linux, but you choose free bsd.
Or even, even not, maybe it's not good comparison.
It's like Linux compared to Windows for personal computers.
You choose it, you know why, But most people still prefer Windows, right?
This is, this was my feeling at that time.
But of course, uh, I thought it's okay.
Like, we have strong reasons.
we won't switch to my sequel.
Never.
We know why, but it's okay that most people
around are preferring different database system.
Well, poor of those people, right?
This was our, way of thinking.
I mean, our, in terms of like community, I remember this.
And sometimes of course, we were even
blamed that we, advertise pogs too much.
It's like, sect, almost sec, you know?
And it was until 2000 13, 14, 15, when suddenly things changed.
They changed earlier, I think, but around 2013, maybe 12, we had
some point, when Pogo suddenly became a winner compared to MySQL.
But why, right.
Michael: Yeah, I want to go back, quite
far to introduce when some things happened.
I think we'd want to talk about, in a moment.
But for people that don't know, I think some dates will be quite useful.
I've done some research and just going right back.
If we go back to when a lot of this all started, there were a lot of research
projects in the, in the seventies and eighties that, a lot of these projects
came out of universities, Ingres and Oracle came out in the seventies.
Those, actually have similar roots.
In the eighties, Postgres started as a post ingress
project, and even from the very beginning it had a lot of
the foundations I think have proved very important today.
So things like its extensibility and vcc.
Then we've got a few other important dates
here that I think we might come back to.
We've got Microsoft SQL Servers first version in 89.
then we've got Postgres being released under an MIT style
license, which I believe is the Postgres license in, as 94.
I think that's been really important.
Then, Postgres 95 added SQL support or sql
support feels like a really important date.
And then, I've got a bit of a gap.
In fact, actually another important thing
in 95 was my SQL version one came out.
So I think that lays a lot.
Nikolay: 95 was absolutely amazing year.
Actually, internet started to work actually that year, I think.
And not only you mentioned PSUs and my, but if we look at
languages, Java, Java Script, PHP and Ruby, all were born in 95.
Can you imagine?
Michael: Wow.
Yeah.
And Windows 95 was a massive release as well, wasn't it?
Nikolay: Yeah.
So it was like, I think 95 and maybe 2014,
some changing years, like in many areas.
Michael: Yeah.
So I was gonna say that, , it's probably massively overgeneralizing.
And I think your free BSD example is great because for any
small system there are always going to be some really passionate
people that there have been people that have been using Postgres.
Nikolay: I want to give this whole time, I want to take
my words back, not FreeBSD, but Linux versus Windows.
This is a better feeling actually.
Michael: Okay.
Yes.
I guess the thing here though is we've got, with Postgres, we've got
a, a changing of the guard I feel a little bit, whereas I don't think
that's happened with Linux and Windows for personal computers yet,
Nikolay: maybe Okay.
Slowly this technology is winning more and more hearts
because it's just better because it follows better principles.
For example, very strong CLI everywhere.
PSGs has excellent cli and Linux has excellent cli and principles like
don't write too much if everything is fine, better keep silence, right?
Like if success just keeps silence, exit
code, like return code, and that's it.
While other tools can very chatty, right?
This is small things and these principles, uh, very like
Linux is, is all about a lot of CLI tools, so many tools.
And Postgres has very strong psql and a lot of
things surrounded there are many common things here.
So FreeBSD maybe it's too different compared to Linux.
Michael: Yeah, fair enough.
So, my understanding is that for a lot of these early years, if you had a
serious workload, chances are you're gonna be running on a paid for product.
Probably something like either Oracle, maybe even ibm.
, but then as time went on, SQL Server or Microsoft SQL Server became
the main competitor to Oracle for these big serious workloads.
And then for smaller workloads, or for hobby projects,
lamp Stack became popular with MySQL as the database.
Uh, I think things like WordPress picking MySQL as
its backend seemed really important for its adoption.
So I think we had like a, a phase where if you had money and you were a
serious company, you'd go for one of these paid for proprietary systems.
And if you didn't or you were a startup, maybe if you,
if you wanted sequel database, you'd go with MySQL.
Is that roughly your understanding, like how you saw it as well?
Nikolay: Yeah, and also important availability and for, for those
who don't want to pay some websites and like apps and so on, startups
for them it's important availability and how easy, like the cost
of maintenance when you start, like how easy to start and so on.
And for Postgres I remember very well, it was for a
long time it was blamed for high barrier of entry.
So it's very difficult for new users to start with it.
For example, I installed it and I cannot connect to it.
This was quite long problem for podcast.
Something for maybe smart people, but barrier
so high, why should we spend time for it?
MySQL is, it's easy to start and easy to maintain in
the beginning, but I remember actually in 2009 or 10,
I attended MySQL, uh, user group in Moscow, Russia.
And I remember that it was, about performance and they, at the time
already, they compared themselves with Postgres and they admitted that
Postgres is winning in performance for one node at that time very well.
Like they said, you know, Postgres is better here, here, here,
here, because at that group, MySQL developers were, I mean, hackers.
They also were there and they are discussing like we
compare my SQL with and we are losing what to do about.
. And it was interesting because also Postgres had
the image that, uh, it's also slower than MySQL.
It still has in many minds actually, but it's not so.
And it, it's interesting, I realized that,
Postgres is good even among MySQL users and fans.
So it's controversial, but I think for popularity it's super important.
how accessible it is, for example, does your operational system
already have it installed or it can be installed in one line?
and, uh, also providers, if you create some website, uh, you have
some hosting, Is MySQL available there or Postgres available there?
If only MySQL, and it was so in many cases, you will
prefer MySQL because it's available, you don't need to
install it and provide gives it to you very quickly.
It's important, right?
For small, small projects.
?
Michael: Yeah, I think so.
I think developer experience is important, but, but I also might argue
that Postgres hasn't changed that much from a database point of view, But
I think a lot of frameworks and cloud providers and things have really
helped there in terms of making it easier to spin up or to connect to.
So I, I'm not, Yeah, I don't know.
Have you, did, have you noticed a change in the, tooling,
for example, like some of the issues you mentioned,
like being able to connect to it becoming more easy?
Nikolay: Well, I don't know.
Like, it's hard to me to, like, I, I understand like,
like availability is super important, but I remember when
I started Postgres, of course, I compiled from source.
I could not install it from package.
Maybe packages were not available, but
over time it became much more available.
Like all Linux distributions started to have packaging, up to date
packaging with all contr models, all popular models of course, and so on.
Of course, ye and up systems are most important here, and they
both have POEs available there, but you don't need to compile it.
and this means that most admin on hosting, they
start to just add it because why not?
It's, it's there, right?
So somehow it was, I think it was slow revolution and, how to connect.
we have some small documentation.
For example, I remember I always end up, when explaining people
how to install and connect Pogo on Linux, on, on Bo, on CentOS.
I, I always.
Found the digital ocean documentation like already, like maybe up to 10 years
ago, they had excellent to date documentation, how to upgrade a new version.
And uh, so this howto documentation actually pause this documentation
official documentation is still lacking this halto, types of documents
describing for particular linear distribution how to do particular tasks.
But others like digital ocean, they fill this gap.
And, this is important I think, and uh, it slow process.
Michael: I think this takes us really nicely onto some reasons
why Postgres did then succeed in spite of those things and why
it has becomes and is becoming more and more popular each year.
I wanted to take, take us back time wise to a few other important dates.
Um, I looked at the, I think PostGIS has been really important for Postgres.
I think a lot of people describe it as even compared to the
different commercial offerings out there, the most advanced,
GIS, uh, GIS system out there, and that's a Postgres extension.
And I think if it wasn't for Postgres extensibility
at a deep level, That wouldn't be possible.
So I think that's been huge.
And it came out in 2005, which I couldn't believe, and I, I don't
know when it became, or when it started to become competitive with
the commercial offerings, but that feels really important to me.
And then the, the other dates that I thought were super interesting
were couldn't believe it was as early as 2007 that Heroku chose
Postgres as its, default, or the database that they offered in 2007.
Could you believe?
But yeah, I would then point back at why could they do that?
Probably because of its MIT style license.
It could, it was extremely permissive.
And they could do that without having to consult with anybody.
They could choose it because of those decisions that Postgres made
early on, it was reliable and very usable and all those things.
And they could take away some of those developer experience
problems of getting started with it cos they could implement
and make them easy for their, the people on, on Heroku.
Nikolay: Right.
And, uh, this influenced a lot of rub, develop, rub engineers, right.
Ruby's support was excellent with Heroku and
it, it's so natural for you to choose Postgres.
If you, if you already chose Ruby and chose hiku, it was number one choice.
Yeah, of course.
so this like provider symptoms is very important.
I agree with you with PostGIS and extensibility and features, like always
parts but it's only parts of like, only small parts of whole puzzle.
Right.
But, what happened with MySQL, I think also important because
MySQL , couldn't consider anymore as free software at some point.
Right.
As total free.
Michael: Well, I think this might.
This might be my, if it's not the biggest, I think this might be the
biggest bit of luck that Postgres got in the whole, you know, I think
everything else it's, from deliberate choices and being very, very good.
But this I think was quite lucky that of all the companies that
could have bought, uh, well, so Oracle acquired Sun, didn't they?
which included MySQL and that could have gone a few different ways.
But, , people had a distrust of Oracle already, I think.
And crucially, one of the creators of Myco, the main person
I believe behind it, split off to create my, uh, Maria db.
My understanding is he couldn't choose as permissive license as my sql.
We didn't want to, to avoid my SQL taking all of
the, changes from his fork onto, onto theirs.
So that split in the community, in the development and in the
trust of the community, I think really opened an opportunity
for Postgres, like to become the, the default choice.
If you, if you were a startup and you needed a free database,
or you wanted you, maybe you couldn't afford SQL server
or Oracle, or maybe you, you really valued open source.
I think suddenly people were questioning should we go with that?
And then when people were looking for options,
Postgres was a really good alternative.
So, we had a little internet outage, but we're back.
where we left off was around
Nikolay: let's, we, we haven't, we considered like growing
popularity as some well known fact, but let's discuss
why we think, uh, it's obvious that Postgres is winning.
I have two sources.
One is db engines.com, and their methodology is quite, complex.
Maybe not clear to me, but still this is people
consider this as a reliable source of truth.
And obviously Pogo is growing, growing pot is growing good,
but there is another source of, information, which, uh,
is very simple and, uh, methodology, quiet step forward.
It's, uh, Hacker News, job postings.
they have every month they have who is hiring,
and usually it's more than 1000 replies.
It includes everything, but mostly from startups.
Sometimes it's grown startups, sometimes it's very like new startup.
Yeah.
But, uh, there is HN trends, hack news trends.com.
Uh, we will provide link and they, from
time to time, they analyze all those, texts.
It's just text, right?
And extract technologies, Everything.
Like from react to remote world, how many postings have remote?
So can you imagine POGS has 15% in all job postings, including marketing
people, support people, non-technical people at all, And this is 15.
It's very, very high.
I think it's top 10.
And it, like, it's on par with word remote
probably is the number one still after Covid.
But reactors react also.
quite a word, right?
GitHub starts is also some reliable source of truth and
Supabase, which I consider are the champion in terms
of productizing, pog itself and many extensions of it.
And products like PostgREST, they productize it
very well and they have a lot of GitHub stars.
I think it's how many dozens of thousands
And the growth is better than react growth.
Yeah.
Right.
These, all these numbers are quite reliable.
I mean, these, uh, drop postings and hub stops.
Michael: Yeah.
I think it's very hard to refute that.
And I think there's also a growing feeling on places like Hack and
News, but I, I know it's a very biased source, but the sentiment
around Postgres feels like it really changed in that timeframe as well.
It wasn't just that these numbers went up, it also felt like there was almost
a, not quite a backlash against the NoSQL movement, but I think people real,
like there was like a phase that people went through where they, where the
words big data got thrown around a lot and no sequel gained a lot of momentum.
Mongo
Nikolay: no sequel is interesting.
Mongo is interesting.
Uh, some people think that json is the main reason why
Paulus is winning hearts of developers, and I think it's a
very important contributor, but, uh, maybe not the main one.
we chatted a little bit before, before we started this episode, and it
looks like if, if you check, Jason appeared in Jason B appeared in 9.4.
But if you check when the spike, of popularity happened, according to db
engines.com, data, it happened when RDS released Postgres version, right?
Michael: Yes.
Now, I, I think this is a really interesting chicken and egg problem.
Now did RDS have to add Postgres because it was gaining popularity?
Did, Postgres popularity spike because Amazon.
Nikolay: They chose it themselves.
They chose it themselves for their, like, as a, they chose pogs
and, and actually Aurora version of it, which is quite different.
But they chose poss, not, not a, my, they chose Aaro
PSGs, as the database for themselves, instead of Oracle.
Right.
Michael: Well, I think this is, yeah, this is a critical point.
And yeah, you brought up Apple, in our previous chat as well.
So big huge companies choosing to migrate to Postgres
around that time definitely had a big effect.
Jason b I agree.
I think the biggest, impact Jason B had was, it gave people an answer.
They didn't have to, If they needed a document store,
they didn't have to have MongoDB in addition to progress.
They could, they had a really good answer for
the team that wanted to do some document storage.
They could say, Well, you can put it in Postgres.
And we have, you know, indexing support for it.
And there's, it became, , an easy answer to anybody, on that front.
But yeah, I agree with you.
It's been important, but not the primary factor.
Nikolay: Poss is good in reacting to challenges.
you mentioned, uh, 1995 when sequel support was added Without sql,
it wouldn't survive, I guess, in terms of very popular system.
Then, there was some hype, like object databases, object relational databases.
Paul also adopted some things, and it's still considered
as object, object, relational databases and has some.
features and behavior of objectional system.
but then, semi-structured hype started and it started with XML actually.
And, uh, some, Russian developers OV and, uh, Tega.
They added support of age store in 2004.
Can you imagine?
Very long ago, I personally participated in bringing XML support to PSGs
but both XML right now may be not that relevant because json is here
already and it's standard defacto for unstructured or semistructured data.
So PSGs is good in reacting.
PSGs is doing hard work in interacting to challenges.
Michael: I completely agree.
And I think that leads me to my, I've got two
more things I wanted to make sure we covered.
One is that I think a lot of things we've discussed so
far explain how Postgres was taking over from MyQ for the
projects that we're considering a free open source database.
But it doesn't yet explain how, uh, larger companies are
choosing it instead of Oracle, instead of SQL Server.
And that I would say it is another reacting.
Yeah, but it's, it, it's a
Nikolay: larger, companies don't care about why popularity.
Right.
They need, they, they care in terms of how many engineers they could hire.
Yeah.
But also sometimes how we see some companies
prefer languages like lan, for example.
What's Alan?
And they still, they still keep or scholar some big companies
who scale or lung, not very popular, but they choose it and
they bring expertise inside so they care less about hype.
Michael: Yes.
But, things that did matter to them, I think Postgres
started to ship around that same, so 2016, 9.6 parallel
queries came in, 2017 we had partitioning logical replication
Nikolay: but by 20 16, 17, uh, the game already that was done.
Michael: So the game versus my,
Nikolay: the game was done in 2014 when RDS
Michael: versus MySQL yes.
But I think versus Oracle and SQL Server, No, I think actually these large
Nikolay: different opinion.
Michael: Okay, interesting.
Nikolay: I observed in Russia when I, I, I returned to Russia for
like 10 months or so because of these issues and economy issues.
After Crimea invasion, I return to Russia and I was
bought and, decided to relaunch, uh, Russian user group.
And, I asked, uh, which big company can host us?
And my laar Andex both.
Said yes, and by, I chose Yandex and, but GIX said, Can we also
squeeze a couple of like 10 minutes of small lightning talk?
I, I said, Of course.
What, what, what's the topic?
And they said how we migrated Yandex mail from Oracle to pogo.
And then on this very first event, they gave this talk.
It was amazing.
And I remember in the first row also a guy from ATO
was, and they said, ATO is running POGO as well.
these companies are big and they don't care a lot about hype.
And they also they are not like enterprise.
They can count money.
The startups, right?
So they can count money and so on.
And all day in 2014, they already, they also don't care about this replacement
for political reasons, replacement of Oracle and SQL Server in Russia.
They didn't care about it at all at that time.
It was before actually.
They chose it already and they chose it due to many reasons.
And they were already.
and they, made decision in 2014.
Right.
And that I was completely surprised.
Michael: Yeah.
So I, It's kept growing since then though.
Right.
So I think there have been an increasing number of use cases that can
switch to Postgres from Oracle or SQL Server, or maybe companies that switch
for new projects because the performance is on par for their workloads
Nikolay: because they now have the same, the features, the performance.
Right.
Yeah.
Let's agree with this.
Like, uh, when GIX was ready to discuss, how they migrate
from Oracle to Postgres, by the way, later then gave a
talk at Pcon in Ottawa, and those were, that's very good.
Talk.
Like next year, maybe 2015, but by that time they're already working on it.
A couple of.
So they started in 2012.
This brings us us back maybe to this acquisition of my sequel by
Oracle, like indirect acquisition, like chain of acquisitions in 2010.
And also, I consider Apple's decision to migrate internal things
from my sequel to poss in 2011 is also some turning point, right?
Some signal.
Very strong signal, like some enterprise decided.
But we also have a case when some big company, big
startup, maybe one of the biggest ones, migrated from
my SQL to Postgres and a couple of years back, right?
You know what I'm, I'm talking about the
other direct Uber case from mys and then back.
Michael: Back was the one that got a lot of publicity,
Nikolay: A lot of attention, yes, but of good criticism as well by the way.
Michael: Yeah.
I had one more point that I think it kind of takes us into the future as well.
And that's that I think Postgres has the last few years,
it's, it's released major improvements every year.
Not, not, I'm not just talking about the fact they call them major releases.
They have been big improvements every major version every year.
I used to product manage, products for SQL seven, Oracle.
And they didn't come out with major versions every year.
They didn't.
Right.
It was every two or three years at a push.
And even then, they didn't always include game changing features.
So I think it's, it's very interesting, the speed of the, it's,
uh, sometimes considered slow and I, I think that's unfair.
But the speed of improvement with progress, I think is probably
the, the highest or the relational databases at the moment.
Nikolay: And also quite well structured as well.
Like, I mean, like it's impossible to see some feature, like, you
know, in my sequel They had check constraints, which did nothing.
They didn't check anything until couple of years ago.
They brought it in minor release.
How come you, you, you add feature to minor
release, like it's impossible in positives, right?
Michael: Yeah.
Nikolay: It's very, very well structured and principles are followed.
It's good.
Yeah.
But there are many downsides as well.
Like maybe we should talk about it a different time about the process
of development and I will explain why I cannot participate in it.
Michael: Yeah.
That, that will be an fascinating discussion.
Right.
Is there anything else on the future that you wanted to talk about?
Like why, Why would I
Nikolay: Future, nearest future is bright, distant future.
I have concerns and because like one of
those concerns is this development process.
It's outdated through email only the strongest, the biggest will survive.
And I think it, it, it's not attractive to many, many people who could help.
Michael: I strongly disagree, and I'm
looking forward to discussing that with you.
Nikolay: Yeah.
Let's, let's, we don't have time to right now
to dive into it, but let's dive in another time.
But I, I have my own doubt, so I'm still
like, I'm still big fan, like last 18 years.
I, I choose pogs for every, I recommend choosing POGS for
everyone who deals with LTP for analytical there are questions.
But for OLTP workloads Postgres number one, default choice.
We have cases when company grows to multi billion dollar evaluation.
We have many such cases.
We've just single data.
Michael: Yeah, it's scale up.
Nikolay: So yeah, so easy.
And, Pogo has so many features that others don't have, so just choose it.
and as the bottom line, let's, like, in my opinion, as with any startup,
we, which became great company, as we listen to their founders, there is,
by the way, good podcast called, uh, How I Built This by NPR, you know?
Right, Yeah.
like Starbucks story and many, many others like Instagram story, people
usually answer why success combination of hard work and a lot of luck.
So I consider this my, uh, unfortunate, timeline as a big
luck of Postgres, but also we have a lot of hard work.
We have like a hundred percent.
So yeah.
Michael: That's a really nice ending.
Well, thank you everybody for joining us.
Thank you again, Nikolay and, uh, see you next week.
Nikolay: Thank you.
Uh, don't, don't forget to follow, comment, like,
and provide feedback and Twitter or anywhere else.
We'll listen to you we, we already made several episodes
based on feedback, so we are ready to continue this practice.
Michael: Yep.
Nikolay: Thank you so much.
Thank you for our s Bye.
Bye.