体验一把PolarDB单机版

昨天实验室里装了一套PolarDB单机版,这个版本相当于是线上的PolarDB-O的简化版,是基于PostgreSQL 11的。数据库启动以后可以看到进程结构和PostgreSQL十分类似:

每个进程前面的Postgres前缀都没有去掉。不过我们还是看出了PolarDB与原生态的PG的些许不同之处,那就是多了Polar Parallel Bgwriter的存在。PostgreSQL的脏块刷新机制一直是一个性能痛点,Backend承担了脏块刷新的部分职责,使得在高并发下,还是会有很多脏块是由Backend负责写入文件的,这会影响前台应用的性能。究其原因是因为PG的脏块刷新由多个组件负责,BGWRITER、CHECKPOINTER和Backend都可以刷脏块。PolarDB可能是看到了这个痛点,于是增加了一组自己的并行bgwriter进程,用于脏块的刷入。实际效果上看,还是不错的。

从这张非Backend脏块写入占比来看,大多数情况下,Backend不需要写入脏块。我们再来看看BGWriter写入脏块比例的情况。

昨天下班前我做了一次系统压测,可以看出,在压测的高峰期,BGWRITER的脏块写入比例还是不高,大约在60%多,不过大多数情况下,BGWRITER的脏块写入比例都接近100%,说明PolarDB的这个改进还是有效的。

从Checkpointer写入脏块的比例来看,除了某些特殊情况,Checkpointer几乎不用怎么写入脏块数据了。

从一个普通的PG数据库看,BGWriter写入的脏块比例并不高。

相比之下,这个来自于PolarDB的数据就好看多了。

接入D-SMART后我们就可以仔细端详一下PolarDB了,从版本信息可以看出,PolarDB基于PostgreSQL的11.9.18.从发行版本信息中可以看出,该版本是兼容Oracle数据库的,这和PolarDB-O的宣传是一致的,据说与Oracle的语法保持了90%以上的兼容性。

如果说起Oracle的兼容性,我们首先想到的就是dual, 于是我执行了一个select sysdate from dual;果然是可以执行的,同时,与PG兼容的selecte sysdate;命令也可以同样执行。这是一个很不错的特性,今后应用迁移可能会比较方便。

rowid, rownum也是支持的。Dba_tables/dba_indexes等视图也同样存在,只是字段与Oracle之间不太兼容,少了很多。只是简单的把PG的元数据做了一个翻译而已。

我想随着产品的发展,者方能的兼容问题是不难解决的。

从参数上看,PolarDB比普通的PostgreSQL多了很多Polar开头的参数,我想今后PolarDB的主要参数都会使用Polar开头的参数了。刚刚开始使用,手头也没有可参考的手册,暂时就不去猜测这些参数的含义了,等以后再慢慢的去体验吧。

因为PolarDB和PG的高度兼容,因此D-SMART的初步适配十分简单,只要把PolarDB定义为一个PG数据库,就可以看到系统的健康状态了。

PG的诊断工具也大体可用,不过部分工具还存在一些报错或者数据不准确的情况,看上去PolarDB还是有一些和PG不同的地方。

最后我们来看看性能,通过BenchMark 5.0,我们可用看到刚开始时候TPMC大约为54万,逐渐降低到40多万,最后稳定在40万多点的地方。这个性能基线和PG 11大致相当。我们使用的存储时nvme ssd,从存储层面上看,IO性能尚佳。

PolarDB单机版并没有PolarFS加持,因此也无法体验到读写分离、高客户切换等高级功能,不过基本上可以当成一个单机的PG数据库来使用。不管如何,PG家族又多了一个新的伙伴,总是令人高兴的事情,愿PolarDB一帆风顺。

  • 10
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值