云原生數(shù)據(jù)庫PolarDB基于Cloud Native設(shè)計理念,既融合了商業(yè)數(shù)據(jù)庫穩(wěn)定可靠、高性能、可擴(kuò)展的特征,又具有開源云數(shù)據(jù)庫簡單開放、快速迭代的優(yōu)勢。本文將介紹PolarDB的產(chǎn)品架構(gòu)及特點。
產(chǎn)品架構(gòu)圖
一寫多讀
PolarDB采用分布式集群架構(gòu),一個集群版集群包含一個主節(jié)點和最多15個只讀節(jié)點(至少一個,用于保障高可用)。主節(jié)點處理讀寫請求,只讀節(jié)點僅處理讀請求。主節(jié)點和只讀節(jié)點之間采用Active-Active的Failover方式,提供數(shù)據(jù)庫的高可用服務(wù)。
計算與存儲分離
PolarDB采用計算與存儲分離的設(shè)計理念,滿足公共云計算環(huán)境下根據(jù)業(yè)務(wù)發(fā)展彈性擴(kuò)展集群的剛性需求。數(shù)據(jù)庫的計算節(jié)點(Database Engine Server)僅存儲元數(shù)據(jù),而將數(shù)據(jù)文件、Redo Log等存儲于遠(yuǎn)端的存儲節(jié)點(Database Storage Server)。各計算節(jié)點之間僅需同步Redo Log相關(guān)的元數(shù)據(jù)信息,極大降低了主節(jié)點和只讀節(jié)點間的復(fù)制延遲,而且在主節(jié)點故障時,只讀節(jié)點可以快速切換為主節(jié)點。
讀寫分離
讀寫分離是PolarDB集群版默認(rèn)免費提供的一個透明、高可用、自適應(yīng)的負(fù)載均衡能力。通過集群地址,SQL請求自動轉(zhuǎn)發(fā)到PolarDB集群版的各個節(jié)點,提供聚合、高吞吐的并發(fā)SQL處理能力。請參見讀寫分離。
高速鏈路互聯(lián)
數(shù)據(jù)庫的計算節(jié)點和存儲節(jié)點之間采用高速網(wǎng)絡(luò)互聯(lián),并通過RDMA協(xié)議進(jìn)行數(shù)據(jù)傳輸,使I/O性能不再成為瓶頸。
共享分布式存儲
多個計算節(jié)點共享一份數(shù)據(jù),而不是每個計算節(jié)點都存儲一份數(shù)據(jù),極大降低了用戶的存儲成本。基于全新打造的分布式塊存儲(Distributed Storage)和文件系統(tǒng)(Distributed Filesystem),存儲容量可以在線平滑擴(kuò)展,不會受到單個數(shù)據(jù)庫服務(wù)器的存儲容量限制,可應(yīng)對上百TB級別的數(shù)據(jù)規(guī)模。
數(shù)據(jù)多副本、Parallel-Raft協(xié)議
數(shù)據(jù)庫存儲節(jié)點的數(shù)據(jù)采用多副本形式,確保數(shù)據(jù)的可靠性,并通過Parallel-Raft協(xié)議保證數(shù)據(jù)的一致性。