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

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

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

?

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

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

?

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

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

?

二、改进方案

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

如图:

?

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