Native Replication
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.
Blueprint information
- Status:
- Complete
- Approver:
- David Shrewsbury
- Priority:
- High
- Drafter:
- David Shrewsbury
- Direction:
- Approved
- Assignee:
- David Shrewsbury
- Definition:
- Approved
- Series goal:
- Accepted for 7.0
- Implementation:
-
Implemented
- Milestone target:
-
2011-03-14
- Started by
- David Shrewsbury
- Completed by
- David Shrewsbury
Related branches
Related bugs
Sprints
Whiteboard
[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.