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