Based on discussions with several clients, we are strongly considering implementing a limited form of parallel replication. Single-threaded replication is one of the most severe limitations in the MySQL server.
We have a brief outline of the ideas at this wiki blueprint. So far, the “binlog order” idea is the only one that is workable. It has the added property that it is much more flexible in the future, so we could lift some of the restrictions. We will initially impose these limitations to keep things simple, and make sure we can actually get something working for our clients.
We’re trying to help the users who are the most negatively affected by the limitations, and whose problems can be improved the most with a (relatively) simple implementation. In particular, that means heavily sharded applications, SaaS applications (see also our related whitepaper), and hosting providers. In general, users who have a lot of independent work happening in short transactions that can be parallelized safely on the replica.
If you are interested in hiring us to implement this limited form of parallel replication for your own use, please contact us to discuss. We need to get more customers involved, to share the cost of this large and ambitious project.
Resources
RELATED POSTS