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

跨地域部署
- ⼀个主集群(Primary),其他为从集群(Secondary),多个PolarDB集群之间数据保持同步。
- GDN中的每个集群都默认包含2个节点,最多可增加至16个节点,详情请参见增加只读节点。
跨地域低延时同步
全球数据库网络支持通过异步复制机制帮助实现跨地域复制数据,并通过物理日志、并行处理等技术降低主从集群间跨地域复制的延迟。所有集群间的数据都能保持同步且网络延迟被控制在2秒之内,大大降低了非中心区域应用访问的读取延迟。创建异地从集群并保持数据同步,不会影响现有主集群的稳定性和性能。
跨地域读写分离
- 特点
- 读请求通常情况下会直接发往本地,而写请求则被转发至主集群。说明 从集群中的主节点主要用于异步复制主集群数据。为减少跨地域下物理复制的延迟,读请求默认发往本地从集群下的只读节点。
- 无需在应用程序上修改代码,拆分读写请求。
- 读请求通常情况下会直接发往本地,而写请求则被转发至主集群。
- 实现方式
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等命令。
说明 从集群中的主节点主要用于异步复制主集群数据而不处理任何读写请求,因此表中的主节点指主集群中的主节点,只读节点指从集群中的只读节点。