← Back to team overview

maria-developers team mailing list archive

Re: request for feedback on live schema changes patch


Zardosht Kasheff <zardosht@xxxxxxxxx> writes:

> I am hoping to resurrect this discussion. Has there been any
> discussion on implementing the feature of allowing handlers to do fast
> schema changes in MariaDB (on any version)?
> I have put this patch on MySQL 5.1, and I think I have it working. I
> started looking at MariaDB 5.2, but I do not understand some of the
> virtual column stuff and field->option_struct and key->option_struct.
> I am guessing they are related to the new create table syntax, but I
> do not understand it well enough to be able to integrate this patch
> in.

I am sorry you had to wait for an answer for so long.

I was kind of hoping that someone else would step in with an opinion also. As
no-one did, I will just have to re-state my opinion.

As I understand from the previous discussion, you patch does not attempt to
fully integrate the fast schema changes in the source code. Rather, it adds an
extra code path, so that the server contains both the old and the new alter
table framework, with some flag to select between one or the other.

I did not look at the patch, but I believe this makes it unsuable for
including in MariaDB, whatever the version. For this, we will need a complete
patch with a clean integration that can be maintained going forward.

I would really like to see fast/online ALTER TABLE in MariaDB, but it needs to
be done correctly. I fully understand that this is hard work. If you have
concrete questions/problems I will do my best to try to get them answered, but
if the full task is too much, then my opinion is that it will have to wait.

 - Kristian.

> On Thu, Nov 18, 2010 at 2:53 PM, Zardosht Kasheff <zardosht@xxxxxxxxx> wrote:
>> Hello,
>> I am wondering if we can resurrect this discussion. In summary, I have
>> a patch that I think I can apply to 5.1, although I realize it is not
>> the ideal solution. It is a solution that I could code that minimizes
>> the risk of introducing a regression for storage engines that do not
>> use this.
>> The fix is basically to have a new alter table for storage engines
>> that want this feature, and the old alter table for others.
>> The two biggest reasons I did it this way was:
>>  - I did not want to complicate the fix by handling storage engines
>> that implement handler::add_index.
>>  - I did not understand the partitioning fixes required.
>> That being said, what do people think are the next steps that should
>> be taken? I would love to see this feature in MariaDB 5.3, but I do
>> not have the expertise to be able to complete the feature. I am just
>> moving code from one MySQL branch to another.