Well we are all quite excited about what's going on with MySQL AB. We have read the talk about MySQL 6.0 and the upcoming Falcon storage engine. We have read the news about SUN having bought up MySQL AB and how this is going to improve their abilities. We also took note about Monty's first blog posts and the announcement of the Maria storage engine. But in the middle of this, I wonder if the priorities are sorted properly.
Again, the above mentioned stuff is all big news and very important. But since quite some time I have not heard anything about MySQL 5.1. Wasn't 5.1 supposed to be GA last fall? Aren't we all really excited to not have to explain the "life on the bleeding edge" to our customers while making use of new features like partitioning, row based replication, XML goodies and an internal scheduler? Looking at the future, many of us are wondering about MySQL 6.0 not including Foreign Key support as originally expected, which also means that other storage engines will get server provided FK support later.
I talked about this before and I back then I was partially hopeful that this is all a result of increased efforts into QA'ing a more solid release than 5.0 was. But especially the announcement of the Maria storage engine, which obviously has the potential of moving a lot of things forward, has made be question this hope. I do not know the internal allocation of MySQL AB of course. So I do not know what Monty and the rest of the Maria team could be doing instead of working on the Maria storage engine. But I am quite certain that in some way or another Maria is eating some ressources that could be allocated to bringing 5.1 to GA or getting FKs into MySQL 6.0, both of which rate higher in importance to me than a MyISAM replacement.
Now there is something else to observe here. Maria is said to be able to optionally support transactions. There are all sorts of new transaction capable storage engines being worked on at the moment. We have SolidDB (now owned by IBM), PBXT (fully community owned) we have Falcon (developed by MySQL AB). There is also of course still InnoDB (owned by Oracle and said to bring big improvements along with MySQL 5.1). Maria is also said to support MVCC, but most of the new storage engines are also MVCC capable and its not like MVCC comes without strings attached. So I am not so excited about Maria being MVCC/transaction capable, although I acknowledge that this is not the focus at this point.
So I guess I am wondering if MySQL AB is sorting its priorities properly.
Hi Lucas,
I can't judge whether the priorities are set right. Personally, I do like the idea of diversity. To me a "MyISAM+crash recovery" engine like maria seems a pretty good idea as it will help a lot of people that have large MyISAM based data warehouses. I'm not sure but I don't think Falcon will shine in that area so I'm pretty happy with Maria in addition to Falcon.
"PBXT (fully community owned) "
Not exactly - it's by Primebase/Snap. Code is GPL if I am not mistaken.
"Maria is also said to support MVCC, but most of the new storage engines are also MVCC capable and its not like MVCC comes without strings attached. So I am not so excited about Maria being MVCC/transaction capable, although I acknowledge that this is not the focus at this point."
As far as I know, you can define at DDL time whether the table is capable of transactions. I'm assuming a non-transactional Maria table won't use MVCC
Sure, I am not disputing that there is value in Maria, I am however wondering if Maria brings enough value to potentially divert ressources away from things like 5.1 GA and 6.0 FK support.
Also, of course in non transactional mode there is no point in MVCC. However there seems to be no transactional support without MVCC in any of the storage engines (I must admit I have not double checked all the new engines on this). Of course I can keep forcing read locks and things like that, but no option comes without a price.
I am glad that the Maria project is active, although it has some very talented developers who are not off doing other things for us. Falcon has had a lot of time and a lot of marketing and it is a long way off from replacing InnoDB for my workloads. Maria has come a long way in a short time. A limited form of Maria, 1 writer with concurrent readers, would be great for many of us to use as the table type for slaves. But Monty might have bigger goals.
Also, given that Maria is using a 5.1 branch and Falcon is using a 6.0 branch, will we be able to use Maria in an earlier release when it is production ready? Or are 5.1 and 6.0 going to be released at the same time?
The 5.1 branch is used as base for maria only for the reason that 5.1 introduced the better storeage engine API. It should be quite trivial to merge it over to other branches (6.0, 6.1) whenever Maria is stable enough or that.
Well another theory for the existence of Maria is that Falcon is simply too specialized to take over the workloads of current InnoDB users. Mark's post about Falcon feeds this theory.