强同步

最近更新时间:2017-12-22 09:48:40

概述

MAR 强同步复制方案是腾讯自主研发的基于 MySQL 协议的异步多线程强同步复制方案,只有当备机数据完全同步(日志)后,才由主机给予应用事务应答,保障数据不丢、不错。
数据库作为系统数据存储和服务的核心能力,其可用性要求非常高。在生产系统中,通常都需要用高可用方案来保证系统不间断运行,而数据同步技术是数据库高可用方案的基础。MAR 强同步技术可很好的满足数据库可用性的要求。

传统数据复制方式

当前,数据复制方式有以下三种方式:

  • 异步复制:应用发起更新请求,主节点(Master) 完成相应操作后立即响应应用,Master 向从节点(Slave)异步复制数据。
  • 强同步复制:应用发起更新请求,Master 完成操作后向 Slave 复制数据,Slave 接收到数据后向 Master 返回成功信息,Master 接到 Slave 的反馈后再应答给应用。Master 向 Slave 复制数据是同步进行的。
  • 半同步复制:正常情况下数据复制方式采用强同步复制方式,当 Master 向 Slave 复制数据出现异常的时候(Slave 不可用或者双节点间的网络异常)退化成异步复制。当异常恢复后,异步复制会恢复成强同步复制。

以上三种方式当 Master 或 Slave 不可用时,均有几率引起数据不一致。

MAR 强同步复制方案

MAR 强同步复制方案能保障数据不丢、 不错,技术示意图如下:

其特点如下:
1. 一致性的同步复制,保证节点间数据强一致性。
2. 对业务层面完全透明,业务层面无需做读写分离或同步强化工作。
3. 将串行同步线程异步化,引入线程池能力,大幅度提高性能。
4. 支持集群架构。
5. 支持自动成员控制,故障节点自动从集群中移除。
6. 支持自动节点加入,无需人工干预。
7. 每个节点都包含完整的数据副本,可以随时切换。
8. 无需共享存储设备。
MAR 强同步方案在性能上优于其他主流同步方案,具体数据详情可参考强同步性能对比数据