本文介紹全球數據庫網絡(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等命令。
說明從集群中的主節點主要用于異步復制主集群數據而不處理任何讀寫請求,因此表中的主節點指主集群中的主節點,只讀節點指從集群中的只讀節點。