Row-based replication support for pt-online-schema-change

Registered by Daniel Nichter on 2011-12-16

From https://bugs.launchpad.net/percona-toolkit/+bug/904287 reported by Michaël de Groot:

I'm not too good at perl myself, but I have an idea to make pt-online-schema-change support row based replication; it's quite easy.

There ar, as far as I have noticed, 2 problems when running pt-online-schema-change in replication:
1. Master performance may differ from slave performance, therefor you cannot just replicate it
2. osc cannot influence binlog state from within a trigger

My idea is this:
Instead of just locally creating the temp table, first create a BLACKHOLE table with sql_log_bin=1. Then, after setting sql_log_bin=0, alter the tmp table to the correct engine.

1 problem arises: You still cannot alter table on both the slaves and the master at the same time. To fix this, you should put (for example) the MySQL server id of the current server in the generated tmp table name.

Blueprint information

Status:
Not started
Approver:
None
Priority:
Undefined
Drafter:
None
Direction:
Needs approval
Assignee:
None
Definition:
New
Series goal:
None
Implementation:
Not started
Milestone target:
None

Related branches

Sprints

Whiteboard

This will break replication if you edit a column in the middle of a table.

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.