Эпизоды
-
Fred and Scott are joined by Mughees Minhas, Product Management Senior Vice President of Enterprise and Cloud Manageability for an informative discussion of the latest LTS release fo MySQL and how the new versioning of MySQL provides a balance of innovation and stability.
--------------------------------------------------------
Episode Transcript:
00;00;00;00 - 00;00;31;20
Welcome to Inside MySQL: Sakila Speaks, a podcast dedicated to all things MySQL. We bring you the latest news from the MySQL team, MySQL product updates and insightful interviews with members of the MySQL community. Sit back and enjoy as your hosts bring you the latest updates on your favorite open-source database. Let's get started.
00;00;31;26 - 00;01;00;22
Welcome to Inside MySQL: Sakila Speaks. I am leFred. and I'm Scott Stroz. Today's episode is related to the implication of MySQL introducing LTS and to talk with us, we are joined by Mughees Minas. Mughees is the senior vice president of Product Management and Marketing, Enterprise and Cloud Manageability at Oracle. With over 20 years of experience, he has been instrumental in developing some of the most widely used Oracle Database Technologies.
00;01;00;24 - 00;01;31;26
Currently is working on MySQL HeatWave, the next generation of cloud databases. Welcome, Mughees Hi, Fred and Scott. Nice to be here. Thank you for joining us. So, how does the introduction of MySQL 8.4 as the ELTs impact the stability and long-term support expectations for businesses and developers relying on MySQL. Well, first of all, let me say that, you know, these changes that we have brought, it really is a response to what our customers have been telling us.
00;01;31;28 - 00;02;04;00
So, the first thing I will say is that, yes, we do listen to our customers. Just to give you a little bit of a background. The patch releases of MySQL 5.7 and releases prior to that were focused on bug fixes and security patches. But that changed in 8.0 where we adopted this continuous delivery model in that patch releases not only contain bug fixes but also new features.
00;02;04;02 - 00;02;30;10
So that was good for a number of our customers because it allowed us to release new features more frequently rather than having our customers to wait for a couple of years before they can get new features. However, there's also a downside to it because there are certain customers who really want a stability and this approach of continuous delivery was causing challenges for them, for projects and applications that required stability more.
00;02;30;10 - 00;02;51;26
They were only interested in critical bug fixes and patches and they did not want behavioral changes. So anyway, so we've listened to the feedback. We've looked at industry trends and we've now transitioned to a versioning model which allows us to do both. It allows us to have an innovation track and an LTS or long-term support release track.
00;02;51;26 - 00;03;16;01
So, the first thing I would say is that we introduced our first LTS release last month - 8.4 and with this new model, our customers who want stability. They want only critical bug fixes, security fixes and so on. They can adopt the LTS version, which came out, as I said last month. And those who are interested in new features because maybe they ask for those specific ones.
00;03;16;04 - 00;03;53;11
We also had this innovation train that they can adopt where with every patch that they will get the latest features that we are working on. So, our goal is really to ensure that the MySQL community has an exceptional user experience with both our innovation releases as well as are LTS long term support releases. In what ways does the LTS designation for MySQL 8.4 influence decisions around migration strategies and adoption timelines for organizations who are already using MySQL or might be considering switching to MySQL?
00;03;53;13 - 00;04;17;20
So, as I said earlier, MySQL 8.4 is our first LTS release and this one is focused on stability and bugfixes. The next innovation release will be 9.x - 9.0 - , which will have new features straight and after two years of innovation releases. We will have the next LTS release will be 9.7, which will come out, as I said, two years from now.
00;04;17;23 - 00;04;48;07
And as you can see, the way the numbering works is that we'll have a release every quarter. So ,you start with 9.0 after eight quarters we are you will get to 9.7 and that becomes our next LTS release. So, the thing about consideration that on migrations and upgrading and downgrading something for the customers to be aware of is that within an LTS release, the functionality remains the same and data format does not change.
00;04;48;11 - 00;05;11;08
Therefore, we support in-place upgrades and downgrades will be possible within the LTS release InnoDB Clone will be supported with an LTS release both for upgrading and downgrading. So, in this one, LTS gives you enormous advantages when using, upgrading and downgrading. And these are some of the considerations people have to have when they're looking at migration, upgrade and downgrade and so on.
00;05;11;10 - 00;05;46;29
So, with MySQL 8.4 LTS Right. What new opportunities will emerge for third party developers and service providers to enhance and extend that the MYSQL ecosystem? I'll just reiterate the fact that both LTS and the innovation train are GA production grade production quality and fully supported. All right. So, it's not as if we are taking any shortcuts in terms of release quality when we do innovation releases versus LTS release.
00;05;47;01 - 00;06;06;10
We do the very best we can do in terms of testing, quality assessment and so on. But, you know, anytime you a new code, it's just a fact of life. There are certain things that happen that we don't catch in our testing phase, and they do introduce instability. It's just a fact of life when it comes to new software development.
00;06;06;12 - 00;06;33;16
Having said that, when to use innovation releases, when to use LTS releases, it's up to the customer. But I can see that for those who want to access the latest features and improvements and enjoy staying on top of the latest technology innovation release is what they want. Oftentimes, these are ideal for developers and DBAs who work in a fast-developing environment.
00;06;33;19 - 00;06;57;08
They are trying to build a brand-new application. They want to take advantage of the latest features that the industry has to offer. And so, they would be very interested in doing that application development on innovation releases. And once they have built the application, they're looking for stability. Then they can adopt the next LTS release that comes with that innovation release for stability phase.
00;06;57;08 - 00;07;17;02
But I think for new application development, they there will be a lot of interest in doing it on the innovation releases. Also, if they have an interaction with us in product management and we hear from a customer, they want certain features. If you build a certain feature for them, the way they introduce it to them is through innovation release.
00;07;17;07 - 00;07;44;14
So anyways, we see that is something that's very useful for our new application development by developers. Now when to use the LTS release? Well, when you have an application where you require stability you these releases only contain necessary fixes. There is no change that breaks anything. And you basically have an application that's running fine. Your job essentially is to make sure your users use it.
00;07;44;16 - 00;08;05;19
Quality of experience is good, their application issue and so on and so forth. The application itself is not changing dramatically, right, Because it's the same application. Maybe you just upgraded to the next version and so on. And in this kind of situations, the LTS released the very appropriate. When there is less application development sort of things going on and stability is the key factor.
00;08;05;21 - 00;08;35;11
So once again, even on both MySQL, on premises as well as on the cloud side, we offer – in the heat wave that is - MySQL HeatWave. We offer both innovation and LTS release options. This model will be available both in the cloud as well as on premises. So how, how do you think the maintainers of popular open-source projects like WordPress and Drupal will change their development process with the new LTS versioning?
00;08;35;13 - 00;09;10;00
And do you think that maybe they might plan to integrate the innovation releases into their development tree? So, it's a little bit of speculation on our part. You know, first of all, most open-source products do have a similar innovation versus LTS release model. So, it's not as we're not the inventors of this, people know about that. But what I expect is that companies like WordPress or Drupal and so on, they will not be able to choose the LTS for the stable versions and the innovation releases, the innovation train or the under-development releases.
00;09;10;03 - 00;09;32;16
So, we look forward to working with our open-source products to improve the MySQL roadmap, the innovation release phase. So, this really allows us to use the innovation train as a way of addressing their requirements for us. So, we can if they ask us to add a feature, we can do that. So, they would use the innovation train for application or under-development releases.
00;09;32;19 - 00;10;13;06
But once they actually go out and make them production, we like expect them to use – rely more on the LTS release. So, I think it'll you'll see a combination of both of those things facilitating our third-party partners like WordPress and Drupal and so and so forth, how they will utilize these two releases in my opinion. So as a product management senior Vice President overseeing all of MySQL development, what features and performance and instruments of the upcoming MySQL 9 because you said earlier that the next one will be 9.0 are you the most excited about?
00;10;13;12 - 00;10;33;24
And is there a particular new feature or improvement that you can discuss with us that you feel that will be a very good for the MySQL community? I won’t list a specific feature, but let me just tell you directionally what we are trying to do in 9.0 release that I think is the part that excites me the most.
00;10;33;24 - 00;11;11;05
I think that is some of the stuff you've already heard about Gen AI integration. You know, as the vector search searches and vector store inside MySQL and so on, you know, you can really build great generic applications using MySQL. The other thing that we also plan to do in 9.0 is to use AI and AI models to simplify, demystify makes easy managing and monitoring of large sets of MySQL instances.
00;11;11;08 - 00;11;48;13
We think AI offers us a great model where we can use machine learning and these kind of algorithms to identify behavior anomalies inside your MySQL databases. So instead of you encountering a problem reporting it - users reporting the problem, then you're taking action to fix it. We really are trying to use AI in such a way such that we can identify proactively issues and areas of failure to might encounter address them before your end users are impacted.
00;11;48;15 - 00;12;17;24
So, I think AI is not just about building new AI applications in MySQL, which we will, which we are doing, and we've talked about that already in different forums, but we also want to use AI to make your MySQL databases more stable, easier to manage, and your application behavior being more predictable and less problematic. So that is another part I think that we are working on.
00;12;17;24 - 00;12;49;00
We have built-in, we collect enormous amounts of telemetry on your MySQL instances. We collect metrics, we collect traces, we collect logs, we collect events and so on and so forth. And we then essentially run large AI algorithms on the set of telemetry that we have to not only tell you what's going on right now, but to see if we can identify sequences and patterns that is indicative of a problem that will happen.
00;12;49;03 - 00;13;17;21
So anyway, this sort of new I can't be very specific about what will come, this is really something that things like AI and ML allow us to do now, that was probably not as possible, let's say two or three years ago. So, I think it's been a very interesting phase and I think you'll see more and more of that coming from our side as well, that we will use AI to tackle it things at both ends to make your experience of my skill more seamless, superior using AI.
00;13;17;28 - 00;13;47;09
And also, you can build apps on MySQL as well. So, the I think you'll hear a lot more about that. And this is some of the things that I think 9.0 release will have, and I'm working very earnestly on this and we think it'll be a pretty cool set of features that be released. Thank you very much for joining us, Mughees, in this episode about the implication of MySQL introducing the long-term support release – 8.4 the first ever LTs version of MySQL
00;13;47;09 - 00;14;06;19
So, thank you very much. Thank you. My pleasure. Thank you Mughees. That's a wrap on this episode of Inside MySQL: Sakila Speaks. Thanks for hanging out with us. If you enjoyed listening, please click subscribe to get all the latest episodes. We would also love your reviews and ratings on your podcast app. Be sure to join us for the next episode of Inside MySQL Sakila Speaks. -
Luis Soares, Senior Software Development Director and the "face" of all things MySQL replication, drops by to enlighten us about group replication and its different uses in the MySQL ecosystem. --------------------------------------------------------- Episode Transcript:
http://insidemysql.libsyn.com/mastering-mysql-group-replication
Mastering MySQL Group Replication
00;00;00;00 - 00;00;31;20
Welcome to Inside MySQL: Sakila Speaks, a podcast dedicated to all things MySQL. We bring you the latest news from the MySQL team, MySQL product updates, and insightful interviews with members of the MySQL community. Sit back and enjoy as your hosts bring you the latest updates on your favorite open-source database. Let's get started.
00;00;31;23 - 00;00;58;27
Welcome to Inside MySQL: Sakila Speaks. I'm leFred and I'm Scott Stroz. Today we are joined by Luis Soares. Hi, Luis. Hello. Hi. So, you are the MySQL replication team lead. You are responsible for the MySQL binary Logs replication related code base and MySQL bin lock tool. Yeah, that's correct. I'm happy to lead a bunch of very great people, very knowledgeable people.
00;00;58;27 - 00;01;22;22
So that thing comes easy. So, we all know you as the face of all things application in MySQL and this is why you are also the responsible of HA, point in time recovery and channels in MySQL HeatWave. So, for HA, we decided to eat our own dog food and am I correct HA in MySQL HeatWave is also using group replication isn't it?
00;01;22;24 - 00;01;52;10
Yeah. So along with the other OCI technology, we use group replication under the hood to build the fault tolerant DB system in in the MySQL HeatWave database service when deployed in single primary mode. By the way, a "DB System” for those that are wondering what it is it's the abstraction that captures all these things that are managed by the service on behalf of the user.
00;01;52;12 - 00;02;22;19
Like setting up replication, keeping everything running perfectly fine. Orchestration, orchestrating all these things related to backups and so on and so forth. In terms of how businesses can benefit, what are some of the benefits of using group replication. In the MySQL HeatWave services, there's the DB system. That's what users relate to. And under the hood we have group replication to provide fault full tolerance, right?
00;02;22;21 - 00;02;51;09
Group replication at its core relies on a quorum to commit a transaction and therefore if the primary server fails within the cluster, there is this guarantee that it's if there is a survive, there's a majority surviving this failure event, then the changes that have been produced so far will continue to be in the cluster, right? So, in other words, the data is preserved.
00;02;51;12 - 00;03;34;13
If there is a surviving majority in the event of a failure. The act of switching over the application when a failure happens is also relatively fast, because if there's a failure, there's a standby in the cluster ready to take over. So, we call that a secondary. So, usually, the time is relatively fast. So just for clarification, when you say as long as a majority of the nodes are unaffected, so you're saying like if there is a 5 node cluster and two of the nodes go down, then the transaction is still going to be committed, correct?
00;03;34;15 - 00;04;05;27
Yeah. In group replication, it happens like that, right? As long as you have the majority surviving the failure, the change will be carried on forward. Right. In which case in the MySQL HeatWave service clusters typically have three nodes primary and two secondaries. And so that's how it works. I think also it's because as we are operating this, when we have one failure, our guys can jump in directly and fix everything.
00;04;05;27 - 00;04;31;13
So, we don't need to have too many nodes there either, I guess, right? Yeah, it's I think so. It's a combination of automation and sometimes manual work. Right. So, since your team Luis is operating all the clusters in MySQL HeatWave service did group application got some improvement related to that? Yeah. I mean over the years group replication has been always evolving, right?
00;04;31;13 - 00;05;20;28
And with this with a need to power a cloud service, of course group application had to be...well it had to keep up with that right with that task or with the requirements for that task. And therefore there's has been a lot of enhancements to observability, especially with, especially with memory, more memory, implementation. So, I think over the years, if you look back into what are the replication performance schema tables, what are the replication related stages, variables and so on, you'll see an increase of, of things that have been instrumented and exposed through new columns in performance schema tables or new stages variables.
00;05;20;28 - 00;05;51;10
That's these things are extremely useful when you're when you're running things at scale. So, you need to observe to understand what exactly is going on, how, how exactly to operate and intervene in the system. So, the self-serve ability is paramount. Right? Moreover, we've been making group replication more efficient, making it more resilient to cope with that with the different types of failures.
00;05;51;10 - 00;06;25;00
Some of them are edge cases, but they happen. Also be able to deal in a more graceful way with slow instances so that it doesn't affect so much the overall state of the cluster. And we we've also extended the GR to be able to automatically recover from a few edge cases too. So, this is a whole plethora of, you know, new things that have been happening in GR over the years.
00;06;25;02 - 00;06;58;09
Yeah. And we can also say that by improving group replication for HeatWave HA right, you are also improving group replication in general. And then for example, InnoDB cluster benefits from that too, which is very great for everybody. Yeah. I think you can say that. Yeah. When I think of replication I think of making sure that the data is actually, to be redundant, replicated to a different server, to serve as a backup, read replica or something along those lines.
00;06;58;11 - 00;07;37;12
But how else can we use replication in MySQL HeatWave database service? Let me start by saying that MySQL replication has a lot of different uses in traditionally within the MySQL context, right? So, replication is or can be used for implementing things like high availability, things like read scale out by replicating for many different servers and then reading from these servers and therefore offloading the read load from the primary server.
00;07;37;17 - 00;08;07;26
So, it can also be used for and for things like point-in-time restoring particular by leveraging the binary log and even some sort of change data captured by mining the binary log which itself is a log that captures deltas or changes to your data over time. So in the MySQL HeatWave service, we follow more or less the same pattern, right?
00;08;07;28 - 00;08;42;14
We use, like I said before, from a on a previous question, we use group replication to implement fault tolerant DB systems by having redundant servers and therefore if there is a failure we can fail over from the failed server to 1 of the secondaries. But we also use replication for things like replicating from on premise to the MySQL HeatWave service and vice versa.
00;08;42;14 - 00;09;17;02
Right. So, it's this is what we typically call inbound and outbound, respectively. Some of the use cases are for things like live migrations or for setting up hybrid setups. If you couple that together with replication filters, you can even do things like partial replication from one place to another and just, you know, just having parts of the data in, for instance, an on premise and parts of the data on.
00;09;17;02 - 00;09;43;04
MHS right. So, this allows this is a very flexible, a very flexible tool, if you will, to do these types of setups, as well. Like a like I mentioned, I mentioned before, the binary log that can be used for point-in-time restore. We also use it for point-in-time restore that in the cloud, too.
00;09;43;04 - 00;10;29;25
So, replication as a whole is present everywhere in the MySQL HeatWave Service. Thank you Luisa I saw as you said, you were talking about filters that we have integrated in MySQL HeatWave. Because you said we can migrate from on prem to HeatWave. But we have also I have also seen that we can migrate from to cloud to MySQL HeatWave in OCI and we have predefined or the team has predefined some features to migrate from non-vanilla MySQL so from Amazon or whatever to our own cloud very easily for the users.
00;10;29;25 - 00;11;18;00
Right now there's a few things that when you when you replicate from an external source anything can come down the replication pipe and anything can that comes to down the replication pipe might be conflicting what with what you're running on your target instance. So, you mentioned other types of but well how to call it you mentioned some other maybe cloud providers or something that can have their own modified syntax of commands that are executed against their own, their own versions of MySQL
00;11;18;00 - 00;11;45;05
All these things, of course, can have or cannot be applied on a vanilla maestro and therefore need to be filtered out. So, this is the type of thing that these filters can help you with to avoid this, corner cases or this specific cases where you have incompatible traffic coming down the pipe and you would like to avoid it without breaking replication right.
00;11;45;07 - 00;12;24;06
So that's about it. So, thank you very much, Luis. So, keep improving HA, keep improving MySQL HeatWave high availability and in the same way everything replication yInnoDB cluster replica set, cluster set all that as a replication on the route so it's it's cool and everybody likes it. This is why MySQL are still very known for this replication. I would like to say one thing before we close... we talked about replication as if it's a cool new thing and so on.
00;12;24;06 - 00;13;03;16
But it's it's interesting it's very interesting that within my MySQL itself, has traditionally been around with the with MySQL for a very long time that, right. So, it's very interesting how things have evolved over the years and continue to evolve right. Like, Fred you were saying let's continue to improve it let's it's everywhere and so on and so forth. So, it's a very interesting thing to observe over the years seeing these this gradual evolving of replication itself.
00;13;03;18 - 00;13;23;24
It's nothing new in my spell but it's been evolving so much over the years and it's very, very interesting from I mean, I'm biased but from where I stand it's a great thing to observe, I think. Thank you, Luis. That's a wrap on this episode of Inside MySQL: Sakila Speaks. Thanks for hanging out with us.
00;13;23;29 - 00;13;47;04
If you enjoyed listening, please click subscribe to get all the latest episodes. We would also love your reviews and ratings on your podcast app. Be sure to join us for the next episode of Inside MySQL: Sakila Speaks. -
Пропущенные эпизоды?
-
For this episode, Fred and Scott are joined by Miguel Araujo, Senior Principal Software Engineer for MySQL Shell. Miguel outlines MySQL Shell's history and discusses its more popular and powerful features. The conversation winds down with us discussing our favorite features.
---------------------------------------------------------
Episode Transcript:
00;00;09;13 - 00;00;30;16
Welcome to Inside MySQL: Sakila Speaks, a podcast dedicated to all things MySQL. We bring you the latest news from the MySQL team, MySQL product updates and insightful interviews with members of the MySQL community. Sit back and enjoy as your hosts bring you the latest updates on your favorite open-source database. Let's get started.
00;00;30;20 - 00;01;01;11
Hello and welcome to Sakila Speaks, the podcast dedicated to MySQL. I'm leFred and I'm Scott Stroz. I know today's guest for a long time already has had the chance to work with them on several solutions. Please welcome Miguel Araujo, Senior Principal software Engineer on the MySQL Shell Team. Miguel is the technical lead developer of the Admin API, core component of the HA and the replication solutions like the MySQL InnoDB Cluster MySQL InnoDB replica set and MYSQL InnoDB cluster set.
00;01;01;28 - 00;01;25;07
Welcome, Miguel. Hey guys. Thanks for inviting me to this podcast. So, Miguel, we want you to talk about MySQL Shell. Can you give us a high-altitude overview of what MySQL Shell is? Basically, what it is, who should be using it and why? So first and foremost, Shell is the command client for my SQL Server, right?
00;01;25;21 - 00;01;50;28
You can do with Shell what you could do with a classic MySQL client. So, you connect to a server to my SQL server and it can run queries on it using SQL. But Shell is much, much more than that. It's a... we like to call it a modern advanced command client for MySQL server, and maybe I should get a little quick history lesson about it.
00;01;50;28 - 00;02;27;00
So, Shell came out with... there was a purpose to build this new command client and this kick comes back to 2016. If I recall correctly, when the document store was being developed and implemented. And with MySQL Doc Strore we have created this new API to interact with it, the X-dev API, and this X-Dev API follow the common standards and this was implemented in JavaScript in Python, and for that we needed a new shell, a new command line client to interact with the server and speak.
00;02;27;10 - 00;03;05;16
This is new API and interact with the Doc Store. So, for that we create this shell with the with implementation of the X-Dev API exposed in JavaScript and Python. So Shell was born with a with this multi-language support so SQL classic and then JavaScript in Python and in the beginning with with the X-Dev API exposed to those two languages. But we also built it as a modern interface, so it has a customizable and reactive prompt.
00;03;05;29 - 00;03;32;21
It has auto-completion, syntax highlight. It has a built-in help system. So, it's built as the for example, we have in Linux bash or the Shell or on Shell or whatever or in Windows PowerShell and Shell can be seen as something like that. But for MySQL, so you started your shell, you can run commands in it, you can connect to instances and operate on them.
00;03;32;21 - 00;04;06;21
So, it has this interact interface and also a scripting interface because since you have support for those languages, for JavaScript Python and SQL you can write your own scripts and then you can execute them in in Shell. And a another general feature ... most known and, and useful are the APIs built in. So I was just mentioning the X-Dev API that was the first one.
00;04;07;07 - 00;04;37;05
And then we of we have introduced the Shell API and the utilities and then the Admin API and the so starting with the Shell API, for example, we have operating system utilities. You can create reports, you can create plugins. The utilities include things such as the upgrade checker that is a utility built in shell that you can use to verify whether your server is ready to be upgraded to the new version.
00;04;37;20 - 00;05;09;05
And if not, what needs to be done. You have things as dump and load to dump instances and load them. This is very fast. It's it's very loved by the community and the Admin API that is used to deploy MySQL architectures like Fred said in the beginning – InnoDB cluster states replica set and so on. And also Shell is extensible, can write plugins for it and that's something great.
00;05;09;05 - 00;05;35;10
And that's one of the things that makes it a modern client. Yeah, to be honest, I am a very fan of Shell. It replaced the old MySQL client for me, the classic one I always use Shell everywhere. And so recently during the MySQL Belgium days, who you are there, you were speaking also about Shell. Many people like Booking.com and Canonical guys.
00;05;35;18 - 00;05;58;14
They praised MySQL shell. They use it, they love it, and especially the admin API. So let me ask you a personal question. As the Admin API is your baby, are you proud of that? Oh yeah, I am. And it's it's you know, it's one of the most rewarding things that you can get as a as a software engineer is to to get this kind of feedback from the user.
00;05;58;14 - 00;06;34;08
So, I know now that I didn't waste seven years coding this thing for nobody to use. It's I don't know that there's a lot of people happy with it and lots of users and, and people like Booking.com or Canonical using it. It's, it's, it's really motivating. It's, it's really rewarding. So, I'm quite, quite happy about it. And and not only that they, they are users there but they use it extensively and they have huge deployments and the kind of feedback you get from those those users, it's it's it's great.
00;06;35;03 - 00;07;02;09
It validates many of our decisions and invalidates others and provides feedback to make things better for the future. So, it's it's really it's really great, really happy. So as a developer myself, I can appreciate the the feeling of hearing that other people like what you've created. So, congratulations on that. Yeah, thanks. Now, you and Fred have have both talked about the admin API.
00;07;02;24 - 00;07;44;10
Can you give our listeners some details about the API and what can be done with it? And is there any functionality in the API that maybe hasn't been implemented yet? Okay. So again, a bit of historical context. So, MySQL has had support for replication for a very, very long time. Right? There was the asynchronous classic replication and before we put before Shell and the other API DBA and, and sysadmins and so on, they, they had to deploy those replication topologies manually.
00;07;44;20 - 00;08;18;09
And that involved a lot of steps, manual steps. It involved a lot of scripting, automation, monitoring and so on. And that's led to many customized, customized solutions, lots of deviations and lots of work for this. These people maintaining those architectures. And then in 2016, 2015 of them remember exactly the group replication was being developed and it came out as a preview.
00;08;19;17 - 00;08;50;17
And with that we thought. So, we have Shell, we can write APIs in Shell, we can manage instances of MySQL, so, let's do something to help users to deploy MySQL architectures. So back then, architecture based on group replication and asynchronous replication. And let's make an API to make that super easy to deploy, super easy to maintain and ...and to monitor.
00;08;51;01 - 00;09;19;28
And this is how the Admin API was born. Initially we focused on group replication because this brought a lot of great things, such as out of a lower consistency network, partition handling and so on. So that was the first focus and we, we've, we've developed the API with that in mind because group replication wasn't and still can be tricky to deploy and maintain.
00;09;20;15 - 00;09;48;07
And with the Admin API with just two or three commands, you can have your cluster up and running. It's very easy and it's very, very straightforward and it's pleasant. We tried to focus on usability a lot to make the experience pleasant, but also it's you're also it's powerful in the sense that you also can do things and configure things to the data.
00;09;48;07 - 00;10;34;13
So, so the Admin API was born from that need. And we, we introduced the support for InnoDB Cluster, but then we also added support for sandbox management. So, you can deploy sandboxes to test the solutions before going into production. You have things to help you configure the instances to be ready for the MySQL architectures. So, with a single command you can connect to an instance and the command will tell you some instances where they are not in the sense of if if the right configurations are in place and if they are not, you have another command that will just apply them for you.
00;10;34;17 - 00;11;22;26
So crazy. You also can create accounts to manage the topologies and then you have the whole set of commands to deploy InnoDB cluster, InnoDB replica set, cluster set. And the last addition is read replicas. We have integrated the whole thing and we have also integrated provisioning. So, for example, when you add an instance to a cluster, we will take a look at the GTID sets and the replications, the status of the data sets and so on, and we will guide the users to to the right provisioning method either based on replication or clone, and Shell will automate everything for you.
00;11;22;27 - 00;11;53;29
So, users will have to do any tricks and configurations. It's all integrated and with with the together with all of this, the router management that is another piece of the solutions. And one of the things we we were also careful when implementing the Admin API was to follow best practices as we would deploy the topologies with the recommended settings as defaults.
00;11;54;07 - 00;12;21;04
Then users can change of course, but we tried to follow the best practices. So, this is what the API is about. It's an API built in shell, in shell, everything is written in C++ just so the details and then those things are exposed as APIs in JavaScript and Python. So, you can access the the language of your choice, you can script it.
00;12;21;13 - 00;12;47;14
You can also call Shell with this command, the command line API. So, you can call Shell as the shell binary and in a non-interactive way, so called the shell binary. And after that you can pass the parameters to Shell and those parameters can be calls to the Admin API. This is good to integrating in other scripts or other tool things.
00;12;49;12 - 00;13;43;07
I think you asked before what's missing from the admin. That's that's the hard question that because there are so many things that can be done I can for example in with the general feeling that I get or one of the things that people ask recently is to have the an API as a standalone Python library, for example, the canonical folks were requesting that and there's there's a lot of people that's write scripts in Python to use the Admin API and those scripts have to call shell after a shell somehow there are multiple ways of doing it and then they they use the other API and some people think that it would be better if they could
00;13;43;07 - 00;14;14;21
import in their Python scripts the API is a standalone library, so this is one thing possibly missing that we might work on and provide to the users. Somewhat related would be a different approach Approach to that would be to have Shell running as a demon and with an HTTP interface and the API will in that case be exposed via REST.
00;14;15;08 - 00;14;55;22
So, people could just to the rest API calls to run the API. So, this will make the API language agnostic. So no JavaScript or python. This could be something nice. In terms of usability. So, the Admin API most of the output is JSON. This is a standard practice in this kind of API. So for example, when you call cluster starters, you get the status of your cluster in a JSON object with all the topology and the status based for every instance.
00;14;57;15 - 00;15;36;08
Maybe some people like to have a different output. For example, table or YAML, or text based and maybe add some colors on it. This could be interesting. What else? In terms of architectures? MySQL architectures there are some things missing. For example, support for multi-tier replication in replica set or or even with replicas. So, you could build trace of replication to offload servers to be something interesting.
00;15;36;08 - 00;16;16;24
There is something missing that I would like to work on eventually. That is a better framework for options management. So, option management, I mean settings of the cluster members, something better to apply a setting or no members or are a kind of this I would like to call it an options framework. So, make it easy to change options so users could do those things using the Admin API instead of logging to each instance and do the changes manually.
00;16;16;24 - 00;16;48;15
There are some things to work to integrate better. MySQL router in the sense of manage management of other instances and also monitoring. It would be nice to have something like this called self-healing. For example, you have a cluster and one of the members is missing, but it's reachable. The way to to solve that is to call a rejoin instance.
00;16;49;05 - 00;17;09;11
We have a cluster self-healing command that will call the command, and the command will take a look at the cluster status. And for example, if this is an instance missing but is reachable, will rejoin it or if it needs that the risk and needs to be called will call it. So, kind of a command to encapsulate that would be could be nice.
00;17;11;02 - 00;17;41;19
We also have some things missing regarding the enterprise features. So, support for firewall or enterprise Firewall and enterprise audit as well. Yeah. From the here that's a can remember now and also what I can share but is missing from the Admin API. So there's there's work to be done. It never gets boring. Yeah it seems so so you have plenty of new challenges.
00;17;41;19 - 00;18;09;25
So even if we reach something very mature right now, we can see that there is still plenty stuff to do. But, you know, I will tell you a secret. I have deployed maybe once or twice a group replication manually wrote all of the rest of the time. I always use the the admin API with MySQL shell and the and even asynchronous application.
00;18;09;25 - 00;18;38;23
Now I would say I don't even remember how to do it manually. Replica set is so easy to do, so there is no secret than that. So yeah, you said that MySQL Shell support so as well, which is great of course Python and JavaScript. But I've also heard from the users, you know, and I know we provide all the binaries, but there are still a lot of people in the community that likes to compile themself.
00;18;39;05 - 00;19;06;18
Their binaries, right? And they compile also the shell and the, but these guys, they tend to skip building MySQL Shell with the V8 engine, so the, the engine for JavaScript. So, I would like to ask you if there is an issue to not have a JavaScript support in the shell, because when we check our documentation or blogs most of the time everything it's written using JavaScript, right?
00;19;06;26 - 00;19;46;18
So, would it be a problem to not have a JavaScript compiling in my shell? Well, no, not at all. It's just a c-make a flag, you can disable it and you can get shell without V8 and without JavaScript support and there's no issue at all anyone can do it. And I so there are historical reasons why about your the second part of your question, the way we we have documentation and examples all written JavaScript and it's historical reasons, JavaScript was was the default of shell.
00;19;46;18 - 00;20;11;26
It's changing in the next release to SQL by the way. So, JavaScript was the default for historical reasons because of the dev API, and that's why the other API examples and so on were all written in JavaScript just because it was the default. I think now we understand that very few people use it in JavaScript and most of our users use it in Python.
00;20;12;13 - 00;20;48;01
So, I think that we should definitely start blogging and exemplifying and possibly changing the documentation to, to use to write the examples using the python. So yeah, we should definitely do that. Yeah. Thank you. Yeah. So there is no limitations to everything that you expose in JavaScript. You expose it also in Python. Right? Exactly. So like I was saying before, Shell is written in C++ and then we have language bindings and we expose the APIs in both Python and JavaScript.
00;20;48;08 - 00;21;09;15
If Shell is built without JavaScript support, then those are only exposed in Python. So there's absolutely no no limitations. And I have a favorite feature of MYSQL shell, which I'll share after you tell us what is the feature that you like the most or use most often that you don't think other people know about or don't think they use enough?
00;21;09;18 - 00;21;28;12
Has to be one. I think I have many. There's one that I think a lot of people are not at least not aware of it, and that's the built in help system. I see people relying on the API documentation and so on went online when they could have it in shell itself and it's so easy to access it.
00;21;28;12 - 00;21;57;12
Just do slash help or slash backslash help or backslash question mark. And then after it you put text and you can have access to, to the to the built in help system. So, for example, the backslash Admin API and it get the description of what the admin is, what objects are available on the API or what the classes and for example is the backslash cluster and it will print to the available cluster commands.
00;21;57;26 - 00;22;24;15
Then it can access every single command, help information. It's really, really helpful and you do it all in shell. You don't need to go to a browser or anywhere else to consult that information. And there's there's more to that. You can even, for example, connect to an instance. You establish a session to an instance, and you can access the information about the the commands you can do.
00;22;25;05 - 00;22;52;16
The backslash help, for example, show and it'll give you the information about show or transactions or all the the the supported and MySQL commands. And this is really good sometimes I'm writing a query and I need to understand or to get some extra information about some specific command. And I just do it in Shell and this is just awesome.
00;22;52;16 - 00;23;14;28
But there's, there's more. Okay. And this one Fred loves that is the plugin supports that. Fred even has a repository in GitHub with lots of plugins. So, what I also contributed to some of those and I think this there's still some people that are not aware of it. You can extend Shell, you can write your own plugins in Python.
00;23;15;13 - 00;23;46;04
It's it has become really, really easy to do it and it's awesome. I wrote my own plugins to do management of my testing environments. For example, and I love it and I think people should be, should be, should use it more. So that's one of my favorite features. I have more. I don't know if you want to share your Scott Well you stole mine...it was the help system.
00;23;46;06 - 00;24;13;09
Oh right. Oh cool. Yeah I use that. I use that all the time because I just can't remember the, the exact syntax or most of the time it's, it's trying to make sure that I have the options right for whatever, you know, configuration block that might be available for a particular command. But I use that all the time and it's like it I was like really surprised how comprehensive some of the documentation is through there.
00;24;13;15 - 00;24;34;22
Fred, what's your favorite? I won't say it's my favorite, but one. It's not. It's not commonly used and it could help a lot of people. It's the reporting framework. So like you can write your plug ins, but you can also write your reports and there are some built in reports and there I see very, very few people using those reports.
00;24;35;07 - 00;25;02;03
And the sometimes it's quite cool that you can have a small shell window running and that to make your own. For example, I created a report to see the the speed of the group replication are running in a cluster and you can see a life, Oh, it works. Well, I think that this is cool under very underused or not even used by people and I think they did.
00;25;02;03 - 00;25;27;24
They should because it's very, very interesting. Yeah, I agree. We have some built in reports but it's like you said, it's really easy to create new ones and then you can use, for example, slash watch and summary parts and you have a shell window. They're running every 2 seconds the reports and you get information. For example, memory is or threads and these kind of things.
00;25;28;02 - 00;25;57;27
It's really useful and should people know about it? There's something else that I use a lot and is the is you can execute system commands in shell and I think no one knows about it then you just do backslash system and you can do system command you can do a sudo apt-get install or you can do an ls or anything in shell.
00;25;58;04 - 00;26;26;25
So it's you don't need to switch the terminals to the commands. It's, it's really cool and really cool and similar and it's not the same but there's something else that is is the edit commands with edit Shell will launch your default editor for example. VI and I use this a lot when I'm testing admin API stuff, so I do slash edit vi is launched and I write my commands to create a cluster.
00;26;26;27 - 00;27;06;11
For example, I deploy some sandboxes I call create cluster, I call out these things, etc. etc. All in this API editor and then I do save and all that information goes to show and just it hit enter and everything is executed. It's it's really useful. I like it a lot. What else. There's something that people ask a lot and is so Shell has it saves the history of your comments per session and sometimes people say, Hey, I lost my session history because I closed Shell, but you can save it.
00;27;06;26 - 00;27;26;29
It's just a slash history save and it will save the history in the file. And when you launch Shell again, you will have the lowest days through there. I also use this a lot, so it's very useful. So yeah, those are my favorite ones. That's all for this episode. Thank you to our guest, Miguel Arroyo, and thank you for listening.
00;27;26;29 - 00;27;49;01
Please join Scott and I again next time for another Inside MySQL: Sakila Speaks. That’s a wrap on this episode of Inside MySQL: Sakila Speaks. Thanks for hanging out with us. If you enjoyed listening, please click subscribe to get all the latest episodes. We would also love your reviews and ratings on your podcast app. Be sure to join us for the next episode of Inside MySQL: Sakila Speaks. -
The MySQL Team has implemented a new versioning model that includes LTS. Geir Hoydalsvik, Senior Director of Software Development for MySQL stops by to give a primer on this new versioning model and breaks down the differences between the '8.0' releases and the 'Innovation' releases.
-------------------------------------------------------
Episode Transcript:
00;00;09;13 - 00;00;31;20
Welcome to Inside MySQL: Sakila Speaks, a podcast dedicated to all things MySQL. We bring you the latest news from the MySQL team, MySQL product updates and insightful interviews with members of the MySQL community. Sit back and enjoy as your hosts bring you the latest updates on your favorite open-source database. Let's get started.
00;00;32;01 - 00;00;55;00
Hello and welcome to Sakila Speaks, the podcast dedicated to MySQL. Hi, I'm leFred and I'm Scott Stroz and I'm Geir Hoydalsvik. Yeah. Today our guest is Geir Hoydalsvik, software developer, director, responsible for MySQL development and maintenance of the MySQL database. This includes the following teams: server General, Runtime Optimizer, InnoDB, Server QA, and Sustaining.
00;00;55;04 - 00;01;19;15
Am I right? Yeah, that's correct. Geir, in April, the very first LTC version of MySQL will be released. Can you tell our listeners why this is significant? Yeah, that's the answer to kind of a customer and user request is to have stable releases that people can pick up security bug fixes, for example, without risk of having regressions by new feature and so on.
00;01;19;15 - 00;01;47;18
So, the long-term support release that we call LTS is actually stable for eight years, that people can buy support for this time period and essentially, they're guaranteed stability for a long time. Thank you. So between the LTS, so the major release, we will also release innovation releases. So, are those developments releases, or are there also production GA quality?
00;01;47;28 - 00;02;42;26
Thank you. A good question. They are also production quality. So, the current plans are that every second year we will release an LTS release and between two LTS test releases we will release, as you said, innovation releases every third month. So, there will be roughly eight of those between two LTS and they are production quality so people can get support or will get support with having these releases in production and this will be for people that are okay with more frequent changes and, and are willing to spend the energy of upgrading and so on between these and perhaps also take into account that releases features can go away deprecate old deprecated features can be
00;02;42;26 - 00;03;08;28
removed in innovation releases while they're never removed in LTS releases. So that's what people need to keep in check out, but they're absolutely useful and they will be supported. So as a follow up to that, what's the difference in the numbering between the LTS releases and the innovation releases? When it comes to version numbers, there is kind of a transition now between eight oh and eight four.
00;03;08;28 - 00;03;46;16
So, the first LTS release will be called 8.4 and that becomes in April. Then the main the LTS releases will be called 8.4.1, 8.4.2, 8.4.3, 8.4.4, 8.4.5 and up. So, the maintenance releases of all that LTS will be called like that. Then at the same time we will start producing innovation releases for a 9 series. So, there will be and I know 9.0, 9.1, 9.2 and so on up to 9.7 that is planned to be the next LTS release.
00;03;46;16 - 00;04;13;24
And I think in the future it will be probably more like 10 will be the next series and then 11, or at least that's how we think about it today. So, you can say that 8.4 is a little bit an exception there. That transition into a 9.0, 10.0, 11.0 and type of numbering. And then the second number will be the innovation release number essentially.
00;04;13;24 - 00;04;46;00
So, the main is the first one, the LTS number, and the second is the innovation, roughly speaking. So, it's our understanding that all of the MySQL products will follow the same release model, but not the connectors. Can you talk about that? That's that's correct. So, all the server-side products will follow the same LTS model. While on the connectors side, you are recommended to use the latest connectors that will then support all previous releases.
00;04;46;00 - 00;05;22;28
So. So when you use the latest, you can use the current release and everything older kind of thing. So that's how it works. And yeah, it's a pragmatic choice that we feel is what users want us to do is actually. So, when we see what will and what will happen with the LTS, something that I noticed is and for me maybe the most significant change is compared to what we had with the MySQL 8.0 is that in the LTS lifecycle, the downgrades and clone between different minor version will be supported, isn't it?
00;05;22;29 - 00;05;50;19
Yes, that is correct. So, this is a change from 8.0 train in 8.4 we will support upgrade and downgrade between any maintenance release like let's say 8.4.2 and 8.4.5 and you can go up and down between those both upgrade and downgrade and you can also clone in any direction between those two.
00;05;51;12 - 00;06;16;23
So that's also something that people have requested because they feel then they can more safely upgrade because there is an easy way to downgrade and so on if something is not working as they expected or something. So yes, thank you. This was really something that people were requesting. So that's great. Yeah, I can see how that's really going to help.
00;06;16;25 - 00;06;46;05
You mentioned MySQL 9.0. If a customer starts using MySQL 9.0 when it's eventually released, how long would that be officially supported? Using our new licensing model. The current plan is to have an innovation release every third month and then you can say that that is supported until the next innovation release. So, let's say if you're on 9.1, let's say that you're using innovation release the release called 9.1 and then three months later there will be a 9.2.
00;06;47;02 - 00;07;18;04
So if there is, for example, an issue that we have fixed in 9.1, it will be shaped as 9.2. So, people then need to upgrade to 9.2 to get that fix. That's essentially the model of innovation releases. So you need to go to the next innovation release to get the fix. And while for LTS, you will get every third month fixes to the stable LTS and that's how they differ, so to speak.
00;07;19;03 - 00;07;52;05
Another thing in in innovation releases, we will from time to time remove something that is has been deprecated before and this will not happen in in LTS releases. So, they are also stable in this respect. There is no removal or not anything that just critical bug fixes period. While innovation releases there is a little bit more the new features, removals and these things that then you need to follow the release notes on.
00;07;52;05 - 00;08;15;11
Yeah, thank you very much. So, I hope this will help people to understand our new model and the we are very expecting and looking forward the first LTS version of our MySQL. So, the first one will be it for next month. So, we are very happy with that. We are also looking forward to this, looking forward to see people's reaction on this.
00;08;15;19 - 00;08;34;13
Geir, thank you for joining us. We really appreciate it. Thank you very much. Thanks to both of you for having me. That's all for this episode. Thank you to our guest Geir Hoydalsvik and thank you for listening. Please join Scott and I again next time for another Inside MySQL: Sakila Speaks. That’s a wrap on this episode of Inside MySQL:
00;08;34;13 - 00;08;56;07
Sakila Speaks. Thanks for hanging out with us. If you enjoyed listening, please click subscribe to get all the latest episodes. We would also love your reviews and ratings on your podcast app. Be sure to join us for the next episode of Inside MySQL: Sakila Speaks. -
Wim Coekaerts, Executive Vice President of Software Development at Oracle joins Fred and Scott for the inaugural episode of Inside MySQL: Sakila Speaks. Wim gives us an update on the "State of the Dolphin" and discussed where MySQL fits into the landscape.
--------------------------------------------------------
Episode Transcript:
00;00;09;13 - 00;00;31;20
Welcome to Inside MySQL: Sakila Speaks, a podcast dedicated to all things MySQL. We bring you the latest news from the MySQL team, MySQL product updates and insightful interviews with members of the MySQL community. Sit back and enjoy as your hosts bring you the latest updates on your favorite open-source database. Let's get started.
00;00;31;25 - 00;00;54;01
Hello and welcome to Sakila Speaks, our new podcast, dedicated to MySQL I'm Scott Stroz and I am leFred. Who better than Wim Coekaerts to be the very first guest on our new podcast. Wim is the Executive Vice President of Software Development at Oracle, is a well-known developer in the open-source community and a leader in several projects such as Oracle, Linux and Virtualization.
00;00;54;12 - 00;01;16;08
Oracle Enterprise Manager, MySQL and Heat Wave and various cloud services. Wim has a degree in Computer Science and from the University Catholique the Leuven in Belgium and has been working at Oracle since 1995. Wim, thank you for joining us today. We're really excited to hear about your work and your insights on the Dolphin database. Thanks Scott and thank you, Fred.
00;01;16;15 - 00;01;39;03
It's great to be here, happy to open the first podcast. So, Wim, what excites you most about MYSQL right now? Oh, there's some stuff going on, right? So I think the number one thing is the fact that we're doing a very important and great cloud service. And I know that we talk a lot about on premises databases and so forth, and obviously that's very important.
00;01;39;03 - 00;02;01;00
And the reason I mentioned the cloud side is because there's a lot of opportunities that we now have as a development team that allows us to make MySQL much better than it ever was. And the primary driver for that, and when I bring this up is because in cloud we are the DBA, we are the ones that actually have to deploy the server.
00;02;01;00 - 00;02;38;13
We have to go and do the backups and understand how that works and set replication and so forth. And it gives us a much better insight into the use of the product than we ever had before. Right? And I think that's the one thing around cloud that ask me the most is that from a development team point of view, working on a product like MySQL server in that we get a lot more input directly instead of working from customer to potentially running into a bug or getting feedback, but there is always a certain amount between the customer and our development teams.
00;02;39;00 - 00;03;04;27
And, so, with cloud we become that customer directly and it gives us a lot more direct experience and a feedback loop that's internal. And, so, a few examples of that would be a first of all, scale, right? We run thousands and thousands of servers now in production, right, for our customers, but we are the ones running it. And, so, we have to deal with performance issues.
00;03;04;27 - 00;03;34;24
We have to deal with potentially, you know, bugs that appear, how to debug that and making sure we get these bugs and security vulnerabilities and everything fixed really quickly for that that they're out there. We have a huge test farm, you know larger than ever before again because of the scale of cloud. And we learn a lot about how we can do things more easily because of automation and how to change the product to support that automation.
00;03;34;24 - 00;04;01;29
Right? And all of that stuff actually goes back into the product that is known as MySQL Server that, you know, goes both into the Community Edition and Enterprise Edition that that customers and developers can download and install locally. And so, you know, both inside of Oracle and inside the development team and from customers, there's this feedback that says, well, you know, you all need to talk about the cloud development and what's in it for us.
00;04;02;16 - 00;04;29;06
And I think that what I just mentioned really is what's in it for everyone else. The bugs we find, the performance issues, we find they all go back into the product. The enhancements we make to simplify things and, you know, feedback from our own use almost back into the server. Of course, when it's applicable to the server and not something more around a control plane in the cloud itself and the orchestration.
00;04;29;18 - 00;04;59;04
But there's a lot of that stuff that goes back into the product set itself. And that's you know when I say most excited that's probably the, the number one. Then I would say secondly, you know, we are also doing things that are very innovative. And again, some of this is cloud only, such as working on the heat wave engine and working with machine learning and artificial intelligence integration.
00;04;59;05 - 00;05;21;07
So certainly, Gen AI work in vector database support and improving the optimizer for some of this work. And I wanted to point that out again as well. So, as we did Heat Wave, which is specifically tied to the cloud service side, we have to make a great number of changes on the optimizer in MySQL to support that.
00;05;21;20 - 00;05;45;23
And by doing these really, really high end incredibly fast areas. And you know of course running benchmarks like TPCH and TPCS and so forth, we learn of a lot of potential deficiencies in the older optimizer. And so now we're working on hyper graph a lot more and where we're enhancing that and that will benefit again everyone else as well.
00;05;45;23 - 00;06;12;22
They use heatwave or not, whether they use the cloud or not. And so anyway, so I think, you know, our development teams are really working on cutting edge stuff. We just released JavaScript support in MySQL in ...on OTN - Oracle Technology Network - for download that everyone can use for testing development freely downloaded, and that brings JavaScript support into MySQL Server itself.
00;06;13;07 - 00;06;43;29
And then of course we have my router which added support for REST API calls a while back. And so, if you think about it, you can now write an application, let's say from your cell phone you have a basically a cell phone app or a mobile phone app that just does REST API calls to MySQL Router and from MySQL Router direct API calls go into the database and your business logic runs in the database itself and gets the data from the database.
00;06;44;10 - 00;07;12;10
So, you don't need a real middle tier anymore. And you can simplify data access and the actual business logic all combined into the server. So, it's pretty unique compared to all the other databases that ask directly competes with the implementation of JavaScript using Graal VM and as some of you might know with Graal VM we might also or will also start supporting other languages in the future.
00;07;12;10 - 00;07;42;23
So think about Python in the database and of course Java in the database. Those are all roadmap items. Can’t give you specific dates on that because you know, we're just beta, which we had one, but in the end we are moving forward with a good ecosystem of multilingual support in the database directly that supports, you know, a better security model, faster access to data, because the data and the business logic run within the same environment and everything from at with the router.
00;07;42;23 - 00;08;08;00
And then of course, you know, I'd say one last thing here. The VS Code plug in that the team has worked on and since VS Code is one of the most popular IDEs out there today, that of course, you know, it has so much functionality built in now with perf hub support as well as you can see performance data right included in the in the editor and of course direct connectivity with your database.
00;08;08;00 - 00;08;35;04
So there's a really nice ecosystem around developers with VS Code, with the router, with rest APIs you can use or the Oracle REST Database Service as well if you want that supports MySQL as well. And then of course, all the all the stuff that we're doing around cloud and security that ultimately flows into my MySQL server. So it's a very long answer to a short question, but obviously there's tons going on.
00;08;35;09 - 00;08;55;22
Well, when there's a lot of stuff to be excited, it's good to have a long answer. Why do you think MySQL is so popular with the top open-source projects? It always has been, I suppose. Right. And, you know, I think it's just a continuation of the of the past. So,MySQL was really fast and still it's really fast.
00;08;55;22 - 00;09;37;25
It was really simple to get it right next to the list really simple to install and getting up and running. It's so it's really easy to install and it's ubiquitous. It runs on every operating system in every CPU architecture you can think of. And so, if you want to build an app and have flexibility and have a very small footprint, let's say a raspberry Pi, which with for applications running MySQL server, it works just fine and all those areas and because a lot of the drivers are in standard and the standard package is a lot of the libraries support MySQL out of the box open-source tools and open-source libraries and
00;09;37;25 - 00;10;05;09
SDKs and projects there is very little additional development to do to get going with MySQL and so you know that's that was an I think still into the main driver and will continue to be. And I also think that we have, you know a lot of work on MySQL server over the years and obviously are still heavily, heavily invested in it and continue to do so.
00;10;05;24 - 00;10;45;26
And it shows the community and the users that, you know, we are our in all of this and, and it's important. So, it's a great it's a great platform. Yeah. Thank you. So, because you were talking about the MySQL community. So where do you see the future opportunities and direction for the MySQL community then you discussed about the like and now even the application or the system inside the database, which was something, for example, that we were not doing much in MySQL due to get to slow procedural kernel not that good.
00;10;46;05 - 00;11;08;03
So now with all this stuff, do you see this is the direction that we need to go? I think so, and I certainly hope so, because that's, you know, that's what we are working on. The you know, there is a lot of complexity in sort of the existing world today. Right. You have to install the middle tiers, you have to fill the databases, you have to get the clients going.
00;11;08;04 - 00;11;36;24
I think that cloud application development forced people to start using REST APIs a lot and automatically disconnect. So again, for us to put more effort into support for APIs as a front end to a database makes it a lot easier for new developers to get started That might not have database experience. So, it opens up MySQL to a broader development team.
00;11;37;07 - 00;12;04;08
Unknown
But also, you know, the scripting language in in MySQL and other databases. Lots of developers don't really learn that anymore. They want to use something that that they use for their everyday job. And so ,if lots of people are using Java and JavaScript and Python on the in their in their job for developing applications every day and then have to switch to a different language in MySQL or in another database.
00;12;04;19 - 00;12;27;10
that's an actual learning step. And if you don't do it all the time, there's always the startup time that basically is a waste of time or an extra amount of effort that that people don't really like to do. And so by making it really easy to access the data, then it makes it a lot easier to build and much faster to build applications.
00;12;27;10 - 00;12;55;03
And then secondly, we obviously are very focused on ensuring that MySQL Server, whether you run it on prem and whether you run it in cloud with our MDS service, MySQL database service, that that remains the same. And so that when you develop locally with an deploy and cloud which happens more and more for everyone, that's sort of the nature of how the IT business is evolving.
00;12;55;11 - 00;13;26;26
It makes it a lot easier to make that migration stuff and adding HeatWave on top of that again, we could have made HeatWave an independent service with its own access layer, but since MySQL is so popular and well known and easy to use, having the HeatWave engine built into MySQL and make it basically transparent allows us to expand that whole environment without the user or the developer having to make any application changes.
00;13;27;10 - 00;13;50;17
It will help you want to do data warehousing, no problem. You want to ingest data from object storage through Lakehouse. No problem. You want to do machine learning on your data. It's all in the same database. And so, I think one direction being cloud and I think that the MySQL community in general, yes, that's good for for the community as well.
00;13;50;17 - 00;14;24;25
It's not just about the on-premises installation of the server, but in general things we can do in this... in this case. And so that will be the I think the main opportunity and direction for the server. And then you know, Gen AI and to... Gen AI has sort of two angles to add. One is how can we provide MySQL with better support for developers that want to do their own interfaces and applications on top of Gen AI.
00;14;24;26 - 00;14;57;26
And then the other aspect of it is how can we create sort of a natural language interface to the server so that you can basically say, please get me all the data from that, every department where, you know, employees have been out for 3 days and I'm just making something up on the player. But basically you can, you can have a natural language sentence which we then transform into a SQL statement in the back end towards MySQL.
00;14;57;26 - 00;15;26;09
Well, it's just an example, but you see a lot of that type of stuff being worked on at Oracle, but also, of course, our competitors. And it totally changes how we interact with products and also change how interfaces are designed in the future. I think that is something we want to make sure MySQL is part of as well and stay current with this stuff.
00;15;26;09 - 00;15;50;17
Awesome. As we mentioned before, you're a pretty prominent figure in the Linux ecosystem. If you were to compare the MySQL ecosystem to the Linux ecosystem and what would you say are the biggest differences between the two? Well obviously, you know, when we talk about Linux, you know, are we talking about Linux, the kernel development or are we talking about Linux distribution environment, that all operating system environment?
00;15;50;17 - 00;16;11;14
Right. So, there's so I think, you know, for one, there are two Linux ecosystems and so let's say we'll take the Linux kernel as the of the ecosystem to compare that because it's, you know, one development for, for something pretty big, the you know, to me the main difference between the two is that with MySQL they do all the development.
00;16;11;24 - 00;16;40;16
So, it's basically MySQL development driven from one company slash organization with some contributions. I don't want to... obviously people report bugs. Can people test our software and find problems that need to be fixed or in some cases some companies will provide some code to us. But by and large the bulk of the work is done by us.
00;16;40;24 - 00;17;19;19
By the Oracle MySQL Development Team. We're of course with Linux kernel development that is done by everyone. There is no specific owner, there is no particular organization that's providing the bulk of the code. It's quite well spread across and you know, there's advantages and disadvantages of both. But, but I think that that is the main difference is that from when we speak, when we talk about MySQL community, in MySQL developer community, we're really talking for the most part about developers using MySQL as the underlying database.
00;17;20;10 - 00;17;46;27
Whereas when you talk about Linux, then you either have the Linux developer community around the Linux kernel or various Linux ecosystem, you know, distribution, libraries and such or Linux developers, which are really application developers that use Linux as the underlying buffer. Right? And so it's really the latter where, where you could have that comparison in other ways.
00;17;46;27 - 00;18;17;25
They are, you know, that's the big difference with the bulk who does the bulk of the development and the contribution. Now, I think that that the connection with MySQL from a user slash developer is much tighter than with Linux because the Linux side, you pick a distribution, there's many of them, but there's also tons of developers and windows and tons of developers on Mac OS and you know, other other platforms that that are still used out there.
00;18;17;25 - 00;18;42;09
And MySQL is on all of those platforms, right? And so, I think that the main differences are one, the developer community and the role that they play. And then two the again, ubiquitous does deploy many of MySQL across operating systems. So, a developer doesn't necessarily need a tie to a particular OS to do MySQL development.
00;18;42;09 - 00;19;21;07
And so, I think that those are the the two big differences that I can think of. And, you know, quite frankly, when you when you do when you study computer science or so in general, operating system development is something that is more often than database development. And I'm talking when I'm talking about learning SQL or something like that, I'm talking about building a database itself, building the code for doing an optimizer and so forth that is not as widespread in, in universities or colleges or so.
00;19;21;07 - 00;20;01;06
And so, it's easier, I think, to start with an operating system, certainly with Linux and do some development and fix some bugs and and so on. There's there's more generic knowledge around that, which probably makes it a little bit easier to open up. But one of the advantages, again, that MySQL has over other databases out there, certainly other open-source databases in and in colleges and higher education is that it is your one platform that tends to be used for teaching database development because it is still relatively small in size and it is well compartmentalized and easier to do code reviews of it.
00;20;01;06 - 00;20;32;05
So, there's that. Yeah, thank you very much. So, you said earlier that because we entered into AI area, right? And to you give us a review an answer to that telling that we there is a plenty of people working on that and it would be very nice that we could talk to a database like just by a human words.
00;20;32;05 - 00;20;58;23
And it will do the all the stuff for us to to get the data. So, this is what do you think it would be to the future of using the database and MySQL in particular. So yeah, you know, I guess there basically are two aspects that we are working on, right? One is how do you interface with the database?
00;20;59;00 - 00;21;28;06
And so when you talk about Gen AI and it typically would be, you know, in national natural language to SQL pace, which would be powered by an AI can do text voice to text and then go from text to SQL basically right. And that's a multi-step approach and it's not easy to build those problems and take care of the aspects.
00;21;28;06 - 00;21;57;19
It's the multi-stage way from language to an actual SQL statement that would reflect what you're what you're looking for. So, it's it's pretty complex, but we are certainly looking at that and and working on it. But but I think the the more important part of work we are doing is vector database support and making it possible for MySQL to be used as a backend for various AI models to run.
00;21;57;19 - 00;22;27;08
And one of the things that I try to become more and more important is in a Gen AI I like ChatGPT 4 or other, you know, they're all very similar is that by by default they have a certain amount of of data that's basically public, right? It's ingested from public sources. And and when you do queries or ask questions, so to speak, then it returns results based on the data from that.
00;22;27;22 - 00;22;54;02
But and more, it's becoming obvious that you want to ensure that the responses are based on data that you validate and, you know, are in fact correct. And one example would be at Oracle if you want to know something about an Oracle product, well, there are many question answers on the Internet that are completely wrong or wouldn't be optimal for our for our customers or what we know.
00;22;54;02 - 00;23;36;01
But we internally have a massive source of data, whether that service request for customer issues or internal development docs that have data that's useful or our own documentation and our own internal or external communities and forums that have questions and answers that we answer to our customers or partners or developers. And so, when we can point to all that data and then run a model on top of that, then those answers will be able to be validated and we can provide the source of truth for for the questions that come in.
00;23;36;26 - 00;24;14;24
And in order to do that, you need something like vector database support and and such, which is what we're working on with MySQL. And so I think that is the real-world applicable stuff that we that we do and I think will be useful for MySQL more so than the natural language interfaces in the natural language interface, which is kind of a it's kind of cute to say that I don't know whether, you know, it will really amount to super valuable and useful work as it's more providing a frontend to to, to MySQL
00;24;14;24 - 00;24;41;07
And like I said, others are doing the same thing. It's sort of natural and ethical for, for folks to look at natural language to, to the interface of products these days. So, where that goes will see. But that the more important part is support for vector database in MySQL and again bring MySQL itself into that new market so that it's relevant in the future as well as current and past.
00;24;42;15 - 00;25;09;02
Yeah, thank you very much. Yeah, it's a really awesome that all we do. And I've just had some stuff it that I will talk in future a little session so it's very nice and yeah, I hope we will continue later and so I would like to finish too, but with a small question. So let's see if we can end our first podcast with a quiz and the I have a question for you, Wim
00;25;09;08 - 00;25;39;14
So do you know the name of the MySQL Dolphin? I do, and I wasn't I wasn't told what it was recently, but yeah, of course it's it. I might pronounce it incorrectly, but Sakila of course, the name of the dolphin. And as as I hope you appreciate, I always say MySQL I don't know. But at the same time, you know, we always say SQL when we talk about the SQL syntax, and it kind of rules off the tongue.
00;25;39;25 - 00;26;05;13
And so, you know, sometimes I will say “my sequel”, but, you know, I know that we have to ensure that we respected the naming of the the product and the work from so many people over so many years. And so I do my best to focus on “my ess queue el” and for when we add new developers onto the team, we you know, it takes some time sometimes and, and you know, it doesn't always work.
00;26;05;13 - 00;26;28;29
But most folks start to say “my ess queue el” as they get more and more involved in it. And I think that helps. I think it helps show respect for the product and service that people work on. So, I do feel that it's important for everyone to focus on that as well. But at the same time, you know, if somebody says “my sequel”, I'm not going to get all bent out of shape about it.
00;26;29;24 - 00;26;50;21
The natural mistake to make or change. But yeah, awesome. Wim, thank you so much for joining us today. We really appreciate it. And I know our listeners are going to appreciate it as well. My pleasure. That's all for this episode. Thank you to our guest Wim Coekaerts, and thank you for listening. Please join Scott and I again next time for another Inside
00;26;50;22 - 00;27;17;17
MySQL: Sakila Speaks. That's a wrap on this episode of Inside MySQL: Sakila Speaks. Thanks for hanging out with us. If you enjoyed listening, please click subscribe to get all the latest episodes. We would also love your reviews and ratings on your podcast app. Be sure to join us for the next episode of Inside MySQL: Sakila Speaks.