PolarDB有三種不同的引擎支持,分別是MySQL版、PostgreSQL版和分布式版,其中MySQL版和PostgreSQL版的PolarDB有著相同的產(chǎn)品架構:Share Storage,計算存儲分離。
PolarDB MySQL版和PolarDB PostgreSQL版均為計算存儲分離、共享存儲的架構,通過云原生架構、軟硬件一體化、共享分布式存儲的設計,主節(jié)點和只讀節(jié)點使用物理復制、RDMA網(wǎng)絡低時延,能夠快速同步數(shù)據(jù),徹底解決了主從異步復制所帶來的備庫數(shù)據(jù)非強一致的問題,使得整個數(shù)據(jù)庫集群在應對任何單點故障時,都可以保證數(shù)據(jù)零丟失,同時實現(xiàn)秒級節(jié)點擴縮容。
核心組件
Proxy:PolarDB通過內部的代理層Proxy對外提供服務,應用程序的請求都先經(jīng)過代理層,然后訪問到數(shù)據(jù)庫節(jié)點。代理層不僅可以做安全認證、保護和會話保持,還可以解析SQL,把寫操作發(fā)送到主節(jié)點,把讀操作均衡地分發(fā)到多個只讀節(jié)點,實現(xiàn)自動的讀寫分離。
計算節(jié)點:一寫多讀集群內有一個讀寫節(jié)點以及多個只讀節(jié)點,多主集群(僅MySQL版支持)內可支持多個讀寫節(jié)點和多個只讀節(jié)點,計算節(jié)點主要提供數(shù)據(jù)庫SQL引擎功能,分為通用規(guī)格和獨享規(guī)格。
共享存儲:集群內的多個節(jié)點共享存儲資源,單集群支持最高100 TB存儲空間。
架構優(yōu)勢
大容量:存儲最高100 TB,不再需要因為單機容量的天花板而去購買多個實例做分片,從而簡化應用開發(fā),降低運維負擔。
低成本:計算存儲分離架構下,每增加一個只讀節(jié)點只收取計算資源的費用,而傳統(tǒng)的備節(jié)點或只讀節(jié)點同時包含計算和存儲資源,每增加一個節(jié)點都需要支付相應的存儲費用。
分鐘級擴縮容:計算存儲分離的架構配合容器虛擬化和共享存儲技術,使得增減節(jié)點只需5分鐘。存儲容量自動在線擴容,無需中斷業(yè)務。
讀一致性:集群地址利用LSN(Log Sequence Number)確保讀取數(shù)據(jù)時的全局一致性,避免因為主備延遲引起的不一致。
毫秒級延遲(物理復制):利用基于Redo的物理復制代替基于Binlog的邏輯復制,提升主備復制的效率和穩(wěn)定性。即使對大表進行加索引、加字段等DDL操作,也不會造成數(shù)據(jù)庫的延遲。
秒級快速備份:利用底層分布式存儲的快照技術,只需分鐘級別即可完成對TB級數(shù)據(jù)量大小的數(shù)據(jù)庫的備份,且整個備份過程不需要加鎖,效率更高,影響更小,對應用程序幾乎無影響,全天24小時均可進行備份。