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