高性能版實(shí)例
AnalyticDB PostgreSQL版高性能版采用單副本存儲模式,大幅降低了數(shù)據(jù)存儲成本及建倉門檻,并提供了較高的I/O能力。
AnalyticDB PostgreSQL版高性能版實(shí)例,適用于大部分業(yè)務(wù)分析場景。對于企業(yè)核心業(yè)務(wù),依然推薦采用高可用版本。
架構(gòu)介紹
AnalyticDB PostgreSQL版高性能版實(shí)例的Master和Segment節(jié)點(diǎn)均采用了單節(jié)點(diǎn)部署,架構(gòu)圖如下。
相比較下圖中的高可用版,高性能版取消了Master Node的副本Standby Node,以及Compute Node中Primary的副本Mirror。
取消上述副本后高性能版具有如下優(yōu)勢:
取消了Master Node的副本Standby Node,節(jié)省了Standby Node占用的存儲空間。
取消了Compute Node中的副本Mirror,節(jié)省了一半的存儲空間。
取消了Compute Node中Primary與Mirror的數(shù)據(jù)同步過程,提升了寫入場景下的I/O性能。
費(fèi)用說明
價格信息詳情,請參見云原生數(shù)據(jù)倉庫PostgreSQL版詳細(xì)價格信息。
高性能版優(yōu)勢
成本優(yōu)勢
高性能版成本優(yōu)勢主要體現(xiàn)在如下兩個方面:
相同規(guī)格下,節(jié)省了一個副本的存儲空間,降低了50%的存儲成本。
計算節(jié)點(diǎn)在擁有相同計算能力的情況下價格下降。
配置
存儲價格(元/月)
計算節(jié)點(diǎn)價格(元/月)
總價格(元/月)
高性能版
高可用版
價格下降
高性能版
高可用版
價格下降
高性能版
高可用版
價格下降
入門配置
100
400
75%
765
1756.3
56.44%
865
2156.3
59.88%
常用配置
400
800
50%
2910
3463.96
15.99%
3310
4263.9
22.37%
入門配置:入門配置即最低配置。高性能版為2核、50 GB存儲容量、2個計算節(jié)點(diǎn),高可用版為2核、50 GB存儲容量、4個計算節(jié)點(diǎn)。相比高可用版,高性能版的入門價格降低了59%。
常用配置:高性能版和高可用版均為4核、100 GB存儲容量、4個計算節(jié)點(diǎn)。相比高可用版,相同配置下,價格降低了22%。
性能優(yōu)勢
高性能版相比較高可用版,I/O性能有比較明顯的提升。2核規(guī)格的實(shí)例,I/O性能最高可達(dá)高可用版相同規(guī)格實(shí)例的2.5倍。在大量數(shù)據(jù)寫入的場景中,高性能版省略了向副本同步數(shù)據(jù)和流復(fù)制的過程,使得該場景中有額外近1倍的I/O提升。
對計算節(jié)點(diǎn)規(guī)格為2核、存儲容量為400 GB、4個計算節(jié)點(diǎn)的高性能版和高可用版實(shí)例進(jìn)行本地復(fù)制測試和TPC-H測試:
本地復(fù)制測試
對約90 GB的行存表進(jìn)行本地復(fù)制測試,示例SQL如下:
CREATE TABLE lineitem2 AS (SELECT * FROM lineitem);
高性能版和高可用版執(zhí)行耗時如下:
高性能版:249秒(s)
高可用版:1307秒(s)
通過如上測試可以看出,I/O密集型場景(例如本地表CTAS、INSERT INTO SELECT)性能提升明顯,上述示例中有接近5倍性能提升。
TPC-H測試
說明本文的TPC-H的實(shí)現(xiàn)基于TPC-H的基準(zhǔn)測試,并不能與已發(fā)布的TPC-H基準(zhǔn)測試結(jié)果相比較,本文中的測試并不符合TPC-H基準(zhǔn)測試的所有要求。
對數(shù)據(jù)集總大小為100 GB的TPC-H數(shù)據(jù)集進(jìn)行基準(zhǔn)測試,TPC-H的22個SQL結(jié)果如下圖所示。
由于I/O性能的提升,相比較高可用版,高性能版的TPC-H集群測試用時降低了40%左右。
可用性
數(shù)據(jù)可靠性
AnalyticDB PostgreSQL版使用阿里云ESSD云盤作為存儲介質(zhì),可保證在單副本模式下,依然可以提供超高的數(shù)據(jù)可靠性。即使計算節(jié)點(diǎn)發(fā)生故障,也可以保證實(shí)例無數(shù)據(jù)丟失。
高可用
AnalyticDB PostgreSQL版高性能版由于減少了一個副本,在高可用方面出現(xiàn)了一些下降,在物理機(jī)故障等極端情況下,集群恢復(fù)的時間會變長(8小時以內(nèi))。高性能版通過ESSD多副本技術(shù),保留了完整的數(shù)據(jù)可靠性,并且阿里云團(tuán)隊(duì)通過更改高性能版CheckPoint機(jī)制的方式,減少了恢復(fù)的時間。
以下內(nèi)容為AnalyticDB PostgreSQL版實(shí)例常見故障場景中高性能版和高可用版的對比:
恢復(fù)(Recovery)模式
根據(jù)以往AnalyticDB PostgreSQL版運(yùn)行情況,故障最大的場景為恢復(fù)模式,故障概率遠(yuǎn)大于另外兩種場景(計算節(jié)點(diǎn)故障和計算節(jié)點(diǎn)宿主機(jī)故障)。恢復(fù)模式中高性能版恢復(fù)速度遠(yuǎn)高于高可用版。
SQL崩潰時,主要會出現(xiàn)Coredump或Out of Memory等情況,使AnalyticDB PostgreSQL版進(jìn)入恢復(fù)模式。恢復(fù)模式中,系統(tǒng)會對殘留的鎖和內(nèi)存執(zhí)行一些清理操作,并通過回放WAL文件來保證數(shù)據(jù)的完整性。恢復(fù)期間,實(shí)例會暫時無法服務(wù),完成恢復(fù)后,實(shí)例會恢復(fù)正常。高可用版實(shí)例恢復(fù)一般耗時5~10分鐘(min),而高性能版實(shí)例通過更改CheckPoint機(jī)制等方式,恢復(fù)的時間可縮短至10秒(s)左右。
WAL和CheckPoint介紹如下:
WAL(Write Ahead Log)
AnalyticDB PostgreSQL版中,事務(wù)每次修改數(shù)據(jù)的操作都需要先記錄到WAL文件中,即每次事務(wù)提交時,會保證WAL日志已落盤。當(dāng)數(shù)據(jù)庫需要恢復(fù)數(shù)據(jù)時,可以通過回放WAL日志的方法來恢復(fù)已經(jīng)提交但尚未寫入磁盤的數(shù)據(jù)更改。
CheckPoint
CheckPoint相當(dāng)于在WAL日志中寫入的一個恢復(fù)點(diǎn)標(biāo)記,并將該標(biāo)記之前的修改全部落盤。數(shù)據(jù)庫恢復(fù)數(shù)據(jù)時,只需要回放到最近一次恢復(fù)點(diǎn)即可。AnalyticDB PostgreSQL版會定期執(zhí)行CheckPoint操作,當(dāng)WAL日志過長時,也會自動執(zhí)行CheckPoint進(jìn)行落盤。
計算節(jié)點(diǎn)故障
高性能版實(shí)例減少了一個副本,必然帶來可用性的下降。高可用版實(shí)例的某個計算節(jié)點(diǎn)故障后,會立刻無縫切換至對應(yīng)副本,實(shí)例可以正常運(yùn)行,故障的計算節(jié)點(diǎn)會切換為副本,在后臺自動重啟;而高性能版實(shí)例單個節(jié)點(diǎn)故障會導(dǎo)致整個實(shí)例不可用,必須重啟整個實(shí)例恢復(fù)。
計算節(jié)點(diǎn)宿主機(jī)故障
計算節(jié)點(diǎn)宿主機(jī)故障屬于比較少見的極端情況,會觸發(fā)宿主機(jī)的自動遷移。對于高可用版實(shí)例,仍然可以觸發(fā)副本自動切換,實(shí)例可以正常運(yùn)行,同時后臺自動完成宿主機(jī)的遷移;高性能版實(shí)例則需要等待宿主機(jī)遷移成功后,再重啟恢復(fù)實(shí)例,耗時一般在15分鐘(min)左右。
相關(guān)文檔
常見問題
Q:如何將AnalyticDB for PostgreSQL基礎(chǔ)版實(shí)例升級為高可用版?
A:基礎(chǔ)版不能直接升級到高可用版,如果需要升級到高可用版,建議先備份好數(shù)據(jù),然后購買高可用版實(shí)例并進(jìn)行數(shù)據(jù)遷移。關(guān)于如何進(jìn)行數(shù)據(jù)遷移,請參見AnalyticDB PostgreSQL版間的數(shù)據(jù)遷移。