Native Replication

Registered by David Shrewsbury on 2011-02-04

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.