Category: Software Preview

ReplicationFeatures/ParallelSlave


Contents

[edit] Parallel execution of row-based replication events on slave

[edit] Provides:

Increases throughput of replication in terms of transactions per second. Reduces replication latency.

[edit] Use case:

Currently, replication does not scale well on multi-core machines. The single slave thread execute replication events one by one and have sometimes problems with a load produced on the master by concurrent multiple client connections. MySQL Cluster Replication benefits from parallelization as well because workload on the master side is generated by multiple machines.

[edit] Methods of parallelization:

Intra-transactional parallelization. We have chosen to implement first the intra-transaction parallelization. That means events of a transaction (or a sequence of transactions) are executed by multiple threads on the slave side. Each worker thread starts a subtransaction when it gets its the first hashed-out rows event.

The subtransactions commit using 2PC when the parent transaction reaches its COMMIT. The model provides strict consistency (the slave never gets into a state of data that has not existed on the master), only if slave transactions are executed in SERIALIZABLE isolation level (if another isolation level is used, then the slave transaction may see non-committed data).

Inter-transactional parallelization. The inter-transaction parallelization is at design phase.

[edit] Limitations:

Limitations that will be removed in later versions:

Limitations that will not be removed soon:

[edit] User interface:

   --slave_parallel_workers=..., zero by default
   set @@global.slave_exec_mode='strict,parallel';


[edit] References

[edit] Downloads

[edit] Thanks:

MySQL Replication and MySQL Cluster Team, including Mats, Lars, Andrei, Tomas, Jonas, Mikael.

Retrieved from "http://forge.mysql.com/wiki/ReplicationFeatures/ParallelSlave"

This page has been accessed 4,519 times. This page was last modified 17:20, 25 May 2009.

Find

Browse
MySQLForge
Main Page
Current events
Recent changes
Random page
Help
Edit
Edit this page
Editing help
This page
Discuss this page
Post a comment
Printable version
Context
Page history
What links here
Related changes
My pages
Special pages
New pages
File list
Statistics
Bug reports
More...