本文介绍全球数据库网络(Global Database Network,简称GDN)的技术架构。

图 1. GDN架构
1

跨地域部署

  • ⼀个主集群(Primary),其他为从集群(Secondary),多个PolarDB集群之间数据保持同步。
    说明 当前一个GDN中包含一个主集群和最多四个从集群,若您需要添加更多从集群,请提交工单联系技术支持进行添加。
  • GDN中的每个集群都默认包含2个节点,最多可增加至16个节点,详情请参见增加只读节点

跨地域低延时同步

全球数据库支持通过异步复制机制帮助实现跨地域复制数据,并通过物理日志、并行处理等技术降低主从集群间跨地域复制的延迟。所有集群间的数据都能保持同步且网络延迟被控制在2秒之内,大大降低了非中心区域应用访问的读取延迟。创建异地从集群并保持数据同步,不会影响现有主集群的稳定性和性能。

说明 创建从集群时,建议选择与主集群一致的节点规格以保证低延迟同步效果。如何创建从集群,请参见添加从集群

如下是以GDN张家口-美西地域为例的低延时同步的测试结果。

测试集群规格和拓扑 Sysbench压力测试 峰值QPS/TPS 美西从集群到张家口主集群的延迟
GDN张家口-美西地域

PolarDB MySQL

16核128 GB

OLTP_INSERT插入负载 82655/82655 小于1秒
OLTP_WRITE_ONLY只写负载 157953/26325 小于1秒
OLTP_READ_WRITE读写负载 136758/6837 小于1秒

跨地域读写分离

  • 特点
    • 每个集群均可读写。
    • 读请求通常情况下会直接发往本地,而写请求则被转发至主集群。
      说明 从集群中的主节点主要用于异步复制主集群数据。为减少跨地域下物理复制的延迟,读请求默认发往本地从集群下的只读节点。
    • 无需在应用程序上修改代码,拆分读写请求。
  • 实现方式

    GDN的跨地域读写分离功能需依赖PolarDB集群的集群连接地址实现。如何设置GDN的集群连接地址,具体操作请参见连接全球数据库

  • 转发逻辑
    目标节点 转发的请求
    只发往主节点
    • 所有DML操作(INSERT、UPDATE、DELETE、SELECT FOR UPDATE)。
    • 所有DDL操作(建表或库、删表或库、变更表结构、权限等)。
    • 所有事务中的请求。
    • 用户自定义函数。
    • 存储过程。
    • EXECUTE语句。
    • Multi Statements
    • 使用到临时表的请求。
    • SELECT last_insert_id()。
    • 所有对用户变量的查询和更改。
    • SHOW PROCESSLIST。
    • KILL(SQL语句中的KILL,非命令KILL)。
    发往只读节点或主节点
    说明 仅当关闭主库不接受读时会发往主节点。
    • 非事务中的读请求。
    • COM_STMT_EXECUTE命令。
    总是发往所有节点
    • 所有系统变量的更改。
    • USE命令。
    • COM_STMT_PREPARE命令。
    • COM_CHANGE_USER、COM_QUIT、COM_SET_OPTION等命令。
    说明 从集群中的主节点主要用于异步复制主集群数据而不处理任何读写请求,因此表中的主节点指主集群中的主节点,只读节点指从集群中的只读节点。

相关文档