Zardosht Kasheff <zardosht@gmail.com> writes:
My main interest is getting a feature that many think is very useful properly implemented and integrated into 5.1. This is a feature that was enthusiastically brought up during the 2010 storage engine summit. Also, I think Mark's online schema change work has sparked interest in this. This feature exists and is used in another GA product: MySQL cluster, so I think the code should be good.
Yes, I was very happy about this feature when it was implemented, and it is really sad to learn it has apparently been dropped on the floor along with 6.0. I do not know much about the state/quality of the actual code in the MySQL layer (I worked mostly on the storage engine level in NDB on this). But I participated in the design of the upper-layer interface, and remember finding it solid back then. I also know this is an important feature for cluster, so I would expect at least the part exercised by NDB to be good.
As I said earlier, my work is not ready. There are a couple of bugs I need to track down. Once I get it working, I will happily share what I have done (which is really just moving code from one MySQL branch to another, nothing special) and encourage feedback. But if I can get it working, is there a possible way to get this into MariaDB 5.1 (even a "safe" version)? If not, some near future version?
This is definitely a possibility. The process for this is that the patch need to go through code review here on maria-developers@ and pass testing on our Buildbot farm. Then it can be integrated into the next MariaDB version that is not frozen (beta/stable) at that time. The way MariaDB releases work currently is that MariaDB 5.1, 5.2, 5.3, ... are all based on the latest MySQL 5.1 code base, with cumulative added features and fixes in each. The intension is to have a new release every 9-12 months. (Personally I am interested in moving towards a release model more like the Linux kernel, but the above is how things are now). If you have any problems or questions related to the source code, I would encourage you to ask here or on internals@, there are several with deep knowledge of the MySQL code who would be very willing to help.
My reason for being interested in 5.1: that is the GA version of MySQL and MariaDB. Having this available in 5.1 allows for storage engines to take advantage of this feature more quickly, and in turn, get it in the hands of customers more quickly.
I think currently it is Percona Server and the Facebook patch that are the quickest to pick up new features. But I cannot speak for them about whether they would pick up something like this. Their main interest is InnoDB, of course.
That being said, I am wondering what the best approach for doing this is. I would like to produce something that can be integrated into MariaDB and MySQL (although I realize that actually getting it into MySQL is highly highly unlikely). Is there anyway this can be done?
In the worst case, I will only be able to integrate it in our private branches, and that just diverges our code even more.
Yes :-(. My best advice is to discuss the new interface on the mailing list and get people to buy into that. If we avoid different branches introducing conflicting new APIs, we are in a much better shape to integrate them later. If/when at some point we get more big features like this working well in multiple different branches, the need and motivation to unify them will be higher. Since you are already basing your work on the existing MySQL 6.0/-telco interface, I think you are in good shape. - Kristian.