Primary - Mirror 分布策略

本文档介绍了 YMatrix 数据库系统中的镜像分布策略。

部署 YMatrix 数据库系统时,可以在主机上配置镜像节点(Mirror)。

  • 功能:
    • 当数据主节点(Primary)宕机的时候,Mirror 可以将数据库查询转移到备份节点上。
    • Mirror 通过将数据从 Primary 同步到 Mirror 的事务日志复制进程保持同步。
  • 最佳实践:
    • 每个 Mirror 节点实例必须与其对应的 Primary 节点实例部署到不同的机器,以防止单机故障带来的影响。

注意!
Mirror 机制在生产环境中强烈建议开启。

1 Greenplum 镜像分布策略

在阐述 YMatrix 的镜像分布策略之前,我们先以 Greenplum 的镜像分布策略作为背景知识进行铺垫和引入。Greenplum 可使用两种标准的镜像配置:组镜像分布(Group Mirroring)和散列镜像分布(Spread Mirroring),其中组镜像为其默认的配置。

1.1 散列镜像分布

散列镜像分布会把每台主机的 Mirror 散布到集群中剩余的主机上,并且要求集群中的主机数量比每个主机上的Primary 数量多。
要确保平均散布,阵列中独立主机的数量必须大于每台主机上的节点示例数量。

1.2 组镜像分布

组镜像分布会把同一个主机上的 Primary 的所有 Mirror 看作一组,一同放置在集群中的另一台主机上。
这是 Greenplum 的默认镜像分布策略。

2 YMatrix 镜像分布策略

YMatrix 默认采取环状镜像分布策略(Ring Mirroring):即在至少有两台主机的情况下,将一个主机中的 Primary 序号序列看作一个一维纸带,从中间对折,然后在另外的主机上从对折的中间序号为起点,顺时针均匀排列 Mirror 到其他主机。 扩容增加新的 Primary 不会影响之前已分布完成的镜像闭环,而是开启一个新的镜像环。
这是 YMatrix 的默认镜像分布策略。

此策略取上述两种策略利弊中和,是一个折中的方法。三种策略的对比请见下表:

散列分布 组分布 环状分布
系统稳定 不稳定 稳定 较稳定
负载均衡 均衡 不均衡 较均衡

注意!
如果你想要在 YMatrix 中使用除 Ring 策略以外的镜像分布策略,那么可以通过自定义配置 mxaddmirrors 实现。