AnalyticDB PostgreSQL版高性能版采用单副本存储模式,大幅降低了数据存储成本及建仓门槛,并提供了较高的I/O能力。
AnalyticDB PostgreSQL版高性能版实例,适用于大部分业务分析场景。对于企业核心业务,依然推荐采用高可用版本。
架构介绍
AnalyticDB PostgreSQL版高性能版实例的Master和Segment节点均采用了单节点部署,架构图如下。
相比较下图中的高可用版,高性能版取消了Master Node的副本Standby Node,以及Compute Node中Primary的副本Mirror。
取消上述副本后高性能版具有如下优势:
取消了Master Node的副本Standby Node,节省了Standby Node占用的存储空间。
取消了Compute Node中的副本Mirror,节省了一半的存储空间。
取消了Compute Node中Primary与Mirror的数据同步过程,提升了写入场景下的I/O性能。
费用说明
价格信息详情,请参见云原生数据仓库PostgreSQL版详细价格信息。
高性能版优势
成本优势
高性能版成本优势主要体现在如下两个方面:
相同规格下,节省了一个副本的存储空间,降低了50%的存储成本。
计算节点在拥有相同计算能力的情况下价格下降。
配置
存储价格(元/月)
计算节点价格(元/月)
总价格(元/月)
高性能版
高可用版
价格下降
高性能版
高可用版
价格下降
高性能版
高可用版
价格下降
入门配置
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个计算节点,高可用版为2核、50 GB存储容量、4个计算节点。相比高可用版,高性能版的入门价格降低了59%。
常用配置:高性能版和高可用版均为4核、100 GB存储容量、4个计算节点。相比高可用版,相同配置下,价格降低了22%。
性能优势
高性能版相比较高可用版,I/O性能有比较明显的提升。2核规格的实例,I/O性能最高可达高可用版相同规格实例的2.5倍。在大量数据写入的场景中,高性能版省略了向副本同步数据和流复制的过程,使得该场景中有额外近1倍的I/O提升。
对计算节点规格为2核、存储容量为400 GB、4个计算节点的高性能版和高可用版实例进行本地复制测试和TPC-H测试:
本地复制测试
对约90 GB的行存表进行本地复制测试,示例SQL如下:
CREATE TABLE lineitem2 AS (SELECT * FROM lineitem);
高性能版和高可用版执行耗时如下:
高性能版:249秒(s)
高可用版:1307秒(s)
通过如上测试可以看出,I/O密集型场景(例如本地表CTAS、INSERT INTO SELECT)性能提升明显,上述示例中有接近5倍性能提升。
TPC-H测试
说明本文的TPC-H的实现基于TPC-H的基准测试,并不能与已发布的TPC-H基准测试结果相比较,本文中的测试并不符合TPC-H基准测试的所有要求。
对数据集总大小为100 GB的TPC-H数据集进行基准测试,TPC-H的22个SQL结果如下图所示。
由于I/O性能的提升,相比较高可用版,高性能版的TPC-H集群测试用时降低了40%左右。
可用性
数据可靠性
AnalyticDB PostgreSQL版使用阿里云ESSD云盘作为存储介质,可保证在单副本模式下,依然可以提供超高的数据可靠性。即使计算节点发生故障,也可以保证实例无数据丢失。
高可用
AnalyticDB PostgreSQL版高性能版由于减少了一个副本,在高可用方面出现了一些下降,在物理机故障等极端情况下,集群恢复的时间会变长(8小时以内)。高性能版通过ESSD多副本技术,保留了完整的数据可靠性,并且阿里云团队通过更改高性能版CheckPoint机制的方式,减少了恢复的时间。
以下内容为AnalyticDB PostgreSQL版实例常见故障场景中高性能版和高可用版的对比:
恢复(Recovery)模式
根据以往AnalyticDB PostgreSQL版运行情况,故障最大的场景为恢复模式,故障概率远大于另外两种场景(计算节点故障和计算节点宿主机故障)。恢复模式中高性能版恢复速度远高于高可用版。
SQL崩溃时,主要会出现Coredump或Out of Memory等情况,使AnalyticDB PostgreSQL版进入恢复模式。恢复模式中,系统会对残留的锁和内存执行一些清理操作,并通过回放WAL文件来保证数据的完整性。恢复期间,实例会暂时无法服务,完成恢复后,实例会恢复正常。高可用版实例恢复一般耗时5~10分钟(min),而高性能版实例通过更改CheckPoint机制等方式,恢复的时间可缩短至10秒(s)左右。
WAL和CheckPoint介绍如下:
WAL(Write Ahead Log)
AnalyticDB PostgreSQL版中,事务每次修改数据的操作都需要先记录到WAL文件中,即每次事务提交时,会保证WAL日志已落盘。当数据库需要恢复数据时,可以通过回放WAL日志的方法来恢复已经提交但尚未写入磁盘的数据更改。
CheckPoint
CheckPoint相当于在WAL日志中写入的一个恢复点标记,并将该标记之前的修改全部落盘。数据库恢复数据时,只需要回放到最近一次恢复点即可。AnalyticDB PostgreSQL版会定期执行CheckPoint操作,当WAL日志过长时,也会自动执行CheckPoint进行落盘。
计算节点故障
高性能版实例减少了一个副本,必然带来可用性的下降。高可用版实例的某个计算节点故障后,会立刻无缝切换至对应副本,实例可以正常运行,故障的计算节点会切换为副本,在后台自动重启;而高性能版实例单个节点故障会导致整个实例不可用,必须重启整个实例恢复。
计算节点宿主机故障
计算节点宿主机故障属于比较少见的极端情况,会触发宿主机的自动迁移。对于高可用版实例,仍然可以触发副本自动切换,实例可以正常运行,同时后台自动完成宿主机的迁移;高性能版实例则需要等待宿主机迁移成功后,再重启恢复实例,耗时一般在15分钟(min)左右。
相关文档
常见问题
Q:如何将AnalyticDB for PostgreSQL基础版实例升级为高可用版?
A:基础版不能直接升级到高可用版,如果需要升级到高可用版,建议先备份好数据,然后购买高可用版实例并进行数据迁移。关于如何进行数据迁移,请参见AnalyticDB PostgreSQL版间的数据迁移。