Live data from Hacker News

Why Uber Engineering Switched from Postgres to MySQL (2016)

eng.uber.com

91–100 of 133 posts

Re: Why Uber Engineering Switched from Postgres to MySQL (2016)

#92
post #87
post #83

There's some historical context for this article. 2016 was a year of RAPID growth for Uber. There was a running statistic internally that your employee ID would be at the median point just 6 months after being hired. They were trying to hire (and poach) just about anyone they could around this time. Therefore, these articles are... very shiny, compared to the actual tech applied internally (note that even though Uber…

I think this applies to most companies. What they write in their blogs is a shiny, optimistic, limited view of the best part of their best system or similar. Once inside, things are never that great. I myself was very ashamed of a company I worked for (also SF based) blog post... even the author of the post was a very well known open source maintainer of many libraries of a very popular programming language. Reading…

Can we maybe get a list of company blogs that are legit? As in they practice what they preach?

Facebook, Amazon, Netflix Google, Microsoft comes to the top of my head but someone is free to burst my bubble.

Re: Why Uber Engineering Switched from Postgres to MySQL (2016)

#94
post #83

There's some historical context for this article. 2016 was a year of RAPID growth for Uber. There was a running statistic internally that your employee ID would be at the median point just 6 months after being hired. They were trying to hire (and poach) just about anyone they could around this time. Therefore, these articles are... very shiny, compared to the actual tech applied internally (note that even though Uber…

is schemaless still the db now?

Re: Why Uber Engineering Switched from Postgres to MySQL (2016)

#95
post #73

I committed a patch that added a mechanism I called "bottom-up index deletion" recently: https://www.postgresql.org/docs/devel/btree-implementation.h... https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit... Bottom-up deletion is specifically designed to ameliorate what the blog post refers to as "write amplification". Testing has shown that it's very effective with many workloads.

Just wanted to say how impressed I was with this solution and the results it achieved when I was following the development on -hackers.

What is -hackers?

Re: Why Uber Engineering Switched from Postgres to MySQL (2016)

#96

Earlier quoted context omitted.

Most tutorials/instructions I read have you use "createuser" command from the system shell. But... you have to be able to switch to a system 'postgres' user first , which ... perhaps you don't have privileges to do, or need sudo access or whatnot. If you can install postgres, connect to it directly with some sort of root identity , then immediately create users and databases (as is the case with pretty much every mys…

With MySQL, you'll still have to switch to root to connect by default? I honestly don't remember, since it's been ages since I set up MySQL manually. If MySQL actually allows administrative access out-of-the-box without any kind of special authorization, then that's a terribly insecure default. With PostgreSQL, you have to switch to the superuser to configure things further because that's the only sane default you ca…

"With MySQL, you'll still have to switch to root to connect by default? "

You connect with a root account from any account, and when installed, the root account password is part of the setup process.

"and the same user at different addresses or auth methods can have different permissions"....

It joe@localhost and joe@remotehost don't have to be 'the same user' in that they're not tied to a system account in any way.

Granting different privileges to joe@local and joe@remote based on where they're coming from isn't necessarily "simple", but no one claimed it was. My own response was validating that PostgreSQL user setup was somewhat confusing.

EDIT: Bringing up "mysql sucks" points when I was explaining how PostgreSQL 'create user' stuff can be confusing just reeks of whataboutism.

Re: Why Uber Engineering Switched from Postgres to MySQL (2016)

#97
post #19

I spent a whole decade saying "Why do I need Postgres? MySQL is fine." Started using Postgres a couple of years ago, and I now can't believe I ever lived without window functions, native arrays, custom types, etc.

MySQL has window functions and native JSON now.

Re: Why Uber Engineering Switched from Postgres to MySQL (2016)

#98
post #92
post #87

Earlier quoted context omitted.

I think this applies to most companies. What they write in their blogs is a shiny, optimistic, limited view of the best part of their best system or similar. Once inside, things are never that great. I myself was very ashamed of a company I worked for (also SF based) blog post... even the author of the post was a very well known open source maintainer of many libraries of a very popular programming language. Reading…

Can we maybe get a list of company blogs that are legit? As in they practice what they preach? Facebook, Amazon, Netflix Google, Microsoft comes to the top of my head but someone is free to burst my bubble.

Cloudflare's blogs seem far less markety and far more about sharing interesting technical wins.

Re: Why Uber Engineering Switched from Postgres to MySQL (2016)

#99
post #95
post #73

Earlier quoted context omitted.

Just wanted to say how impressed I was with this solution and the results it achieved when I was following the development on -hackers.

What is -hackers?

The Postgres community mailing list for development work -- pgsql-hackers.

Re: Why Uber Engineering Switched from Postgres to MySQL (2016)

#100

Earlier quoted context omitted.

They’re great for denormalisation, which is often an appropriate trade off.

Yes! Have one-to-many data that you know you will usually always grab all in one go, and won't ever participate in a relation? Arrays are the way to go. JSONB can be similarly highly appropriate. They can greatly reduce the number of disk reads needed for certain workloads. Don't forget that both can be indexed in Postgres! And the indexes are more powerful than what you can do with the equivalent relational layout,…

Same goes for hstore and the @> style operators.
Post reply on HN