maria-developers team mailing list archive
-
maria-developers team
-
Mailing list archive
-
Message #03604
Re: Live Schema Changes
I have spent some of my spare time looking into this. It turns out
that MySQL Cluster already has this ability. They have the following
handler functions listed below. I spent a weekend trying to port MySQL
Cluster's alter table function (mysql_alter_table) over to 5.1.46.
The port that I did was straightforward, and for the most part, it
works. There are a couple of small bugs/issues that I need to
investigate and track down, but the functionality is available. If
this can be made to work in a safe way, where storage engines can
choose whether to use MySQL Cluster's new alter table, and others use
the existing, it seems like a very safe thing to integrate into 5.1.
One problem I have run into is that I do not know how to get a storage
engine to opt in. This was the motivation behind the following email
to the MySQL internals alias. http://lists.mysql.com/internals/38105
For those curious, the issues that I have:
- alter table on partitioned tables is returning ER_OUTOFMEMORY (This
may only be when adding/dropping indexes)
- All storage engines use the new alter table, I want storage engines
to opt in, to reduce the risk of bugs
Any thoughts?
-Zardosht
virtual int check_if_supported_alter(TABLE *altered_table,
HA_CREATE_INFO *create_info,
HA_ALTER_FLAGS *alter_flags,
uint table_changes)
virtual int alter_table_phase1(THD *thd,
TABLE *altered_table,
HA_CREATE_INFO *create_info,
HA_ALTER_INFO *alter_info,
HA_ALTER_FLAGS *alter_flags)
virtual int alter_table_phase2(THD *thd,
TABLE *altered_table,
HA_CREATE_INFO *create_info,
HA_ALTER_INFO *alter_info,
HA_ALTER_FLAGS *alter_flags)
virtual int alter_table_phase3(THD *thd, TABLE *table)
On Wed, Sep 22, 2010 at 2:28 PM, MARK CALLAGHAN <mdcallag@xxxxxxxxx> wrote:
> It would be even cooler if there were storage engines that could do
> this internally. That would be easier to manage. The current process
> requires that you validate that your version of MariaDB or MySQL does
> the right thing for the tool.
>
> Note that the tool does a few steps differently for 5.0 versus 5.1
> because behavior has changed.
>
> On Tue, Sep 21, 2010 at 7:41 PM, Adam M. Dutko <dutko.adam@xxxxxxxxx> wrote:
>> I'm sure you have all
>> read http://bazaar.launchpad.net/~mysqlatfacebook/mysqlatfacebook/tools/annotate/head:/osc/OnlineSchemaChange.php already,
>> but if you haven't, it might be neat to look at evaluating and possibly
>> integrating it into MariaDB.
>> _______________________________________________
>> Mailing list: https://launchpad.net/~maria-developers
>> Post to : maria-developers@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe : https://launchpad.net/~maria-developers
>> More help : https://help.launchpad.net/ListHelp
>>
>>
>
>
>
> --
> Mark Callaghan
> mdcallag@xxxxxxxxx
>
> _______________________________________________
> Mailing list: https://launchpad.net/~maria-developers
> Post to : maria-developers@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~maria-developers
> More help : https://help.launchpad.net/ListHelp
>
Follow ups
References