← Back to team overview

maria-developers team mailing list archive

Re: Live Schema Changes

 

Zardosht Kasheff <zardosht@xxxxxxxxx> 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.



References