Live data from Hacker News

Migrating Facebook to MySQL 8.0

engineering.fb.com

271–280 of 336 posts

Re: Migrating Facebook to MySQL 8.0

#271

Earlier quoted context omitted.

That was the expectation but the Oracle camp surprised everyone by actually giving it some attention, and meanwhile MariaDB's promise of being a "100% compatible drop-in replacement" came with more and more caveats with each release (as is to be entirely expected with any fork). When you consider the network effect of all the stacks already heavily invested in MySQL, all Oracle really needed to do was put in a modicu…

Anyone on the in-crowd who can share a bit about Oracle's motivations here? I recall a Bryan Cantrill talk about how Oracle is this completely amoral machine that just wants to make money, and how that drives their every decision [0]. Is this no longer the case? Or is it, and if so, how does improving MySQL and giving it away for free making Oracle money? Or was it always hyperbole and Oracle is improving MySQL becau…

Oracle, compared to their image is quite technically adept — they did a splendid job with OpenJDK and they have plenty of long-term R&D projects like GraalVM.

Re: Migrating Facebook to MySQL 8.0

#272

Earlier quoted context omitted.

No, since MySQL 8 doesn't ever claim to use SemVer. They have an explicitly stated policy of including features in point releases. Why would it be "pretty scary" that a non-SemVer software doesn't use SemVer? SemVer is an arbitrary versioning scheme, not a universal standard. It's the operator's responsibility to understand the versioning scheme prior to upgrading.

It is pretty scary because most of these new features or enhancements are buggy. By not adopting SemVer, users of MySQL who prefer stability (oxymoron?) have no obvious upgrade path. They could be happily using version 8.0.123, and then upgrade to version 8.0.126 to get some security fix, and suddenly encounter a bunch of functionality and/or performance regressions. Some examples... WL#10310 Redo log optimization: F…

This is a misconception that new features introduce more bugs than eg. patches/minor version upgrades. I can only bring up the OpenJDK project as example but this sort of change happened there as well - what used to be JDK 8.xxx and everyone jumped to that without second thought is the exact same thing as JDK 9->10. It’s just management’s backwards thinking that somehow the former is safe to apply while the latter is not.

Re: Migrating Facebook to MySQL 8.0

#273

Earlier quoted context omitted.

Let's try to put a guess in numbers. > With roughly 2.85 billion monthly active users as of the first quarter of 2021 > 1.8 billion of Facebook users (66%) use the app on a daily basis Say 1 database could store the data + handle the reads/writes for 100,000 users (literally just guessing) 2.85 billion monthly active users / 100k users per server = 28,500 servers/"instances" for MySQL That's not even counting Kuberne…

Kubernetes, no. Twine (aka "Don't call it Tupperware"), yes https://engineering.fb.com/2019/06/06/data-center-engineerin... Also, that "30,000 servers" number is off by... a lot. No comment on by how many orders of magnitude. :-)

Yep. Here's how I'd napkin math it.

Facebook has purchased 6GW of renewable energy to power its datacenters [1]. Its datacenters have a PUE of about 1.06 last they published (they unfortunately seem to have taken their dashboards down) so that's about 5.6GW of electricity actually powering real load. Some of that will power the networking fabric so we could conservatively estimate 5GW of compute load. The OCP Yosemite v3 platform power budget is a max of 1.5kW [2]. Also conservatively, let's assume a real average 1kW load. I'll leave the division as an exercise for the reader to estimate the number of servers they operate.

1 https://www.google.com/amp/s/www.euronews.com/green/amp/2021...

2 https://www.opencompute.org/documents/ocp-yosemite-v3-platfo...

Re: Migrating Facebook to MySQL 8.0

#274
post #7

Earlier quoted context omitted.

Oracle has a very complete and much cheaper cloud solution relative to AWS. I've begun migrating my own projects over to their cloud. The savings on egress costs alone pays dividends.

I find the comments in this article very accurate: https://news.ycombinator.com/item?id=15160149 > ORA is the elephant's graveyard of software. > Once something gets bought by them, you know it is done. Slowly, but surely. > They perform a function akin to the maggots that destroy cadavers in nature. Part of the overall ecosystem. > ORA stopped being a tech co a while ago, now it is a finance play. Use cash to buy a…

That’s the usual blind rhetoric against Oracle. Any factual info on how are they worse than the “good” companies that literally track every single step you take, that attack the very democracy of countries, that help the spread of dangerous anti-intellectual rhetorics, or the “usual” anti-union, shitty working condition giants?

They dared sue the small mom&pop shop called Google for going against the Sun license of Java?

Re: Migrating Facebook to MySQL 8.0

#275

Earlier quoted context omitted.

And yet MySQL is very much alive..? Java has fully opensource implementations too, and has had innovations like GraalVM and Jakarta EE. I think I'm too young to hate Oracle with a burning passion. I would be very scared of their sales/corporate team, but I mean, even having large contracts with Google or Amazon is difficult to say the least.

MySQL is alive for companies already using MySQL, but would well informed companies be choosing it today? I'm not so sure. I think you either want it to have more functionality and you choose Postgres, you want a particular performance profile and you pick MariaDB, or you want the enterprise support and you pick Oracle's database. Why you would pick Oracle-supported MySQL today I'm not sure.

That one is more on MySQL, isn’t it? They were the ones that sort of stopped innovating for a time.

Re: Migrating Facebook to MySQL 8.0

#276
post #17

My old-man brain still can't compute this statement: "MySQL, an open source database developed by Oracle" . I know this is now factually true, but late-90s me keeps looking over my shoulder and freaking out.

should read: "an open source database bought by Oracle".

And then further developed…

Re: Migrating Facebook to MySQL 8.0

#277
post #151

Earlier quoted context omitted.

When I started working with databases about 20 years ago talking to peers it was common to have a layer in-front of the database so that you could easily replace the database. It felt stupid until I actually had to do a database migration... So do you still put a layer infront of the database so that you can for example easily change from mySQL to Postgress? Given there are so many open source database I think there…

That would be an ORM or something similar, I think. It's not realistic unless you're always testing with two databases from the start, because their implementation details leak through. It can be useful if your program is simple enough to work with both MySQL and SQLite, but often you should just stick with one DB and get to use all its features.

[ServiceStack OrmLite][1] does just that, all our development is done locally using SQLite but then deployments use MySQL. We do fall into the 'program is simple enough' category though.

[1]: https://github.com/ServiceStack/ServiceStack.OrmLite

Re: Migrating Facebook to MySQL 8.0

#278

Earlier quoted context omitted.

And yet MySQL is very much alive..? Java has fully opensource implementations too, and has had innovations like GraalVM and Jakarta EE. I think I'm too young to hate Oracle with a burning passion. I would be very scared of their sales/corporate team, but I mean, even having large contracts with Google or Amazon is difficult to say the least.

MySQL is alive for companies already using MySQL, but would well informed companies be choosing it today? I'm not so sure. I think you either want it to have more functionality and you choose Postgres, you want a particular performance profile and you pick MariaDB, or you want the enterprise support and you pick Oracle's database. Why you would pick Oracle-supported MySQL today I'm not sure.

Most people seem to be using the Percona Server branch of MySQL.

Re: Migrating Facebook to MySQL 8.0

#279
post #170

Earlier quoted context omitted.

That was the expectation but the Oracle camp surprised everyone by actually giving it some attention, and meanwhile MariaDB's promise of being a "100% compatible drop-in replacement" came with more and more caveats with each release (as is to be entirely expected with any fork). When you consider the network effect of all the stacks already heavily invested in MySQL, all Oracle really needed to do was put in a modicu…

> meanwhile MariaDB's promise of being a "100% compatible drop-in replacement" came with more and more caveats with each release Anecdata: I've been using mariadb as a drop in mysql replacement for over 5 years in production, and it's been working seamlessly. I'm no DB expert, and perhaps my use case isn't complex enough or written in a highly mysql dependent way - but I felt like someone should chime in since there'…

I think it's still pretty good. I ran into some issues with json support some years ago, but querying json may be an edge case (as opposed to storing text & creating your own indices)

Re: Migrating Facebook to MySQL 8.0

#280

Earlier quoted context omitted.

That was the expectation but the Oracle camp surprised everyone by actually giving it some attention, and meanwhile MariaDB's promise of being a "100% compatible drop-in replacement" came with more and more caveats with each release (as is to be entirely expected with any fork). When you consider the network effect of all the stacks already heavily invested in MySQL, all Oracle really needed to do was put in a modicu…

I like Postgres but still turn to MySQL for production use most of the time for a few reasons: * Permission management on Postgres is much more painful. * The need for an external connection pooler makes postgres more annoying to set up. * Better quality docs on performance tuning MySQL.

> * Permission management on Postgres is much more painful.

but way more flexible and powerful

I only work in the Java world where all application servers have the connection pooling built in, so I never had the need for an external connection pooler.

Post reply on HN