暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Opengauss学习初体验

原创 杨卓 2021-03-30
1898

#openGauss 和 #openGauss训练营
如下部分内容是文档学习,Oracle部分是个人理解,不保证准确性。

体系结构
openGauss是一款基于pg改造的pg关系型数据库,与Oracle兼容性较好,可以用于替代Oracle的产品。

与PG,Oracle的对比
1)进程、线程模式
openGauss 为线程池模型,高并发连接切换代价小、内存损耗小, 执行效率高,一万并发连接比最优性能损耗<5%;
PG进程模型,数据库进程通过共享内存实现通讯和数据共享。每个进 程对应一个并发连接,存在切换性能损耗,导致多核扩展性问题。
Oracle 也是进程模型!

2)并发控制
opengauss 64位事务ID,使用CSN解决动态快照膨胀问题; NUMA-Aware引擎优化改造解决“五把大锁”
https://www.modb.pro/doc/6815

pg 事务ID回卷,长期运行性能因为ID回收周期大幅波动,pg事务id 可以理解为一个环形模型,写满之后会覆盖原有的id,因此达到一定阈值会对历史的id进行清理回收,从而严重影响数据库性能;存在“五把 大锁”的问题,导致事务执行效率和多处理器多核扩展性存在瓶颈
oracle scn跟随时间,scn的上限会一直提升,并且oracle越高的版本scn的上限越高;11g Oracle使用6 Bytes记录SCN,也就是48位;
SCN is a 6 byte (48 bits) number. Out of these 48 bits
From Oracle Version 12c, the SCN number is an 8 byte number. 【64bits]
–oracle到了12c scn 的位数与opengauss上限相同!当然oracle scn与事务id并不一定等同
https://www.red-gate.com/simple-talk/sql/oracle/oracle-system-change-number-an-introduction/

3)检查点
opengauss 增量Checkpoint机制,实现性能波动<5%
pg 全量checkpoint,性能短期波动>15%
oracle 增量checkpoint机制

4)鲲鹏numa
opengauss NUMA改造、cache-line padding、原生spin-lock
https://www.modb.pro/db/31086
针对性一系列NUMA架构相关优化,一方面尽量减少跨核内存访问的时延问题,另一方面重分发挥鲲鹏多核算力优势,所提供的关键技术包括重做日志批插,热点数据NUMA分布,CLog分区等,大幅提升TP系统的处理性能。
pg NUMA多核能力弱,单机两路性能TPMC <60w
oracle 大家从NUMA架构可以看出,每颗CPU之间是独立的,相互之间的内存是不影响的。每一颗CPU访问属于自己的内存,延迟是最小的。
说实在的,NUMA的这些问题对于绝大多数的系统来说带来的问题不明显,或者说我们的应用可以承受NUMA带来的缺点,对于有些极端的现象,我们可以通过调整内存分配的策略来调整NUMA的标准行为。最为重要的参数是vm.zone_reclaim_mode。Oracle官方的建议是在大多数环境中,将这个参数设置为6,也就是禁止本地节点分配远程内存。这种做法似乎也不是万能的,一旦真的物理内存出现严重不足,那么SWAP风险也是不小的。
风险:NUMA架构将物理内存分为多个节点,不同节点单独进行空闲内存管理的模式带来的CACHE DROP问题,可能会导致数据库的间歇性卡顿。
具体见如下链接, NUMA的本质是一个cpu一部分内存,优点是cpu访问获取内存速度非常快,比传统的多个cpu访问同一块共享内存区域快,但是当cpu分配的内存区域不足时,需要等待cache drop释放回收大量内存,然后分配给不足的cpu对应的内存区域,这样的内存分配足以导致操作系统上的oracle或其它数据库软件的进程,一段时间的卡顿!
实际运维oracle,有的客户安装文档是关闭numa特性!
https://www.modb.pro/db/31948
https://www.modb.pro/db/21304
https://www.modb.pro/db/33172

5)多引擎
opengauss 行存、列存、内存引擎,在研DFV存储和原位更新
pg 支持行存
oracle 11g之前只支持行存,oracle 12c 列式存储 ( In Memory 理论)

6)优化器
opengauss 支持SQL Bypass, CBO吸收工行等企业场景优化能 力
pg 支持CBO,复杂场景优化能力一般
oracle cbo 优化器很强大

最后修改时间:2021-03-30 16:29:24
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论