Native Replication

Registered by David Shrewsbury

Implement native replication between Drizzle servers.

Using the InnoDB based transaction log, we will extract replication events from the log on the master and ship them to a slave server that will queue the events in a local table. The slave will then periodically extract the events from the table, apply them locally, then delete them from its queue.


[Update 16 Feb 2011]

Slave plugin work complete. Needs a good amount of testing.

InnoDB replication log has tested solid.

Have now exposed the internal InnoDB replication log table through a D_D table. Only read operations on it are supported until we can have a permanent block on certain schemas/tables from the replication stream.

Performance regression bug (715174) still needs investigating.


Good progress on the slave plugin. Applier thread reads from local table and applies changes locally. Still need a way to catch local execution errors, handle DDL properly, and record state information (last applied transaction, etc.).

Need to implement a version of an IO thread in the slave plugin. Plan is to just have a separate thread started by the slave plugin to connect to the master and transfer messages to a local table to be processed by a separate applier thread.

Need bug 711068 fixed (currently blocked by bug 646898). We can avoid the problem caused by bug 646898 by exposing the internal table and avoiding DATA_DICTIONARY altogether. This will also allow an admin to do maintenance on the internal table.

InnoDB replication log needs extensive testing. Blocked by bug 711068.

Need bug 715174 fixed/investigated.


Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.