一 背景
AnalyticDB PostgreSQL版(簡稱ADB PG)是阿裡雲資料庫團隊基于PostgreSQL核心(簡稱PG)打造的一款雲原生資料倉庫産品。在資料實時互動式分析、HTAP、ETL、BI報表生成等業務場景,ADB PG都有着獨特的技術優勢。
對于離線報表分析等公有雲典型場景,可用性要求不高,是以ADB PG推出了單副本形态,降低一半存儲成本的同時提升了IO性能,大幅提升了成本效益。
二 簡介
ADB PG高可用版執行個體采用雙副本模式,部署結構如下:

基礎版執行個體相比高可用版執行個體,master和segment均采用單節點部署,即省略了上圖中master node的副本standby node,和所有compute node中primary節點的副本mirror。這樣做一方面在compute node上節約了一半的存儲空間,并且直接節省了standby node;另一方面,省略了primary和mirror的同步過程,提升了寫入場景下的IO能力:
三 對比
成本優勢
基礎版成本優勢主要展現在兩方面:第一是相同規格下,節省了一個副本的存儲空間,降低了50%的存儲成本;另一方面,計算節點在相同算力下降低了價格。
存儲價格 | 計算節點價格 | 總價格 | |||||||
基礎版 | 高可用版 | 價格下降 | |||||||
入門配置價格 | 100元/月 | 400元/月 | 75% | 765元/月 | 1756.3元/月 | 56.44% | 865元/月 | 2156.3元/月 | 59.88% |
常用配置價格 | 800元/月 | 50% | 2910元/月 | 3463.96元/月 | 15.99% | 3310元/月 | 4263.96元/月 | 22.37% |
入門配置為所能購買的最低配置,基礎版為2C 50G 2計算節點,高可用版為2C 50G 4計算節點。相比高可用版,基礎版的入門價格降低了59%。
常用配置下,基礎版和高可用版均為為4C 100G 4節點。相比高可用版,配置相同的情況下,價格降低了22%。
性能優勢
基礎版(單副本)相比高可用版(雙副本),IO性能有比較明顯的提升,2C規格下,最高可達到原有相同規格叢集的2.5倍;此外,在含有大量資料寫入的場景下,基礎版節省了向副本進行資料同步和流複制的過程,這種場景下又有額外的接近1倍的IO提升。
對計算節點規格均為2C,節點存儲均為400G的基礎版和高可用版叢集進行以下測試:
- 大小約為90G的行存表進行本地複制測試:
create table lineitem2 as (select * from lineitem);
基礎版(單副本) | 高可用版(雙副本) | |
用時(s) | 249 | 1307 |
本地表CTAS,INSERT INTO SELECT,這類IO密集型場景,提升十分明顯,上述場景有5倍性能提升。
- TPC-H測試
TPC-H 測試是資料倉庫最常用的基準測試之一,包括 22 個SQL(Q1~Q22),主要評價名額是各個查詢的執行時間
。在計算節點規格均為2C,計算節點存儲均為400G,計算節點個數均為4的情況下,對基礎版和高可用版進行資料集總大小為100G的TPC-H資料集進行基準測試,結果如下(機關:s):
SQL | ||
1 | 201 | 108 |
2 | 42 | 36 |
3 | 286 | 182 |
4 | 280 | 212 |
5 | 285 | 163 |
6 | 78 | |
7 | 260 | 192 |
8 | 320 | 152 |
9 | 284 | 175 |
10 | 238 | 162 |
11 | 27 | 20 |
12 | 228 | 111 |
13 | 61 | 67 |
14 | 92 | |
15 | 202 | 79 |
16 | 52 | 43 |
17.1 | 667 | 478 |
17.2 | 345 | 170 |
18 | 413 | 213 |
19 | 172 | 71 |
217 | ||
21 | 645 | |
22 | 73 | 70 |
sum | 5713 | 3450 |

可以看到由于IO性能的提升,相比于高可用版,基礎版的TPCH基準測試用時降低了40%。
可用性
資料可靠性
ADB PG可保證99.99999999%的資料可靠性,即使發生計算節點當機,也可保證無資料丢失。ADB PG使用阿裡雲ESSD雲盤作為存儲媒體,ESSD雲盤自身采用了三副本技術,故可保證即使在單副本模式下,依然提供超高的資料可靠性,為客戶的資料保駕護航。
高可用
WAL和checkpoint
ADB PG中,事務的每次修改資料的操作都必須首先被記錄至WAL(Write Ahead Log)檔案中。即每次事務送出時,會保證WAL日志已落盤。當資料庫需要恢複資料時,可以通過回放WAL日志的方法來恢複已經送出但是尚未寫入磁盤的資料庫的資料更改。
checkpoint相當于在WAL日志中寫入的一個恢複點标記,并将該标記之前的修改全部落盤。資料庫恢複資料時,隻需要回放到最近一次恢複點即可。ADB PG會定期執行checkpoint操作;當WAL日志過長時,也會自動執行checkpoint進行落盤。
Recovery模式
SQL崩潰時,主要是出現coredump或者out of memory等情況,會使ADB PG叢集進入recovery模式,recovery模式中,會對殘留的鎖,記憶體等執行一些清理工作,并通過回放WAL檔案來保證資料的完整性。Recovery期間,叢集會暫時無法服務;完成recovery之後,叢集會恢複正常。高可用版執行個體recovery時間大多在5-10min,而基礎版執行個體通過更改checkpoint機制等方式,recovery的時間可縮短至10s左右。
計算節點當機
基礎版執行個體省略了一個副本,必然帶來可用性的下降。高可用版的某個計算節點當機之後,會立刻無縫切換對應副本,叢集可以正常運作,當機的計算節點的角色會切換為副本,在背景被自動重新開機;而基礎版執行個體單個節點當機會導緻整個叢集不可用,必須重新開機整個叢集恢複。
計算節點主控端當機
計算節點主控端當機屬于比較少見的極端情況,會觸發主控端的自動遷移。對于高可用版執行個體,仍然可以觸發副本自動切換,叢集可以正常運作,同時背景自動完成主控端的遷移;基礎版執行個體則需要等待主控端遷移成功後,再重新開機恢複叢集,這個等待時間一般在15min左右。
總結
ADB PG基礎版由于省略了一個副本,在高可用方面出現了一些下降,在實體機當機等極端情況下,叢集恢複的時間變長。但通過ESSD多副本技術,仍保留了完整的資料可靠性,并且通過更改checkpoint機制的方式,減少了recovery的時間。根據以往公共雲運作情況,recovery模式為出現機率最大的場景(遠大于另外兩個場景),而該場景下基礎版恢複速度目前要由于高可用版。
四 開通基礎版執行個體
可選地域
目前隻有北京可用區I,杭州可用區J,上海可用區L,深圳可用區F,新加坡可用區C可以開通基礎版執行個體,即控制台上标有“薦”的地域.

建立/選擇VPC
如果在已選可用區已經有可用的VPC和交換機,此處會自動選擇;如果點選右側的重新整理按鈕後仍然沒有自動選擇,則代表此可用區無可用的VPC或交換機,需要重新建立。建立方法與高可用版完全相同,可參考阿裡雲官方幫助文檔:
使用專有網絡選擇執行個體規格

各個選項的含義如下,除執行個體系列外,其餘選項的含義基礎版和高可用版均完全相同。執行個體系列選擇“基礎版”,其餘選項按需選擇:
執行個體系列 | 基礎版為單副本執行個體,高可用版為雙副本執行個體 |
節點數量(master) | 購買執行個體對應的master數量,最小機關為1。 |
節點規格(segment) | 計算資源機關,不同的計算組規格有不同的記憶體大小和計算能力. |
節點數量(segment) | 所購買的“節點”數量,基礎版最小機關為2個,高可用版最小機關為4個,節點個數的增加可以線性地提升性能。 |
選擇存儲容量

節點存儲容量代表執行個體中每個節點獨享的存儲空間大小。
付費
下方購買時長(按量付費沒有這一欄)選擇想要購買的時長(時長越長,優惠越大!),總配置費用一欄會顯示目前配置的費用,确認後點選右下角的立即購買,即可享受到基礎版執行個體的高成本效益了!

五 總結
基礎版單副本執行個體以犧牲部分特定場景(主控端當機)可用性為代價,提供了較低的入門門檻,購買成本,和較高的IO能力,在可用性要求不高的場景是一個極佳的選擇。未來ADB PG将持續深耕成本效益,提高使用者使用體驗。