We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

MariaDB: extra features that make it a better branch of MySQL

00:00

Formal Metadata

Title
MariaDB: extra features that make it a better branch of MySQL
Title of Series
Number of Parts
97
Author
License
CC Attribution 2.0 Belgium:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
MariaDB is an independent branch of MySQL with additional features and patches. This talk will give a technical overview of MariaDB, including: A walkthrough of extra features available in MariaDB 5.1: Extra storage engines (XtraDB, PBXT, Maria, FederatedX) Community patches integrated into MariaDB Additional features and optimizations Compatibility policy between mainline MySQL and MariaDB MariaDB's approach to accepting external contributions Further technical directions of MariaDB project.
5
15
Thumbnail
48:33
41
Thumbnail
35:21
47
48
Thumbnail
1:03:30
50
75
Thumbnail
50:56
94
Repository (publishing)Source codeElectric currentRankingData storage deviceLine (geometry)Query languageStatisticsTable (information)Gaussian eliminationMathematical optimizationThread (computing)Revision controlSystem programmingSimilarity (geometry)Content (media)Data bufferPrice indexProjective planeBranch (computer science)StatisticsSource codeData storage deviceTable (information)WebsiteSlide ruleSound effectOcean currentSoftware developerCache (computing)Graph coloringLine (geometry)Query languageThread (computing)CollisionMathematical optimizationBlogGaussian eliminationDampingInformationBefehlsprozessorOpen sourceBuffer solutionElectronic mailing listNetwork topologyQuicksortPatch (Unix)MathematicsNumberRevision controlLoginState of matterMultiplicationProcess (computing)Physical systemDatabaseStability theoryCodePlug-in (computing)Subject indexingMiniDiscSpecial unitary groupMoment (mathematics)Theory of relativityInformation technology consultingOrder (biology)Computer wormRepository (publishing)Regular graph2 (number)MauspadStorage area networkAreaAsynchronous Transfer ModeCoalitionBitFood energyBlock (periodic table)Computer animationXMLLecture/Conference
Revision controlData bufferPrice indexSimilarity (geometry)System programmingSanitary sewerContent (media)Gaussian eliminationData storage deviceQuery languageStatisticsEmailQueue (abstract data type)Process (computing)SQL ServerOracleSummierbarkeitMach's principle2 (number)Table (information)State observerElectronic mailing listRefractionExpressionMathematical optimizationCondition numberQuicksortPurchasingSet (mathematics)Gaussian eliminationFile formatFraction (mathematics)Operator (mathematics)Row (database)NumberInformationLimit (category theory)OracleQuery languagePort scannerPatch (Unix)Computer configurationWeightNormal (geometry)Theory of relativityBit rateMultiplication signInstance (computer science)Data storage deviceDefault (computer science)DatabaseSystem administrator1 (number)Parameter (computer programming)Drop (liquid)CASE <Informatik>Server (computing)Cone penetration testAttribute grammarPlanningProcess (computing)StatisticsMiniDiscBlock (periodic table)WebsiteMatching (graph theory)Standard deviationContent (media)Computer fileMereologySampling (statistics)System callLattice (order)Presentation of a groupMoment (mathematics)Thread (computing)Insertion lossBlogBookmark (World Wide Web)Point cloudSelectivity (electronic)Cache (computing)Lecture/Conference
Gaussian eliminationAttribute grammarBit rateCone penetration testNumbering schemeTable (information)Gaussian eliminationElectronic mailing listMaxima and minimaData storage deviceView (database)Ocean currentCuboidMultiplication signQuery languageGraph coloringLecture/Conference
Gaussian eliminationOptical disc driveView (database)Price indexProcess (computing)Data storage deviceQuery languageMathematical optimizationTable (information)Thread (computing)ACIDAxiom of choicePrime idealMiniDiscDatabase transactionIntrusion detection systemWater vaporAsynchronous Transfer ModeSoftware developerData modelCodeCrash (computing)Operator (mathematics)Subject indexingEndliche ModelltheoriePattern languageMiniDiscRight angleTable (information)Solid geometryArithmetic meanData storage deviceMultiplicationStapeldateiCategory of beingGroup actionReduction of orderUniform resource locatorQuicksortCodeWritingNumberCrash (computing)State of matterSemiconductor memoryRow (database)Revision controlProcess (computing)SpeicherbereinigungComputer fileMoving averageSet (mathematics)Database transactionGaussian eliminationSoftware developerClassical physicsLaserThread (computing)Dimensional analysisMathematicsOverhead (computing)Mathematical optimizationAttribute grammarView (database)Prime idealBit rateComputer-assisted translationSlide rulePointer (computer programming)Point (geometry)Computer configurationNormal (geometry)Service (economics)Port scannerConstructor (object-oriented programming)Axiom of choiceCountingRun time (program lifecycle phase)Basis <Mathematik>Vulnerability (computing)Moment (mathematics)Buffer solutionPlanningOrder (biology)Multiplication signQuery languageConcurrency (computer science)Block (periodic table)DialectBenchmarkFood energyDatabaseUsabilityCartesian coordinate systemSound effectCASE <Informatik>Replication (computing)Ultraviolet photoelectron spectroscopyACIDForestIntrusion detection systemLecture/Conference
Thread (computing)Data modelSimultaneous localization and mappingAdditionDatabase transactionData storage deviceTable (information)Gaussian eliminationInclusion mapPatch (Unix)Connected spaceNumberClient (computing)Multiplication signRevision controlLink (knot theory)Library (computing)Communications protocolDatabase transactionThread (computing)Data storage deviceCASE <Informatik>Server (computing)AreaRegular graphDefault (computer science)Diffuser (automotive)Extension (kinesiology)CodeSensitivity analysisTouch typingMaxima and minimaFlow separationPerimeterMoment (mathematics)BitQueue (abstract data type)TangentUnicodeSlide ruleElectronic mailing listSoftware testingLatin squareSoftware bugProcess (computing)MassSemiconductor memoryQuery languageEndliche ModelltheorieStability theoryAuthorizationPoint (geometry)Cartesian coordinate systemUniform resource locatorStructural loadParameter (computer programming)CollisionSystem administratorMereologyError messageMiniDiscComputer chessQuicksortSet (mathematics)Concurrency (computer science)AdditionSemantics (computer science)Lecture/Conference
Inclusion mapCommunications protocolDirectory servicePatch (Unix)Execution unitDifferent (Kate Ryan album)Concurrency (computer science)Patch (Unix)Content (media)Plug-in (computing)Subject indexingKey (cryptography)Cache (computing)Reduction of orderMoment (mathematics)Row (database)VirtualizationCartesian coordinate systemDialectFunctional (mathematics)Connectivity (graph theory)Limit (category theory)Partition (number theory)Direction (geometry)Parameter (computer programming)Directory serviceCuboidTable (information)PlanningControl flowEvent horizonReplication (computing)Statement (computer science)CausalityRevision controlFigurate numberState observerStatisticsServer (computing)Data conversionComputer configurationExpected valueBitCASE <Informatik>Utility softwareRight angleMereologyDefault (computer science)Scripting languageDatabaseFunction (mathematics)Installation artComputer fileMathematical optimizationProcedural programmingMultiplication signPhysical lawQuery languageContext awarenessData storage deviceSocket-SchnittstelleHash functionTexture mappingMechanism designSet (mathematics)Video gameLecture/Conference
XML
Transcript: English(auto-generated)
Hello, my name is Sergei Petronia. I'm a member of MariaDB project and This talk is about MariaDB and the extra features that make it a better branch of MySQL
Well the first Let's go slide about MariaDB what it is. So we position ourselves as a branch of MySQL with extra features When they say branch and not a fork we mean that we still periodically merge with MySQL So we haven't divulged it with them Unlike drizzle, which is a fork which don't merge from MySQL anymore. We
Still remain compatible with MySQL. It's possible to merge changes from MySQL to MariaDB with some effort We have only GPL, offer only GPL on the license Unlike some MySQL which offers both GPL and commercial license We strive to have more open development we have all source code in public repository knowledge, but we simply don't have any private trees
We try to be more open towards external contributions and Our current state is that MariaDB 5.1 42 The number is based on MySQL release which was merged into it was made stable release on February 1st
Just avoid confusion Maria is also name of the storage engine One of the storage engines that ships inside MariaDB MariaDB is a name for the whole database system
So The extra features that we have at the moment in MariaDB 5.1 and our stable release are Well in the in the order of their relative Importance or impact it's approximate. Of course first is extra DB storage engine Then they have slow query log extended statistics in the slow query log
Microsecond precision shown in process list We've got table elimination optimization. We've got PBXT storage engine We've got Maria storage engine as I've already mentioned and we've got thread pull support
we've got support for creation collisions and The last and it was added last is a federated X storage engine This talk will be mainly dedicated to overview of what these features are and how they can be useful
Before we go to that. Let's not all of the features are developed by MariaDB crew basically, this is a slide that highlights the colors that For extra DB PBXT and federated X X basically for a storage engine We have an upstream which we periodically merge from And the developers of this of the storage engines are not
Members of MariaDB team, but we collaborate with them on getting their their code to work with ours Slow query log and microsecond precision in process list will base it on a Third party patch for my SQL which has never made it into which wasn't merged into my SQL main line
So we took it to improve it up on it and merged it into MariaDB Table elimination optimization was developed at MariaDB from scratch. So you won't find it anywhere except MariaDB and Then Maria storage engine thread pull support and creation collection
Collation are the features that were developed at Sun partially by Current MariaDB members partially by those who remain Some my school employees, but they have never been released in this table release, but they have been published Their source code has been published. So it was able to take it and integrate it into MariaDB with some fixes and
Certain improvements So if we go to the first to the first feature, which is the extra DB storage engine and For extra DB storage engine. Oh
We'll have we'll have only a couple of slides dedicated to it because that's a It has a lot of improvements and we could have a talk on only about extra DB so be quite brief here Basically, this is a patch it version of in the DB plug-in
Where in the DB plug-in is a version of in the DB which was produced by? Oracle with more features than regular in the DB Extra DB was produced by a Consulting company called Percona. Those are the people who are behind the bicycle performance blog dot-com website which published sort of articles on my school performance and
Within extra DB The primary thing is that they they have performance improvements for multi CPU systems similar to my school 504 I Have to remind that my school 5.4 have never been released. It has been only been available as a preview and
While extra DB has has these features in a related version and we have it in MariaDB They provide more diagnostic information And the whole array of miscellaneous features that The DBA of a highly loaded and highly concurrent that database might find useful like
Ability to save and preload back buffer pool buffer pool is sort of in the DB Disk cache so you can start with the worm cache and not have any effects of starting with the cold cache
They have index statistics collection fixes and Many more unfortunately can't describe them as it out because it will just take too long those if you are running a Website on in the DB and the experience performance issues your really should
bookmark the my school performance blog website and check out their recommendations and knowledge that they post there, so now let's move to More easier and comprehensible to understand features like slow query lock and microsecond precision to process list
Slow query lock is a standard is a nice feature that has been locked long ago in my school basically could specify slow query lock file and my school would print their text files to print their queries which
took More than certain given amount of time to execute Extended statistics add the log slow verbosity option which at the moment has only one Weight value query plan and it adds the filtering where you can get names
You could You could filter administration administrative queries like alter table create drop and other detail operations You could filter select queries by the fact whether they do file sort whether they do file sort of Putting data on disk whether they run full joints full scans
And you can't filter because if it requires well the fact whether they fit into quick hit the query cache or miss and And you could filter over that the queries that use temporary tables the lock slow rate limit shows how A Loss to print not every every slow query which can be quite a lot, but every of slow query
So you can have a sample Basically before in my school a slow a typical contents of slow query look was likely above and Likely below you see that edit items highlighted in red it prints thread ID it prints schema
And then you get the important part where you see that the other query did the full scan I did the full join where it used temporary tables and so forth as it becomes especially useful when When the query execution plan depends on its parameters, so
It might be the case where you get create to run slow for some part of it when you run it with others It runs fast. So it gives more observability Microsecond precision in process list. It's another patch by Percona and The idea that displays milliseconds with fraction in show process list and that's useful for analyzing cloud of small queries
When one does a select from information schema dot process list in my school one gets only number of seconds in time column while in MariaDB there There is also time Milliseconds which shows time in
Milliseconds and that's useful when you if you got queries which run less than a second and you need to discriminate and find out which which ones of them the To take more than the others They love to patches
Have been Used as a patches for my school. So they're reasonably safe to use because there has been some field testing I Then move to the feature that is unique to Mario DB it is table elimination optimization This is a optimization for queries over highly normalized data
It's present under its name table nation and big databases like it's present in Oracle and SQL Server As far as I'm a format, it's not present in Postgres Co The basic idea is that they detect out our joints which have under use it in their sides and then delete those inner sides
Basically when you have an auto join Of two tables and such that the select list does not include the inner table and the where condition does not refer to inner table either then that means that and also there is the Condition and on expression is such that we we see that is it has table two dot primary key equals
something from table one basically, that means that For each record of table one there can be Not more than one match That condition gives us that and since it's out or join if there are no matches will get to know complemented record and that means that
There will be always one match it will be either another record or not So and in that case it is apparent that we don't really care whether table to head any matches and if they've had what They were so we can remove table two So that so far this has looks looked like an relational gabber exercise now
Let's see how that kind of how that is practically useful Suppose we have a data And we want to store it in a highly normalized way for instance if you get if you get the list of actors if names dates of birth and their ratings and
Normally The sort of default approach is to store just create a table with three columns name date and rating and the problem with that is as with All denormalized data storage is that you can't easily add attribute because it requires along alter table
it's difficult to have attributes with which apply only to If you only to a small fraction of actors because the data set grows bigger if you most of your actors are underrated to get Nelson many columns and that Will start quite inefficiently in the row basic storage
So the standard approach to that is to create Three tables instead create the base table. We see what's called here anchor which will Denote anchors and then create a table for names create an able for dates of birth and create table for ratings over here the table for ratings can also change
We assume that ratings also change over time. So we've got the from date from date column which From that column so we can store the history With this can we are much more flexible about our data storage we can add remove attributes as you please we can have attributes that
other users don't care about but when they want to query things we would like to Would like to actually If you want to get just list of actors with their names and birth dates and current ratings We have to write this huge outer join
The colors denote access to Attributes so for the name we write in Left join with the name and then for the birth date to join the birth date and for a tick We not only do it join. We also select from those
From all possible ratings the one that is the last one and currently valid That's what the sub query does here From date equals maximum date with for this actor So apparently we don't want to write this selects all the time and we want to get actor and his name
so we just create a view and After we have created the view we can access it as written below we just access it as a regular table We just select for example rating from actors where? His name is some name and it looks like a table
The problem is that it is a joint Inside it is a joint. So every time you access this my SQL would run the underlying join and then just And then just and that would be an excessive
So here is a demonstration how table elimination works the first query The first query is about selecting rating and birth date By name, so basically it uses all three attributes and they get what you would typically what you would always get for in my SQL
You would get all four tables accessed The second query is more interesting it doesn't It doesn't care about dates of birth So when you run it and explain in MariaDB will see that date of birth table is gone from explain So we don't access it This is that shows that if you don't you can this scheme allows one to easily add attributes
Which other users don't care about because they will be removed by the optimizer Date of birth will have no overhead for those who don't not need it the third query is Another example here. We don't care about ratings and you see that the ratings table is gone from the explained plan
And so it wouldn't be accessed so we can have totally optional attributes If you want to sum it up
Basically with table elimination you can do normalization on optional historic data Which will cause you to run to want to execute out of joints and you will be able to create a normalized denormalized view using cleft joint constructs and and Use this view and you will get for it something like index on the scans
Where you if you don't care about columns, you don't need it tables here service indexes that's what table elimination optimization does and This feature that's unique to MariaDB so what do we got next next the next feature is prime basis XT storage engine and
Prime basics to storage engine is a third-party development. It's developed the Company called prime based technologies. We only merge it to MariaDB and it is a transactional acid compliant and
multi-version concurrency counter based storage engine So how is it different from all other agents the design choices are that it Uses certain right once methodology so it stores its date in the
They call it D log permanently when they get New data, they just store it in the log And then the table just keeps referring to the place in the log where the data was originally stored unlike other transaction engines, which would first write to certain log then update the
The place where the data is really to be stored They do disk-based in VCC basically means that they store They are able to store different versions of the records on disk, so they're not limited by
So the size of all uncommitted data is not limited by the size of memory like it Like it is the case for other engines This gives them fairly fast Very fast commit because they're all of their data when they need to do a commit They have all of their data on disk already and they actually don't care about
The versions the wrong versions because they are collected afterwards by a certain garbage collection process They don't do any in-place updates they on since they are log-based they're always append new data they don't
Update anything in place just writing a new version and change pointers and then rely on that it is The user data is garbage collected at some point Well, this can be both strength and weakness the strength that they commit fast the weaknesses that they rely on how
How quick the garbage collector will be and whether it has become critical that the data file grows with all Grows too big with all that all older versions of the data. They don't have any on They don't have an undo log. They are recovered just rolls for what based on the log
on the forward log There also very similar to my isom and in the in the regard that they store Every table in the separate file and the set of its indexes in yet and yet another separate file So you can move the tables around just acting with my isom. You can put them on different storage
If you look more at the big storage engine design so it is Indexes don't have all dimension that indexes do not need to be flushed on transaction commit because
The changes are made by The Unneeded versions are removed by garbage collector threat In indexes are updated in background by the British collector threat they got operation IDs that means that
Modifications Normally require simultaneous update of cash and transaction lock. I'm not sure what what the last means
I'm not that fluent with Okay, so they basically batch the updates when they When they they don't do updates on the fly they they write the updates to the log and then
there is There is a writer thread which collects all of the updates groups them together actually, it sorts them which gets the updates to the same locations grouped and Writes them out. So this gives them reduced number of right operations and they write in sorted order
so What does this mean? For the end user why would one want to use the PBXT well first According to the benchmarks. They are an emerging competitor to in the DB in general high-performance LTP They show benchmarks which
Show that they are better than in the DB on nearly every MySQL gathering and They are new kid on the block so they sort of have a user friendly developer model where If you ask for something you can make them more impact than then within the DB
where According to what classical PBXT they take a Pbxt better takes advantage of properties of solid-state drives because they don't
They're the right first They do fewer writes. They do random reads and that is Exactly the IO pattern that PBXT so that that the solid-state drive is good at they also group updates So they write at once
And since they write to their lock changes together and sequentially that is exactly what What solid-state disk is good at I suppose it to rewriting a block every time Their upcoming features are they'll have in-memory tables
They already have them in actually in the big st3 that merged into Maria it And they will have engine-level replication for a chase it ups At this point I have to point out to effective SSD for a database session Which has already concluded?
But I guess their slides will be published Okay besides the big still got Maria storage engine and Maria storage engine is is basically on my isom code So it's very much my isom like it got full text it got GIS indexes
the goal for Maria was to Sorry, this is my school to have a transactional of my isom but at this point it is only crash-safe my isom where you can set the table to be crash-safe and unlike my isom it wouldn't require in your repair operations and
Will roll back or roll forward all changes if it crashes in the middle But it's not fully transactional yet It's it's primarily used at the moment is to the forest club runtime temporary tables instead of my isom And that means that queries that need to use temporary table like grow by queries Union
distinct Account distinct and such basically everything that shows using temporary in the explain plan They would not touch the disk until Maria's Buffers are overflowed So this if you for example need to write a query which does a group by and uses and also selects blob or does it?
Distinct with Maria tables it won't hit the disk unless it exhausts all memory and you'll have to do so Which is in which is which gives some improvement for these queries over regular my SQL where it is You'll touch the disk because you'll have to write to my isom
Another feature which is a bit controversial is the thread pooling support The traditional my school model is that there is a one process and One my school the process which uses a
separate client Connection is a part read for each client connection So the number of connected clients means that the number of existing threat is equal to number of existing threats And the thread pooling model we I'm to serve and queries with M threads where M is fixed
It is activated as follows you specify thread handing one thread per connection and then you specify thread pool size And that is the store and you can use and that is how many threads will be used to serve the All of the client connections There is some problem with that that is one one can connect to all 23 with 20 clients start 20 long queries and
totally block the server because we will be unable to because every any other Incoming request will be just waiting in the queue and for these 20 queries to compete For that I've got an extra port parameter and
Extra max connections, it's basically another part of my school to listen on which you can allow Access only to administrative user tool and it will be able to log in and kill the query and kill the offensive queries
Typically one would expect that threads pulling would to a great extent solve the problem of performance degradation with too many connections Unfortunately, it is not the case yet For example queries that run for a long time I write for I all or locks or any other reason still look up either thread pool
so if you get the That managed to get the dead lock inside in the DB such that The one that causes the threads to wait to timeout. They will sit and wait to come out timeout so the The threads in the pool will be busy waiting That's and
another problem is that The experiments have shown that thread pooling can be slower than the traditional model for in high concurrency scenario That's a problem because it's kind of exactly one of the things that we it was expected to solve However, we decided to put the thread pooling in anyway, because it says it allows one to
We decided to include the thread and the release thread pooling anyway because We've seen a real-world user case where the application was
making a lot of connections while not having a lot of actually load It was having proposes between connections because it was doing some other processing and in that case thread pool Allow it to have lots of active connections
Server to the without lots of lots of threads which saves memory when you have fewer threads So the save that said if that's the user your case and you might benefit from thread pooling at this point but I would not recommend to use thread pooling right now if you after after solving the
problem of performance degradation with too many clients The next feature is creation collisions for Unicode Basically, my school has the creation collisions
case insensitive for Latin and CP 1250 chess sets and When you use default in your code collision you get the case sensitive Creation collision due to native sorting, but what you cannot do with my school at the moment is that if you got a creation If you want to have creation case insensitive sorting and store Unicode data at the same time
That means that you are not unable to do so you either get creation case incentive semantic with Latin Just said or you get Unicode case sensitive sorting. So Alexander bark off the my school just said specialist produced a patch
But somehow it wasn't included in my school. It was not released. So we took it integrated into MariaDB Release it and here you have it We've got creation for UTF-8 and you case too, which is basically to trust that you need for Unicode
And the last addition the last feature is Federated X stored engine it was added shortly before the release so we might Rely on its author for
For the stability of this feature the good thing is that you don't use it. It is unlikely to have any impact It is developed. This is an engine which is developed by the original author of federated engine Patrick Galbraith It is an improved version of the tangent. It includes bug fixes and transaction support
as I've already said it's This engine has not received much testing. So I'll do that in release If something doesn't work you'll have to blame mostly Patrick not us
We can only say that if you don't use it you wouldn't be affected Okay, so here's the list of features again, and that's what we have to offer in the release So at our standard frequently asked how can one actually upgrade to MariaDB from my school and what?
How much effort does it require here is the whole slide dedicated to compatibility Maria DB and my school are compatible with client libraries everything that's linked with MySQL will work against Maria DB library
For this reason Maria DB library is called lib MySQL still We are compatible with clients error protocol. It means that you can use Any MySQL client application to connect to Maria DB server and vice versa If you go to Maria DB client, which is at the moment the same as my school can connect back
We are compatible with regards to command-line tool names locations syntax of arguments of utilities and so forth and that means that Maria DB by default has Occupies the same port sockets names is MySQL. So you can't install both at the same time
All of our packaging scripts at the moment will try to will not refuse to install if you have my squirrel So we'll have to remove my school first and then install Maria DB And then Maria DB supposed to just pick up the data all of the data files and start In working at in the same way like my school did on the better with extra features
That's what we have a Fully compatible is called dialect yet. There is no difference We haven't tested any server plugins. If you got any UDF functions or any plug-in storage engines
You need to exercise caution because we don't guarantee that it works I'm not sure whether I don't I'm not aware of any explicit compatibility break. I choose though But that's something that hasn't been checked. We are compatible with the replication master slave so you can If you you can attach Maria DB slave to my school master in all cases and
Then hands bring up another host running Maria Maria DB and check and experiment on that you can run in the reverse direction also assuming that you don't use That Maria DB server do not use features that are not in my SQL
For example, if you are using pbxt tables And apparently that wouldn't be able to replicate to my SQL because my school has no pbxt or if using Croatian collations It is the same with the data directory. You can just stop for the my school server and start Maria DB
And it will work without need to any data conversions or upgrade or export import procedure But it will work also backwards as long as Maria DB server did not use any features that are not in mice That are not present in my school. So so trying Maria DB should be extremely easy. Just stop your my school server
Put start the Maria DB server of the same parameters instead and work out of the box
Our Further directions are First the first up the next upcoming release is Maria DB 5.2 and we've got plans fixed for it Basically, we intend to include for that only small and safe features At the moment we have their virtual columns patch which is based on contribution by Andrei Zhakhov
basically table can have a Columns which are calculated from other columns as a function The important limitation here is you cannot have indexes on these columns yet, but you can use them in anywhere where columns
Say well, I don't think so, you can't have indexes at the moment The there is an option to have them either persistent or not, but I think it's not possible to have index on them That's another context is an hour to do it's a much-wanted feature because one would have
essentially functional indexes when we get that if you get a But that's not the case yet, unfortunately The next is a Is a well probably known user starts version to patch which shows
Statistics per table and per index of how many Times basically per table and per index counters How many records have been read from certain table from certain index or by certain users? Yeah, my scope in law got Minus minus the right database so you can if you want to change change from
If you have have An application running on one database and then you've got want to get the mice called the lock output for it and then import data Into the now database that will work and it will work for it for a row based application also
Expected updates are first updated upstream components Whatever extra DB pbxt and federated managed to release We Were also working on partition it my isom key cache Basically key cache is partitioning by hash function and that is
Allows to reduce concurrency and contention So that allows to reduce contention in certain high concurrency scenario I'm not able to show any figures for that yet and Which we working on fixes which will Provide better observability for all basic replication
Basically one feature that that if you're running crow-based, you will be able to see the which statement cause it this row based event There will be stored in the binary lock it will be optional so it will be possible to analyze binary lock and See which statement cause it ever change
Beyond MariaDB which is a smaller is We don't have any plans set It depends on what will be ordered and contributed first because we accept contributions Features we are working on right now are
basically, we took features from my school six zero, which we think work back parting and Ported it into five to base a tree and and that and that would be the next release So the port budget cakes feature And fix it. No known issues with it
ports of query optimizations will book part from from six zero and book part those that were Targeted from my school six six and also have a plan to add additional improvements So this is what at the moment our idea of what will we have beyond five to somewhere
Well, I don't have any dates, but my expectation my personal expectation is that it will be We will have a bit of the sometime this year of these features So that's all what we have. It concludes the talk and if you have any questions, I'm here to answer
If you didn't catch it from the start So we've got two leaflets one at least stable features and another which shows that how MariaDB team is different from my school here Thank you