更新时间:2024-10-29 GMT+08:00

V2.0-2.x版本

本章节介绍云数据库 GaussDB的内核V2.0-2.x版本更新说明。版本号说明以及如何查看版本号请参考数据库引擎版本说明

表1 V2.0-2.7企业版

时间

需求名称

描述

2022-11

全局临时表不同session之间支持DML与truncate并发操作

全局临时表不同session之间支持DML与truncate并发操作。

备机支持快照备份

支持在备机进行快照备份。

在公有云典型资源配置下,12TB数据全量备份及恢复均小于8小时。支持对接PITR。

须知:

白名单特性。如需配置白名单权限,您可以在管理控制台右上角,选择工单 > 新建工单,提交开通白名单的申请。

支持I层高时延逃生能力

如果出现底层原因导致的时延上涨,会导致业务侧新建大量连接,连接数增高引起DN线程池和动态内存满,提供逃生手段,快速恢复,避免对业务的影响时间长,产生事故。

支持特定用户操作不进行逻辑解码

实现逻辑解码日志用户粒度过滤,解码过程区别对待不同用户产生的事务修改,不返回黑名单用户进行数据库操作的逻辑日志,从而保证下游数据不受逻辑复制的黑名单用户操作影响。

配置黑名单用户涉及用户名字和用户OID两种方式。同时,逻辑日志事务中包含用户信息,提供下游业务实现过滤的基础。

基于级联备方案的支持只读备机

基于GaussDB内核级联备能力提供只读节点能力,作为库存查询服务数据库,分流主库查询负载:

  1. 内核支持1主+2备+n读的高可用架构,支持动态增删级联备只读节点。业务可根据需要规划n<=3个读节点(1个接纳外部业务接入,n-1提供高可用)。
  2. 网络资源通畅情况下,从主机复制日志延迟<5秒。
  3. 支持查询SQL执行时长小时级别。
须知:

白名单特性。如需配置白名单权限,您可以在管理控制台右上角,选择工单 > 新建工单,提交开通白名单的申请。

支持查看当前存储过程正执行的SQL

支持查看当前存储过程正执行的SQL,增强DFX能力。

安全加固

解决安全漏洞:

CVE-2022-32221

CVE-2022-42916

CVE-2022-42915

CVE-2022-2097

CVE-2022-32205

CVE-2022-32206

CVE-2022-32207

CVE-2022-32208

CVE-2022-2068

CVE-2022-24302

表2 V2.0-2.3企业版

时间

需求名称

描述

2022-06

逻辑复制能力增强

逻辑复制能力增强。

内存管控增强:针对以下两种场景,提供内存管控手段:

  1. 提供事务级内存阈值参数:超过阈值后自动触发逻辑日志下盘。
  2. 提供逻辑复制槽内存阈值参数:超过阈值后自动触发逻辑日志下盘。
  3. 通过视图/函数等展示并行逻辑解码的内存结构等。

UStore DFx能力增强

  1. 提供在线校验功能:业务运行中对于重要数据以及字段进行校验。
  2. 提供离线校验功能:针对现场问题和数据异常,对于未退出进程利用analyze verify进行校验,获取错误页面信息并输出。
  3. 提供模块校验功能:对于undo/redo/upage/ubtree四个模块,划分fast/skip recovery/complete三个等级,支持按模块提供重点校验分析。
  4. 故障定位信息增强:丰富日志(pg_log)和视图中包含的故障定位信息,主要针对 uheap/undo/ubtree/闪回模块增加视图。
  5. 解决由于Undo空间强制回收所导致的新事务“Snapshot too old”报错问题。

SQL PATCH

SQL-PATCH主要设计给DBA、运维人员及其他需要对SQL进行调优的角色使用,在发现查询语句的执行计划、执行方式达不到预期的场景下,能够在避免直接修改用户业务语句的前提下对查询执行的方式做一定调整,达到预期的效果,同时能够根据具体业务的需求进行灵活调整,包括patch的创建、删除、变更操作。在当前GaussDB实际运维场景下,我们通过unique SQL ID对查询语句(normal-stmt、prepared-stmt)进行定位,并且使用hint对查询性能进行调优。这些对语句执行方式进行调整的场景主要包括:

场景1:通过对语句加hint调整优化器对语句进行查询编译的方式,e.g. hint-index、hint-GUC。

场景2:对查询语句进行plain-text改写,达到一些特殊场景应急、调整的目的。

须知:

分布式形态暂不支持SQL-PATCH。

安全加固

解决安全漏洞:

CVE-2022-31799

CVE-2022-27781

CVE-2022-27782

CVE-2022-1292

CVE-2022-29824

CVE-2022-27774

CVE-2022-27776

CVE-2022-22576

CVE-2022-27775

CVE-2021-3520

表3 V2.0-2.2企业版

时间

需求名称

描述

2022-04

集中式支持Go驱动

  1. Go驱动支持数据库连接,支持ssl加密。
  2. Go驱动支持数据库句柄。
  3. Go驱动支持Stmt。
  4. Go驱动支持数据库事务(Tx)。
  5. Go驱动支持查询结果(Rows和Row)。
  6. Go驱动支持适配列类型(ColumnType)。

存储过程支持SMP

支持存储过程中的查询语句生成SMP并行执行计划并执行。

UStore 加固优化

UStore适配并行创建索引框架。

WDR报告增强

asp能力增强。

WDR能力增强。

运维视图增强

查看磁盘空间占用详细信息:wal诊断pg_ls_waldir(); tmp诊断pg_ls_tmpdir()。

表4 V2.0-2.1企业版

时间

需求名称

描述

2022-02

Ustore商用能力提升

  1. Ustore资源管控优化:undo内存优化,按需加载zone。没有使用ustore场景下,内存底噪和undo文件空间1M以下。
  2. Ustore支持WDR报告。
    1. UHeap页面访问次数(查询、修改、删除、prune等操作)。
    2. undo记录访问次数。
    3. undo链平均访问长度。
    4. undo文件与translot文件下盘速率。
    5. undo文件单位时间生成速率。
    6. undo文件单位时间回收速率。
    7. 查询索引相关信息(层数、页面访问数)。
  3. Ustore闪回:支持Drop、Truncate闪回,支持分区表闪回,并给出闪回查询性能基线。

驱动及语法兼容能力增强

  1. 支持select for update wait n 语法。
  2. Decode类型转换规则兼容O*。
  3. 新增语法需要对接GK Smith(压测工具)。
  4. 正则表达式增强:支持REGEXP_COUNT、REGEXP_INSTR、REGEXP_SUBSTR、REGEXP_REPLACE。
  5. 语法execute direct on执行查询语句支持预编译。
  6. 带条件的插入更新。

数据库在线维护服务不中断

  1. 支持在线索引创建,服务不中断。
  2. 支持在不重启主节点的情况下加入新的备节点。

行列存引擎能力提升

  1. 行存转向量化适配,混合负载时性能提升。在相同资源环境和业务负载情况下,TPC-H性能较“行存引擎+行存执行框架”提升30%;
  2. 列存支持Merge into子查询;

逻辑解码性能及功能优化

  1. 逻辑解码性能优化,DML解码性能达到100M/s(不支持DDL解码)。
  2. 逻辑解码支持解析指定表的DML操作,jdbc提供解析日志接口(沿用现有libpq logical walsender接口,新增参数)。

面向企业级应用场景的性能提升

  1. 并发更新同一条数据,单DN上更新平均时延和时延方差较MySQL数据库无明显劣化。
  2. 大容量场景下,解决tpcc毛刺问题:(ARM 128核512G sas ssd或同等配置规格)单机tpcc 8000仓,2小时性能无明显周期性毛刺;
  3. walwriter优化:高负载下(CPU 不低于60%),性能优化。

企业级能力优化

  1. 支持动态服务器端IP地址和端口,主机名修改。
  2. 客户端驱动可配置主备多个IP,只连主节点,主备切换发生后,libpq实现找主功能。
  3. gsql兼容sqlplus能力增强。
  4. jdbc接口支持大小写。

CLOB/BLOB支持4GB规格

CLOB/BLOB支持4GB规格,小于1G的CLOB/BLOB和现有格式相比性能不劣化。使用约束:大于1GB数据只能通过高级包函数读取和处理、系统函数传入大于1GB数据报错;操作符、字符串函数不支持大于1GB数据;存储过程中buffer最大32k;lob列不支持distinct、group by、order by操作;高级包最大支持4GB数据;lob_write接口不加update不能更新表。

集中式分区表支持指定分区delete和update

集中式分区表支持指定分区(一级分区表指定一级分区,二级分区表指定二级分区)delete和update,性能上等同于非分区表相同数据量delete/update性能,包含点对点删除和批量删除场景。指定分区后计划不能选择全局索引扫描。

支持系统表syscache的全局缓存

降低高并发、复杂查询场景下的内存占用率过高的问题。任意并发负载情况下,GSC/LSC的内存使用总量可控不超过对应GUC指定的上限值,GSC:global_syscache_threshold, LSC:local_syscache_threshold,同时在开启GSC/LSC以后标准benchamark场景(tpcc/sysbench)损耗不超过5%。

模块功能和可靠性加固

  1. 扩容加固:
    1. 重分布自适应锁超时及锁级别优化。
    2. 重分布逃生手段:内核触发业务快速失败。
    3. 重分布支持不同场景,模式动态可配置。
    4. 重分布支持异常残留清理。
    5. 支持断点续传。
  2. 数据可靠性:
    1. 主机从备机修复受损页面或者文件,支持普通行存表main fork数据,unlogged表init fork,clog, csnlog文件受损后执行function修复。文件级别的暂不支持段页式。
    2. 备机从主机修复受损页面或者文件,支持表数据文件,在回放过程中自动修复,文件级别的暂不支持段页式。
    3. 备份过程中校验页面和文件受损时,触发主机从备机修复function,自动修复。
    4. 支持元信息未改变情况下,指定lsn段逻辑解码。
  3. 极致RTO默认打开和适配:
    1. PITR适配。
    2. 极致RTO流控支持可配置,提供回放速度视图。
  4. 通信责任田DFX、质量加固:
    1. pgxc_node和cn/dn-handler数据一致性机制加固。
  5. 支持uuid认证:主备建联的时候引入校验机制,通过dbname字符串生成uuid进行校验。

分布式形态支持PITR

支持集群级分布式PITR。
  1. 备份恢复增强。
  2. 断点恢复。

存储过程增强

  1. 自治事务支持全局变量。
  2. 存储过程增强,exception中支持close cursor;jdbc执行存储过程中,不需要注册in和out的出参。

权限功能增强

细粒度权限及any权限支持,新增支持如下ANY权限及语法:

  • CREATE ANY TABLE
  • ALTER ANY TABLE
  • DROP ANY TABLE
  • SELECT ANY TABLE
  • INSERT ANY TABLE
  • UPDATE ANY TABLE
  • DELETE ANY TABLE
  • CREATE ANY FUNCTION
  • EXECUTE ANY FUNCTION
  • CREATE ANY PACKAGE
  • EXECUTE ANY PACKAGE
  • CREATE ANY TYPE

安全能力优化

  1. 支持审计文件损坏时可以继续查询损坏时间之后的审计日志。
  2. 支持ssl证书的吊销列表出错不影响正常认证。
  3. 审计日志包含事务号,通过事务号实现数据变化与审计操作关联。
  4. OM运维账户密码加密落盘存储整改。

软件组件生命周期匹配产品生命周期

选用较新的下层软件组件(如:开源、第三方件、自研平台等),软件组件生命周期内及时更新下层软件组件以确保生命周期匹配,在产品版本生命周期内可及时修复安全漏洞。

ODBC商用化

  1. 支持分布式负载均衡。
  2. 支持集中式主备切换。

CM企业级能力提升

  1. CMS记录仲裁关键事件日志。
  2. CMS选主去掉ETCD依赖,使用自研DCC组件实现选主能力。
  3. 重构仲裁逻辑,扩展仲裁能力。

性能提升

性能提升,linetitem 1X全表扫描 提升30%,响应时延<1s。

运维监控能力提升

  1. 会话统计中加入归一化SQL处理,用于慢SQL历史信息诊断。
  2. mem trace性能增强,丰富内存问题定位手段。
  3. 支持JDBC到内核全链路trace。
  4. 内核指标采集优化,支持单节点采集和上报。
  5. get_node_disk_and_log_status接口支持集中式。

Paxos企业级能力提升

  1. DCF协议支持防止频繁互切。
  2. 支持Paxos节点机优先级选主配置。

安全加固

解决安全漏洞:

CVE-2022-23308

CVE-2020-28473

CVE-2021-22947

CVE-2021-22946

CVE-2021-22945

CVE-2021-37750

CVE-2021-36222