 You still have five minutes, but let's say you can start because anyway, nobody else will enter in the room anymore. Oh, I see, I see. And I thought you were going to say, well, but you can start because nobody cares. Oh, we're not there. No, no, okay, yes, you know, Fred is so polite, so nice to everyone, so Belgian. Well, yeah, I may not be. Anyway, we're going to talk about this very interesting topic about MySQL 8 and MariaDB 10.4, which are latest version of those two respectful databases. And even though, oh, now it turned out, even though Fred gave me extra five minutes, I planned for 20 minutes. And as I look at this problem or this content, there is so much of difference those days between the latest MySQL and MariaDB. It's really hard to go in the feature by feature and explain it in 20 minutes. That would require like a day tutorial, if not more. So I decided to instead focus on mostly high-level comparison, not going in a very low-level details. One thing I think is important to know is what, if you look at the MySQL and MariaDB, is what MariaDB is not MySQL, not anymore. I think at first, in the first, right, at a region, there was a very little difference when it was, you know, 5.5 version. But at the later times, there is a lot of changes both in what you have to do as administrator, as well as the things you have to care or as a developer, right? Some of those things I think this is, I would say, the differences of the worst kind, if you will, right? Because you would have their SQL syntax, right, the functions or features which are the same, syntax-wise, but they have subtle differences in behavior, right? And why I call those things the problems of the worst kind? Because if MariaDB has a function and MySQL doesn't, then it's very simple, your application just wouldn't run, right? If the functions have some subtle corner cases about how it performs, then your application may fail in kind of a tricky scenarios, right? And that is something which is, we just had a very hard, hard to test. So, keep it in mind, right, the number of applications those days, especially if you think about the Drupal, right, the WordPress, we tend to support both MariaDB and MySQL, but that requires a special effort by development teams to take software for both database systems, right? Don't assume if you have been developing for years just from MySQL or just from MariaDB, you can just move your complicated application and it works absolutely the same with no changes. Having said that, I will say what those are both great databases, right? We have developed a very strong followers, very large community. We have been both growing very rapidly. You may have seen MySQL, for example, getting the award from DB Engines about being the database of the year of 2019, which we didn't get like for, I don't know, like ever, right? And MariaDB was run last year, second only to Postgres, so both of them are doing well. Now, in terms of, I will try to be fair, but mine kind of fair. I hope I will offend and give things to disagree for both MariaDB and MySQL team members and the communities. And I see there's a fair amount of development team presentation, so if you don't agree with me, then should peer you're on, that is bullshit, right? Let's keep FOSDM's period going, right, Fred? Okay, so let's start from a development model, right? We all know what MySQL is developed by the Oracle Corporation, right? And contrary to some rumors, right, Oracle actually does accept contributions, right? There have been a number of things, both small and large, which have been accepted and included in the recent MySQL release. Oracle offers also follow what I would call like a drop ship open source model, right? So it's not like all the development, all the kind of small patches, every commits are immediately visible in a GitHub, but when the Oracle releases the new release, we have a source which magically appears. If you look at for MariaDB, here is, I think is interesting, right? Because if MariaDB, we are, you know, two involved entities, MariaDB Corporation and MariaDB Foundation and different components which we may use in the ecosystem is owned by those different entities, right? So for example, MariaDB Server is released by MariaDB Foundation, right? And a lot of development and roadmap is mostly driven by MariaDB Corporation, right, in terms of features which go in. At the same time, contributions are very much encouraged, right? I think MariaDB spends a lot of time and effort to really invite people to contribute, right? And which is a two, I would say two sides coin because on an extent that really gets more stuff in MariaDB, but then that also means you may have, you know, not as much consistency between the features, right? You have more stuff to maintain, there can be more stuff which is of unknown quality because it was sort of contributed, right? But then developer who have been doing that is not really interested to do that anymore and MariaDB Foundation which is in charge with maintaining the server, it is a relatively small company, right? They cannot really maintain everything which was contributed over years. And development for MariaDB is done much more in public. I would say what everything what MariaDB Foundation does, right, is of course completely in public, but there could be bits and pieces which are developed by the third parties and then kind of also drop-shipped, right? So, for example, if you look at Galera 4 development, right, which was developed a lot, we heard about, hey, it's coming and coming, but you could not see any source until it finally, you know, landed much closer to the GA stage. Now MariaDB Corporation and complications, right? I mentioned what the relationship is complicated, right? But first I want to say why do you really care, right, as a developer? Well, if you look at the history of the MariaDB, a lot of that was based on, well, you know what? Oracle bought MySQL. It's going to kill it, right? Or at least screwed up a big deal. We don't want to happen that again, right? So there is MariaDB Foundation to prevent that from happening. Because in the end, if you think in a corporation, nothing prevents from Oracle, you know, theoretically, to buy MariaDB Corporation, right? That is a company of investors and so on and so forth, right? I was in MySQL in the early days, and you never imagined that MySQL will end up in Oracle hands at that time, right? But that's exactly what happens. So why that is important is if you are really looking at MariaDB from an insurance standpoint, right? You need to understand what is provided by MariaDB Foundation versus not, because if MariaDB Corporation is bought by another company, right, you want to know what will kind of remain. MariaDB Foundation is really responsible for MariaDB Server, right? Many other companies, such as Connectors, MaxScale, are owned by MariaDB Corporation. A lot of the stuff that MariaDB Corporation does is open source. Some things like MariaDB MaxScale is not, right? It's a VSBSL. Now there are also some things which I would find strange, right? So for example, where you look at the majority of the repositories and packages for Linux distribution are managed and provided by MariaDB Foundation, but then Docker builds are done by MariaDB Corporation, right? So it can be really complicated from my opinion to understand who is doing what. Okay, now let's look about what is open source when it comes to the MySQL. Like when you hear what the MySQL is an open source database, of course this is not entirely the truth, right? MySQL is an open core database. There is a MySQL community server, right, which is open source, as well as a lot of other tools which exist, which are open source. I think what is interesting about the Oracle MySQL approach, we keep the whole platform as an open source version, right? So there is a thing like a MySQL router, there is an open source version of a MySQL shell and whatever, right? So their approach has been, well, you know what? You should be able to spin it up and do everything with an open source version, right? Then there are some enterprise features which is part of an enterprise platform, right? Enterprise is really focused on the commercial license plugins and tools, right? And I would say even in this regard, Oracle is actually doing a good job for themselves, but actually also for third parties by not having kind of another enterprise source code, right, which is kind of sparkled with enterprise features, but having enterprise features as plugins which allows third parties to implement similar functionality as they want, right? Every corner has implemented, you know, similar functionality for many enterprise options and I know a number of people who have been doing that themselves, it is possible. Now I think what is also interesting in this case is that the MySQL only adds some new features. Some of them go to enterprise, some of them they go to their property, some of them actually seems to be slated for Oracle Cloud only, right? Some of us have heard about this, you know, wonderful rapid engine, for example. But what I think is great is Oracle never took anything back, like, oh, that was open source license and that's not anymore. In MariaDB space we have a MariaDB server, it's obviously open source. MariaDB connectors are open source from many of them are managed by corporation. There are some other parts of the sort of complete solution and most importantly I would say MaxScale is not open source and I think what is also interesting in this case is what is the history of what MaxScale was open source and later was a relicense proprietary, right? So that is a question to what exactly may follow that rule depending on the MariaDB corporation business needs and business pressures, right? Of course, we can be sure my MariaDB server is going to remain open source for two reasons, right? A, it's MariaDB foundation and B, because it uses a lot of original code base from MySQL and Oracle, right, they can't really relicense that. For MariaDB enterprise server, right, you can, that is as a part of a MariaDB enterprise offering, you can see what it is open source, but the open source for customers, right? That means you don't really find it on a GitHub, but if you are the customers then you will be provided access to the source code together with, you know, the binaries. And to be frank, that is something about MySQL, one of the iterations in a MySQL history that MySQL used to do, right, many years ago. So another thing that is interesting is the relationship with the open source and the community version, where MySQL enterprise is a super set of MySQL community. Wherever it runs, wherever you use in MySQL community is included in MySQL, is MySQL enterprise, right? And there they are also aligned on a release schedule, right? So when you have, you know, 80 goals A, MySQL and MariaDB, it is the same. In a MariaDB case, MySQL enterprise server is extended super set of community server. So that means there are some features, right, which are additional in the enterprise plugin, for example, it would have an enterprise audit plugin which has some additional functionality. Some things which is included in community edition of MySQL, which is not included in the enterprise. And also MariaDB platform, right, which is how MariaDB enterprise version is called, works on a separate life cycle, right? So MariaDB 10.4 was released last summer. MariaDB platform X4, which is based on MariaDB 10.4, was released just in the last few weeks, right? So that, I think, is also an interesting difference. Now another thing I think is interesting is about the cloud native, right? Supporting the Kubernetes ecosystem, right? And in this case, I would frankly say both MySQL and MariaDB get thumbs down from me, right? I mean, if you look at MySQL, they have been doing, have the release of MySQL Kubernetes operator. When Alpha was released, what was about like two years ago, they were very excited saying, yeah, that's cool. MySQL understands that community is important. But that was not updated for eight months. There was MariaDB Kubernetes operator, which was actually one of the launch operators of Red Hat's operator hub. And it's kind of disappeared in public, right? And many pages which seems to be described in what the operator result and page are not found, right? So I wasn't able to find much public information about fate of MariaDB. Operators exist in MySQL, of course. On builds from Bitnami, there is a press lab with VDU at Percona operator for Percona X3B cluster. So there is some ways but not from the main vendors at this point. Okay. Let's look at the focus now. If you look at MariaDB, it's initially completed MySQL, completed MySQL on features, right? And there are many features came in MariaDB first, right? But I think what is more recently focused has been really is a very good enterprise database as a target migration from Oracle, Microsoft, SQL Server, and so on. I think another thing that MariaDB does very well is lease a village for CIS admins. Like if you think about, you know, start-up scripts, command line experience, right? It was kind of a classical old-timer CIS admins, DBAs. That is very good. MySQL, I think, has been focused on the traditional MySQL use case, right? For a lot of, you know, large internet companies, right? Many of them continue to run MySQL many years in, right? They also did improving SQL support like CTE, window function, so on and so forth. In many cases, that lagged behind MariaDB but it's now there. Docstore and JSON has been a huge focus. And I think MySQL looked at the usability a little bit differently focused maybe on kind of developers who don't know what I'm doing, right? So MariaDB is usability for smart people. MySQL is usability for stupid people, right? If you think it was fair, right? So you can have a MySQL shell which allows you to, you know, provision, configure MySQL cluster in minutes, right there. Well, it will probably take you significantly longer time, right, if you want to set up a Galera cluster with MySQL. Okay. In terms of architecture, I think MySQL started this work of very painful refactoring of the old architecture, right, which is tough, right? And I think that is a very tough days for MySQL when we have, you know, byte a bullet and change the data dictionary, for example. But it's not really as stable as a mature, right? It actually sucks in places, right? But that, I think, of a long term with a low to solve a lot of problems. I think what another thing I'll highlight is what we have been a tendency on some needlessly complex decisions in MySQL, right? For example, MySQL GT IDs, oh my gosh, right? I mean, this is like, well, if you probably don't have two PhDs, you don't really understand what the hell is going on, right, and how it works, right, in this case. And with that, I would say if you look at especially initial versions, they have been very advanced GT IDs, but you couldn't upgrade them live when they first roll out in MySQL 5.6, right? So that's kind of practical use case was not really thought through. MariaDB, as I mentioned, is pushing the old code base, right? Much further, it really prioritizes choice and flexibility, right? And I think that also comes from accepting a lot of contributions, a support of multiple engines, right? And I think MariaDB team is much more kind of closer to practical operations, right, than a lot of folks in the Oracle development team, right? Which is easier with smaller, more agile, flatter organizations. Okay, you know. Five minutes. Yes, five minutes, okay. Release frequency, which you can see is different. MariaDB is much faster, but what I think is important here is what we have the change in the policy, right? Where MariaDB continues to focus sort of like a classical MySQL policy introducing features only in major releases. We have relatively frequent major releases, right? Once a year recently, we don't have any minor changes in the minor releases, right? And MySQL 8 is an evergreen release, right? MySQL 8 forever, well, at least forever, in the next few years, it seems, where we have a lot of cool features introduced in the minor releases, like hash join, right? For example, what's added in the latest release. But that also means that there is a potential breakage with minor releases, and you can't even do the downgrades between the minor releases, right? Which I know freaks out a lot of MySQL old timers, right? Let's say, oh my gosh, that is just horrible, horrible. Okay, some specifics, right? And I have now, what, three minutes. So anyway, you'll have a slide. There are differences, right? And for example, client protocol. There is a difference in terms of what kind of interface support. I think the most important one here is MariaDB doesn't do dogstore, right? Probably doesn't believe in dogstore. JSON support is very different. I would say at this point, I think that MySQL JSON support is significantly more advanced than it had in MariaDB, right? Replication, again, that is another place, very different. MySQL has a group replication. MariaDB has a Gallera replication. In my opinion, in places, GalleraDB replication is still more advanced than group replication in places and more mature in many places. But group replication is moving faster, right, at a faster rate. SQL standards. I looked at this case, and I don't think MySQL now offers something what MariaDB doesn't in the latest version, right? And MariaDB has done a lot of stuff, especially focused on, as I mentioned, migration from things like Oracle. It has system version tables, sequences, packages, and actually a lot of some other stuff out there. If you want to have some detailed feature comparison, I think this more SQL.com, we had a couple of articles, current MySQL 8, and also MariaDB 10.3, right? We don't have an article for 10.4, which adds stuff. But that is fantastic compare all those kind of detailed SQL features, not only comparing them to between each other, but also comparing to Postgres, you know, and a bunch of commercial databases. Security. That is another piece which is very different between MySQL and MariaDB, right? So how you manage user accounts, especially if you use advanced features like roles, plugins, very different. I don't have any time to go in details, yeah. Optimizer. Optimizer is another piece which is very different, right? Both teams can show you benchmarks to show what their optimizer is amazing and blows other part out of the water, right? But the thing you need to know is it is different. You should expect different execution plans, especially for more complicated queries, which is important, right, from migration. And that's exactly on time. That's it. Thank you, Fred, for keeping me on track. Five minutes for questions. Five minutes for questions. Sometimes for one or two questions, not five minutes. Oh, not five minutes? Okay, okay, yeah. I have some time for questions. Questions, comments. Anyone? Yeah, Olya. How did the enterprise server open source for customers? Is that legally okay? Well, I mean, what GPL says, right, as I understand. Again, not a lawyer. Not a lot of lawyer, right? But it says, well, you know what, when you give somebody binaries, you have to provide them with source code as well, right? But it doesn't say what you have to provide to make your source code publicly available. Now, what is important is MariaDB customers can actually do the Jeremy Cole thing, right? If somebody remembers in the MySQL days, Jeremy Cole, right, he bought subscription for one MySQL enterprise and he published a source code, right? Yeah, publicly, right? So they can do it, but MariaDB corporation is not forced to make it public. But some of our customers can. Make sense?