您现在的位置是: 网站首页 > 程序设计  > OpenGauss 

openGauss和PG差异对比

2023年8月19日 02:12 1213人围观

简介openGauss在PG9的基础上做了修改和增强,最明显的就是用多线程代替了多进程
    • 线程池 openGauss将PostgreSQL的进程模式修改为线程模式,线程模式可以支持更大的并发请求。而通过线程池,可以提高线程的利用率,高并发场景下不会有线程的频繁切换。 -- 线程共享内存,存在线程写坏内存,其他线程无法感知的风险

    • 最大可用模式 PostgreSQL主备同步模式不能自动降级,备库故障时主库会hang,影响主库的可用性。 最大可用模式:在主备连接正常时,以同步模式提交数据,在主备连接失败时,自动切换为异步模式,不影响主库的可用性。

    • openGauss支持了最大可用模式,可以将参数most_available_sync设置为on来启用。启用后,在主备连接正常时,以同步模式提交数据,当备库断连时自动切换为异步模式,在备库恢复时,切换回同步模式。 -- 降级后如果刚好进行切换,可能存在丢数据的风险

    • SMP并行查询 利用系统多核的能力,提高重查询性能。

    • 事务ID不可耗尽 openGauss将transactionid由int32修改为int64,避免了事务ID回卷导致宕机。 -- 改成64位,元组的头部信息扩大

    • 增量检查点 增量检查点可以避免全页写导致的性能波动,数据库recover时用时明显缩短。

    • dbe_perf性能监控schema openGauss每个库下会默认存在schema:dbe_perf,schema下有几百个性能监控视图,方便查看和管理。

    • 支持列存表,列存缓冲区 openGauss支持列存表,通过cstore_buffers控制列存缓冲区大小,列存表支持压缩。 -- 列存表可能出现表膨胀,注意开启enable_delta_store参数。对于频繁的少量插入,性能较差。压缩率大消耗CPU资源多

    • 支持内存表 openGauss支持内存表,将数据全部缓存在内存中,所有数据访问实现免锁并发,实现高吞吐,低延迟访问。

    • NUMA架构优化 通过NUMA绑核,减少跨核内存访问的时延问题,提升CPU利用率,提升多线程间同步性能,xlog日志写入性能,热点数据分散处理。

    • wdr报告 类似oracle awr性能报告。

    • 并行回放 支持备机并行回放日志,提交复制性能。 主备从与一主多备

    • 支持主备从,一主多备。主备从模式:主备机物理复制,从机默认没有数据,当主库宕机,备机与从机组成新的复制关系,从机开始复制数据,节省空间并保证高可用。

    • 灰度升级 提供在线升级,保证在不中断业务的情况下,进行所有节点的升级

    openGauss还存在一些不足之处。

    编译过于复杂,依赖过多 编译需要很多依赖且版本固定,跨平台编译难度大。 一些插件未能正常编译使用