 I need to start right like it's 5 30 Okay, so I'm here to talk to you about the MySQL universe in 2018. It's a very exciting time to be in the MySQL world So who am I? I work at Prokona before that I was in the founding team of MariaDB server Before that I used to work at MySQL and just to make sure it's all fair. I Own options in Prokona. I own shares in MariaDB because they bought our company And I actually bought Oracle shares, so I'm interested in the entire ecosystem from a financial perspective So I love everybody Extremely mature ecosystem, right? So MySQL is nearly 23 years old And you may think oh god what an old code base. It must be horrendous Actually Oracle's been doing a wonderful job of making it better So 5 5 that was heavy refactoring 5 6 even more 5 7 and 8 0 seems to be getting even further refactored and 8 0 actually they're paying a lot of attention to Making sure things like a well sanitized and I think a lot of people who are Engineering MySQL now are actually engineering on the new code base to be fair I think most of the engineers here never had to touch the 5 1 5 0 code base maybe at all Prokona server is also like 9 plus years old MariaDB just celebrated its 8th birthday Because it made its first release in February of 2010 Drizzle anybody heard of this one before it's obviously dead and WebSkill SQL I think you are you had a question about the Facebook tree and you know they they tried to make WebSkill SQL the tree that everybody would use but it turns out that it's it's actually quite hard to make everybody use one thing and They they still actually keep a Facebook tree Independently whereas the other people like who backed WebSkill SQL like Twitter actually stopped and they actually migrated back to Stop my SQL and Facebook. I mean, I don't think they're as big as Oracle's engineering team to be fair But I think they have easily about 20 20 to 25 production engineers who actually can change the code base But the bonus of what they do at Facebook is they've also got a my rocks team to do and they want the rocks DB team and The engineers deal with my SQL can go in and actually change the The query patterns, right? They can go and change queries or they can just block stuff off So why did WebSkill not really work out? It turns out that I should just read from this it's from their blog post They said we learned over the course of this experiment that sometimes each company Needs may not be similar enough to make sustained collaboration possible Everyone was at a different stage of my SQL lifecycle timelines. This is absolutely true So out of all the WebSkill SQL players This includes Google, LinkedIn Twitter, Facebook Everyone ended up using some variant of my SQL as a base Google Actually switched to Maria DB 10 0 as a base and then they heavily forked Maria DB 10 0 to have Data at rest encryption, which is what you see in Maria DB 10 1 and now they are the only ones internally running Maria DB 10 0 fork But they don't offer it as say as part of your cloud So if you use Google Cloud SQL, which I think there are a bunch of talks here If they only offer my SQL as a service We don't actually have any learnings from why drizzle died Lots of people were very excited by drizzle But one of the major learnings from that was don't have all the core developers hired by a single company Because rack space hired everybody Rack space said look we're not so interested in this drizzle thing anymore Why don't you do this open stack stuff and then boom drizzle died? I know this is really small. I Promise the next slide will be better. It's actually made by a guy called Daniel van Eden You can check this out from GitHub. I've modified it to make it more accurate for the current situation today So that's that looks maybe reasonably more much better I think we've had some important milestones in in the past So in 5 5 in a DB became a lot more scalable and I guess the added bonus is that in a DB became the default storage engine So it's that it's at the path for everybody using in a DB 56 at a whole bunch of optimizer enhancements And I think tomorrow's talk on the optimizer will not even cover all the five six changes. It'll cover everything That's cool in 8-0 But it should not be discounted that there was a lot of work done in five six and even in five seven to be fair Hakona server five five actually Was the first to port group comment in the binary log So that means that instead of calling as seen each and every time you call it in a group Ported it from Maria DB and then eventually Maria DB released it in 10.3 In 5.3 and my SQL has an implementation in 5.6 that that sort of differs and Now of course we're at a stage where my SQL eight zero four is in its second release candidate Then they did something weird with the version numbers. They they jacked it all out It's now so the next release will be eight zero was it ten or twelve twelve Yeah, so And Maria DB is in its second beta So the race is on to see who releases a GA first because it turns out that My SQL five seven and Maria DB ten one will release two days apart from each other in October of 2015 So open source community. We're at a FOSS Asia conference. So everybody here is all about FOSS I think if we had to rank everybody Maria DB probably ranks the best in terms of accepting community contributions Because you can send in code either via this thing called the Maria DB contributor agreement Which is very similar to what the Sun contributor license used to be or you can just commit code as BSD new Maria DB also participates actively Google summer of code. In fact this year there there are still a participant I mentored every year except this year Because I have other things to do but Google summer code is excellent and in addition Not only has Maria DB mentored students and have shipping features also managed to hire developers to join And develop Maria DB going forward my skill five seven has taken say one good example was this thing called generated columns You can obviously contribute, but you can't commit to the code base In fact, if you look at the eight zero release notes as a whole bunch of people being credited including Prokona Facebook whole bunch companies that contributed to my SQL, which is great Prokona we could do a much better job in terms of Allowing people to write code or comic code. We tend to only want to work on stuff that's customer related The other thing that's probably important when it comes to an open source community is who is going to maintain the code going forward I think you can just say hey this this feature looks cool Let's just take this drive-by contribution and then you also want to all be obviously evaluate What is the state of community contributed code? So we we actively do this even say at in Prokona server where we have things like oh hand let's lock it As an example where you could actually make Crud operations create read update elite operations directly to inner DB skipping the entire SQL layer of my SQL, but then we realized people don't really use this very much nowadays So that and it's not really well maintained and then there's this memcached interface which can do put get Why don't we just get rid of Handler socket and nobody's complained Lot of people say my SQL is dying You know oracle oracle actually has owned my SQL now of more or less for 10 years When we just celebrated 10 years of selling to sudden January Oracle probably can celebrate some eight or nine years of owning my SQL. So honestly oracle obviously isn't bad at all My skill keeps on getting better at every release There's a lot of external contributors shared knowledge, which is why you know people know what inner DB is about right? Nobody says hey go use my a scale cluster so much because not everybody knows what an DB cluster does internally But they know what inner DB does internally My skills extremely vibrant in terms of the ecosystem. There's plenty of tools. I wish I'll show you a handful of them as well I think my SQL 5.7 has a whole bunch of underrated features like a lot of people don't talk about them or use them Multi-sauce replication for example is is very handy when you have multiple masters writing to a you know a single node I'm hesitant to now say master and slave because in In some places people get offended by that even though that's how we we call it leader follower Everybody's getting more politically correct now Um Things like statement timeouts turning on GT IDs in an online fashion as opposed to having to restart everything in like you did in five six Resizing the buffer pool in an online fashion, which actually does obviously while you do a resize it will actually Feel like your queries are being processed, but you know, you don't have to restart the server so much better I think this these last two features are extremely underrated right the whole mysql shell xdab API a lot of people Always talked about having you know JSON functionality, but then you know did any other open source projects say we're going to start using it No, we haven't really seen that and that's partially because we need to talk about it more and even encryption at rest. I Should put the Maria DB once from ten one to and ten two because they have made two releases in that same period of Southern's actually because this is snapshot came into ten one Well, it was it was around even before ten one It was a by-product of group comment that is also now actually in mysql five seven so another maybe underrated feature Having Galera cluster integrated is actually quite nice And I think going forward you'll see more from the mysql world in terms of group replication So that's something that even now we have not done in prokona where we you just get one download and you get to turn on Galera application or not The thread pool How many of you here write web applications? Okay, you what what do you write not that web applications or? Yeah Okay, so most most web applications anyhow they you know their short running queries They may be running less than one second, and that's why having something like a thread pool makes a lot of sense Mysql has this in in the enterprise release Maria DB and prokona server have this in an open source fashion, which is kind of nice because the way because Maria DB made it first prokona enhanced it Maria DB got to take it back and Everybody's better off because that's how open source works Extending the regular expressions came in Maria DB 10-1 as well And this is actually the the regular expression library in mysql 8 has also changed, which is maybe another feature that needs to be talked about more and And roles sql standard roles very important and why why what these last two features again didn't come from Maria DB Core developers it came from Google summer of code students So which we mentored them for three months, and they produced real usable code that we could push to the server In fact this guy even got hired the roles guy I know hired by Maria DB Yeah, Google wants other people to hire Yeah, they they're only going to give you that five five thousand dollars life Ten two came out and Big change in Maria DB in the sense that inner DB became the default inner DB That means they for the first time really be stopped shipping extra DB as the default inner DB But also my rocks alpha release If you're doing a large-scale analytics Window functions kind of make sense also coming to mysql 8 recursive common table expressions similar AWS key management, so it turns out that when you encrypt your data at rest You may find that you need an external key server of some sort the easiest way to get started is to keep the To choose the file key management plugins that are available But it turns out that if someone breaks into your server they'll walk away with said file Which is obviously pretty stupid. So then you get this key management plugins So most of them offer very expensive solutions But AWS offers this with the power of your credit card and Maria DB tend to actually includes this as well Yeah, but don't I serve a five six and five seven is not a fork of My SQL it is a branch of my SQL it still remains it aims to be always very close it aims to constantly be a drop-in replacement and The bonus of everything we do at prokona is we'd like to contribute back upstream so that we don't have to maintain it the engineering burden goes back to Oracle Some bonus Actually, it's a very good way to have sustainable engineering because at prokona We have a whole slew of products and our engineering team is approximately less than maybe 35 people And that means we and that's also us doing in a prokona server for my SQL MongoDB the monitoring and management we managed to keep things small because we managed to contribute things upstream tremendously and We like that we like that model So every time we make improvements to extra DB We also do contribute them and sometimes Oracle accepts them and then the creditors and then we don't have to maintain it any longer We make a lot of enhancements that are focused generally around Usability manageability The ability to monitor things we really focus on it from a dev-op standpoint And then we hope hope that upstream gets it and then we can move on to doing other things but we also are happy to remove things so at at Previously before in five six and and previously if you wanted to warm up your inner DB buffer pool We'd have this idea called inner DB fake changes Which will actually do these operations and then roll them back to warm up the buffer pool so that when you have a start You know, you're 60 gigabyte buffer pool isn't all cold Then we said look we don't need this feature any longer because it's actually it's kind of hacky and My SQL has interest in my parallel replication available. So if you want to actually Warm up your buffer pool. You just turn you just start using interesting my parallel applications a replicate across and You've already warmed up your buffer pool when you start the server and that is You know a proposed solution that we have to replace fake changes so we can remove features I don't know how many of you have read this blog post before but maybe maybe it's well worth looking at It's a it's fairly long. It might be like 10 to 12 pages long And at one stage or maybe it still is probably the most popular blog post in the Pocono website Because it compares my SQL with Maria DB as well as Pocono based on a white paper that Maria DB wrote and that's going to be what I speak about over the next maybe 10 minutes or so So we we always like compatibility and in a database We care about the fact that you may want to move around from one database to another I'm sure if you tried you know my SQL you may want to try Maria DB because has a new feature and then maybe you want to go back to my SQL and compatibility really matters From standard standpoint as well It matters a lot because Maria DB server is the default my SQL in pretty much every Linux distribution except Ubuntu That means when you ask for my SQL you get Maria DB for free instead. So all the cool my SQL features That are not part of to Maria DB You suddenly can't use them which means all this wonderful engineering that Oracle puts effort into goes unnoticed So I always like to say to distributions take a page out of the cloud offerings You know Amazon for example doesn't just offer RDS my SQL and say hey, here's Maria DB for free They don't they actually tell you you can choose my SQL or Maria DB As your just launched this week as it became a generally available product They offer my SQL in GA and Maria DB as something coming up later Rack space is offered my you know my SQL Maria DB as well as the Kona server Ali Baba and Tencent Ali Baba's put money into Maria DB cooperation and the foundation and Tencent has put money into the foundation and None of them offer Maria DB in the cloud. They only offer my SQL in the cloud So so taking a page out of the cloud providers can actually mean that It might be better to have my SQL being my SQL and Maria DB being Maria DB because they at one stage They were both different variants of apples, but today they're an apple and orange so Generally speaking my skill 5.6 should be comparable to Maria DB 7 10 1 and 10 2 should be compatible with 5 7 But this is not necessarily true because it's not necessarily a drop-in replacement But it is dropping in the sense that you can use the same data directory the same part and That's where maybe part of the confusion starts Governance again, we're at a fast conference. So it's well worth talking about governance Maria DB Obviously it has a corporation and a foundation and the foundation's goals are there to Ensure that if the corporation gets acquired the fund it will never be such that Source code could go to another company like it'll always be free and open source Even though my skill is free and open source But that's always just worried that Oracle would do something odd to it Oracle has it. So kudos My SQL of course is owned by Oracle by way of Sun and my SQL AB And for Kona we were not ashamed to say yeah, we're our software is owned by us and We're hope we just like to give code up so upstream so that we don't have to maintain it I also like to Ask these this question generally, you know Is there vendor lock-in with open source and you know generally speaking the answer is yes You can be vendor locked in even with open source. Maybe you like one insurance provider better than the other and I also like to look at other things like in how many times websites have changed and so forth and web.archive.org great resource so the MariaDB project officially only started in late 2009 right before Oracle acquired Sun and These are basically the current releases that you can you can take a look at and the Kona server Generally is anywhere between three to six months back of a release Of a my SQL major release But when it's a minor release, it's probably within the same month So replication compatibility the easiest way for you to migrate from one database another is to replicate so you you would upgrade a follower or Slave and then you would maybe promote that to become the master So if you were running say my SQL 5.7 in on the master You'd upgrade you'd upgrade to say to MariaDB 10.3 on the slave to see what it looked like This table suggests that it is much easier to migrate to MariaDB server But you can't migrate away from MariaDB server and why is that? Because my SQL Global transaction IDs in 5.6 and 5.7 are different from MariaDB's global transaction IDs So what MariaDB does is MariaDB filters out the global transaction IDs So throws it away and assigns its own global transaction IDs inside replication Now MariaDB can do that, but my skill doesn't so my skill sees the replication packet and MariaDB's GTIDs and goes Oh, I don't know what this is. This is garbage replication breaks so Migrating to MariaDB easy migrating out of MariaDB hard. So in a way, it's like this song called Hotel, California You can check in but you may never leave You can dump the data and load it up again though my skill dump works generally Yeah, I'm not that old Yeah, so replication as well so my skill has been using row based replication as a default for some time MariaDB is chosen to do mix mode and also turn on annotating the row The bind these parts that are based on the row which is odd because then your bin log size starts growing growing in size So this is a default. You probably want to change But there are some very interesting new features like this idea of DML only flashback which actually changes My SQL bin log tool to actually roll back instances and tables turn all the snapshot and Ali Baba does this in Cloud on a regular basis and this is actually unique to MariaDB. It's written against my SQL But they ported it to work on my on MariaDB In terms of synchronous replication, there are two different types of synchronous replication available today There's Galera, which MariaDB server as it built in that's PCona actually be cluster and Co-de-ship the company that makes Galera also makes a MySQL 57 version of it and then there's this other idea of group replication Which only works in my SQL or PCona server. It doesn't work on MariaDB PCona server. Yeah, we we totally support it and we like we like it. We hopefully Yeah, the plug-in actually will load PCona server has no problem loading the group replication plug-in our hope Now this is being recorded is that group replication more or less over takes actually be cluster over time Because we're we're now putting engineering resources behind actually be cluster to make it better but we would like to focus on Group replication which also works on this OS that I personally don't use but many people use call windows So we and we are still waiting for Galera cluster for for many years now. It's been maybe three years. We are still waiting for the next release We don't know how much longer we can wait But yes, we do support group replication um X protocol only works inside of My SQL it doesn't work with MariaDB when I say it works at my skill. It'll definitely work with PCona server It is a drop-in replacement Is anyone aware of the X protocol and my SQL SH and Doesn't work at our Okay, so clearly you need to market this more Encryption My skill 5-7 and MariaDB server 10-1 both have data at rest encryption, but implemented differently MariaDB as table space and tie table space encryption for inner DB as well as Aria temporary table encryption whereas my skill only does this table space for inner DB um Google patch only does table space encryption, but MariaDB enhanced the Google patch to also do table encryption Nobody does column encryption Encryption of logs is is done in MariaDB, but not in my SQL But Prokona server the latest release in 5.7 does encrypt logs as well. So that might be something to look at My skill requires you to use inner DB file per table. Whereas the MariaDB variant doesn't Generally speaking though, this has been a default sometimes. So you should just use it and My skill implementation of course works fully with Prokona actually be cluster whereas the MariaDB version does not Encrypt the Galera cache the G cache inside of the MariaDB version. So it's not fully encrypted Performance schema, it's an excellent piece of underrated kit that is disabled inside of MariaDB And it's actually shipping a much older version from the 5.6 variant Performance schemas improved tremendously in 5.7 as well as 8.0. So I Expect more people will turn on performance schema the the answer with MariaDB is don't use performance schema because user stats exist and User stats is like lighter weight that is true But I believe that come my skill 8.0 user stats will go away because performance schema is also fanny lightweight Prokona server also has user stats, but we expect it to go away No, no sciss schema either Hmm. Okay. I'm going to go much faster now In terms of security my skill uses distinct or shot to music's password and it's going to be turned on in 8.0 caching shout to music's password MariaDB decided not to implement that so it's implemented added to 5519 which is based on the elliptical curve digital Signature algorithms. So that now means that if you use my skill 8.0 to create a user and a password And you try to migrate to MariaDB. You'll break You have to recreate said password and vice versa This is going to be incredibly annoying for human beings It would be much better MariaDB just implemented the shout to music's password thing too as well Validate password is on by default in 5.7. It's not available in MariaDB. So you could have a weak password in theory SSL linking is changing rapidly as well My skill user table has changed as well inside of My SQL and Prokona server. However with MariaDB, it still uses the old my skill user table from 5.5 So if you have scripts that actually make use of the my skill user table, you now have to check against MariaDB and my SQL There's no password expiry available inside of MariaDB yet There's no way to tell you if the password when was the password last changed and and a lifetime You can't lock and unlock an account like you can in my SQL And this SQL function is also missing inside of MariaDB Optimizer hints came to my SQL in 5.6 something that we still look forward to in MariaDB If you're doing automated failovers, this option called super read only which allows the which which ensures that the super user itself is also read only can't accidentally write to During a failover. This is a very useful feature. It came out of web scale SQL the Facebook and the Facebook tree and This is in Prokona server my SQL as but not MariaDB yet My SQL is shipping a whole bunch of nice new tools that one could use to make things easier If the tool requires global transaction ID to work Well, it will only work with my scale Prokona server not MariaDB There's a huge wide and varied ecosystem out there and many of these tools work with all distributions available and Today, when we use MariaDB server If you wanted to use talk IDB or should I say Prokona talk IDB then you you could use MariaDB server If you happen to still use my ISM Then you definitely want to turn on segmented my ISM key caches though. Really you should upgrade to you know DB I don't know why you'd still use my ISM The connect storage engine is kind of handy because it allows you to do ETL operations You could connect to an ODBC data source and import the data into you know DB You could connect to MongoDB for example and import its BSOL files. The thread pool is awesome open source spam authentication Open source Kerberos as well as active directory authentication. So stuff enterprises may want window functions as well as Optimistic power application could be useful This is what happens when When if you have a master that is running MariaDB say 10 to and a slave that is running 10 to as well The you can actually send replicate replication packets Not necessarily in order and it will still be fine as so especially across multiple schemas It could be fast or optimistic power up power application exist in my SQL too, but The optimistic version is kind of handy rolls of course So you could be you know, sorry brains oxley compliant When do you use prokona server? Largely when you want to have better scalability performance flexibility Diagnostics and so forth if you want to use my rocks the engine that basically powers all of Facebook's user database Totally we have a GA version available today extra DB which is a better inner DB Talking to be of course Things like the ability to enforce a storage engine or if you're doing open stack deployments, and you need a utility user That means someone to make changes to the Admin to administrative changes to the database that do not actually have access to the schema That's what a utility user does and that's that's useful when you when you're running it in an automated fashion One column compression as well perfect perfectly Good ideas for Kona server. So the idea is if you feel like you've outgrown my skill Maybe Kona servers right for you, but for everybody else today You should probably be using my skill 5-7 or trying out 8-0 If you if you don't fit in the other buckets my skill 5-7 is is very awesome Very very near future. So this when I say very near future. I expect before before summer is up My skill 8 is awesome Many of you were in the previous talk as well So you heard about what nice new features are coming in my skill 8 Maria to be 710 3 will be out also in the summer and it is going to be more compatible with Oracle because the idea now is to Have a SQL mode called Oracle SQL mode equals Oracle which will allow you to parse a lot of Oracle as Oracle syntax as well as PL SQL not all of the Oracle syntax not all of PL SQL, but a subset of it so They claim it's an 80% subset But it's it remains to be seen at this stage because I myself am not like an Oracle user. How many are used the Oracle database? Nobody Okay, and of course a Couple of other features like the proxy protocol which you also have inside of Kona server and so forth You want to always have freedom from vendor independence You want to make sure that when you're looking at a at a product how many support vendors they are So it's it's fairly obvious that Oracle probably will not support Maria DB instance Whereas if you go to prokona, we support Maria DB prokona server my SQL Maria DB now more or less doesn't support my SQL. They only want to support Maria DB instance But there are the providers to like PC and then so forth and they tend to support everything you want to be aware of vendor lock-in and Definitely know the difference between a branch and a fork A while back this guy called Michael stonebreaker is really big in the database world. He said When Facebook uses my SQL, it's a fate worse than death for them And he said just that everybody you see this new database things called both DB or something well, it turns out Facebook thought that was pretty funny, so they made this little t-shirt and They they've actually probably migrated even more workloads to my SQL Since since then so pretty much all of Facebook runs it So I think mastering the ecosystem takes a lot of time because you know nearly over 20 years But I guarantee you that once you've mastered it. You'll be you'll never be a fate worse than death With that I can answer your questions Hopefully that was a quick overview of what is available out there in the my SQL world Any questions Yeah, so why why is Maria DB switching from extra DB to DB? So they so they hired a core in a DB developer And he says that the changes to actually be now a fairly marginal that they would rather Fork in a DB rather than and actually it's it's called in a DB But it's not in a DB So if you look if you look at a code by code comparison, you'll realize that the inner DB inside of Maria DB It's not the inner DB that is shipped in say my SQL 57 and they didn't want the pain of merging two variants of you know DB They wanted to only merge one and going forward come Maria DB 10 for they're not going to merge in a DB any longer from my SQL Largely, that's also because the way my SQL has changed It's underlying structure my scale 8 and ready be doesn't want to follow same changes So they're going to cherry pick patches from inner DB and instead of making it a merge So they're gonna call it no DB, but they're not it's not going to be in a DB And in fact the 10 3 in a DB is also not the same as 5 7 in a They've changed a lot of Random little features like removing copy and swap and so it's largely because they Maria DB's decide they also like to fork in a DB Whereas for Jonas keeping actually be would say like the parallel double-right buffer for example But it's a good one to keep actually be there all the time right then very much like everything Which has been going on for many years and I think even Oracle hired X for Kona in a DB developer People move around any other questions Okay, then thank you for listening. Oh, yes Like Yeah, so talky DB still support inside of Maria DB and for Kona server We are still developing talky DB, but we're putting more energy behind my rocks Because my rocks also has compression and arguably probably performs better So, yes, we but we have customers on both sides, so Yeah Kind of a different workloads, but generally we believe most people will migrate from talking to me to my rocks eventually So maybe in another two years give or take So even it's the same with Maria DB right there It is they have customers who are using Maria DB 10 to a talky DB But once 10 3 comes out talk my rocks will become a genuinely available engine and maybe my 10 for enough people migrate I don't know but from a pro Kona standpoint. We expect to support talking to be in my SQL for at least another two years and We already gade my rocks, so we're ready to continue telling people it's okay to migrate and we that's what we like And it's much better to have my rocks being developed by not just us and Maria DB, but also Facebook, right? so We remember the whole idea of we like to work with upstream more than we like to make our own stuff It's a much more sustainable form of engineering for if you want to keep a smaller engineering organization Yeah, otherwise If we were going to say let's make our own engine. It's it's pretty expensive it's I mean we know the cost of developing say extra DB, which is why we like to send things upstream and The cost of you know forking, you know DB even in Maria DB is probably more expensive than you expect The cost of forking is expensive It's why it's much better to just work with upstream don't fork And if in this case for Kona is the upstream for talking to be since we acquired the company Yeah, talk attack was acquired by for Kona many years ago 2013 I think yeah That's how for Kona went into the MongoDB market as well because talky talky DB had a my SQL and the MongoDB product but in the MongoDB world Kona stopped developing talky DB because there's this thing called Mongo rocks, which is The Facebook version MongoDB for rocks DB used at their powers They don't have parts anymore But they are probably all the users of Mongo rocks. Okay. Thank you. Thank you. Come back tomorrow