日期:2014-05-16  浏览次数:20684 次

一种MySQL主从同步加速方案-改进

上一篇提出了一种改进主从延迟的方案。虽然能够实现主从无延迟同步,但在维护上比较复杂,还存在网络消耗问题,这里是一个改进的版本。

?

一、之前方案简述及问题分析

方案如图。其中用多个MySQL充当transfer的角色。每个transfer负责同步master的一部分表。在我的试验中有8transfer,也就是有8MySQL实例。

?

问题: 1维护复杂。在从库及其上需要增加8个实例,增加维护成本,而且不利于加表操作。

?????? 2增加网络开销。虽然在transferIO线程作了过滤,减少每个transfer的写盘量和SQL线程的空转,但master还是向每个tranfer发了所有的数据。网络传输的日志量是原来的n倍。

?

二、改进方案

基于上述的两个问题考虑,考虑将transfer多进程改成多线程

如图:

?

??? 1、用一个MySQL充当transfer transfer设置为master