本文介绍全球数据库网络(Global Database Network,简称GDN)的技术架构。
跨地域部署
跨地域低延时同步
全球数据库网络支持通过异步复制机制帮助实现跨地域复制数据,并通过物理日志、并行处理等技术降低主从集群间跨地域复制的延迟。所有集群间的数据都能保持同步且网络延迟被控制在2秒之内,大大降低了非中心区域应用访问的读取延迟。创建异地从集群并保持数据同步,不会影响现有主集群的稳定性和性能。
跨地域读写分离
特点
读请求通常情况下会直接发往当前地域下的从集群,而写请求则被转发至主集群。
说明从集群中的主节点主要用于异步复制主集群数据。为减少跨地域下物理复制的延迟,读请求默认发往本地从集群下的只读节点。
无需在应用程序上修改代码,拆分读写请求。
实现方式
GDN的跨地域读写分离功能需依赖PolarDB集群的集群连接地址实现。如何设置GDN的集群连接地址,具体操作请参见连接全球数据库网络。
转发逻辑
目标节点
转发的请求
只发往主节点
所有DML操作(INSERT、UPDATE、DELETE、SELECT FOR UPDATE)。
所有DDL操作(建表或库、删表或库、变更表结构、权限等)。
所有事务中的请求。
用户自定义函数。
存储过程。
EXECUTE语句。
使用到临时表的请求。
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等命令。
说明从集群中的主节点主要用于异步复制主集群数据而不处理任何读写请求,因此表中的主节点指主集群中的主节点,只读节点指从集群中的只读节点。