数据仓库服务 GAUSSDB(DWS)-8.2.1.x补丁新增功能及解决问题:8.2.1.220

时间:2024-06-26 08:27:15

8.2.1.220

表2 8.2.1.220新增功能/解决问题列表

类别

功能或问题描述

问题原因

问题出现版本

修复建议

新增功能

  • MERGE INTO支持指定分区。
  • 支持plan management。
  • GDS导出外表支持容错参数compatible_illegal_chars。
  • 窗口函数last_value 支持ignore nulls功能。

-

-

-

解决问题

SQL执行性能不稳定,查询很慢,查询pgxc_thread_wait_status状态长时间是HashJoin - nestloop。

执行nestloop时每组partition行数有近10000,由于数据都不一样,但是仍继续执行nestloop。

8.1.3.300

升级到8.2.1.220版本。

数据库下有大量对象,普通用户查询该数据下的对象时,出现性能慢,且占用大量内存。

性能慢主要因为:列存模式下,有大量的internal_mask选项的表,导致权限校验函数被无效调用;列权限校验耗时长,导致计算量大。

8.2.1.119以前版本

表达式过多的场景,LLVM编译时间长导致CPU高。

启用LLVM时,在表达式过多的场景下,执行需要几个小时,关闭LLVM后只需十几分钟。当表达式个数多于1000时,会产生编译时间指数级递增的问题。

8.1.3.320

业务查询游标每次fetch2000笔数据,每次获取都比上次估算内存大了24MB,总数据量2000W条,查询无法执行。

PBE场景会复用之前生成的计划,导致估算内存每次递增一个固定值,估算内存不断膨胀导致CCN排队。

8.1.3.323

JSON类型查询内存泄露,导致重分布占用大量内存。

在jsonb的out函数中存在内存未释放问题,数据量大时出现堆积造成使用内存高。

8.1.3.x

执行客户业务sql,只要执行select * from with子句就会出现CN core。

ProjectionPushdown更新了rte,但是未基于新的rte更新var,导致后面处理quals的时候core。

8.1.3.323

DELETE语句WHERE条件数超过上限导致溢出。

DELETE语句WHERE条件数超过int16上限(32767)导致溢出,越界产生core。

8.1.2.x

扩容时重新拉起重分布进程,生成表清单的时候,卡住1小时以上。

生成表清单语句是查询系统表后插入pgxc_redistb,pgxc_redistb是分布式表,查询系统表都是在CN上执行,再插入分布式表时每条记录都要执行一个INSERT INTO ... VALUES语句,如果表数量非常大会非常耗时。

8.1.3.110

主键冲突事务回滚导致CN内存泄漏。

  1. JDBC中使用PBE协议插入数据走CN轻量化,因主键冲突等原因执行报错。
  2. 一个事务内包含多个交叉CN轻量化查询,或者JDBC发送的unnamed statement,执行前会将全局的LightProxy对象保存到Portal上,事务结束场景LightProxy对象未释放造成内存堆积。
  3. 表现为CN的pv_session_memory_detail视图中查询到大量CachedPlanQuery内存上下文。

8.2.0.103

count distinct和union all场景下,实际使用内存大量超过估算内存。

多分支串行执行场景只考虑了下层算子返回数据时的内存,未考虑下层算子实际执行过程中的内存,导致内存估算偏小。

8.1.3.321

重启集群后,只有首次使用SQL调试的会话连接可以正常进行SQL调试,其他会话连接无法正常调试。DataStudio调试SQL打断点不生效。

调度入口变量在与数据库断开连接后会被释放,后续为空指针,无法进入调试逻辑。

  • 8.1.1.x
  • 8.1.3.x

with recursive语句长时间运行未结束。

ARM环境下线程信息同步问题,导致变量更新不同步。

8.1.3.323

执行INSERT OVERWRITE指定分区,会覆盖全表。

PBE逻辑中拷贝计划信息时,没有拷贝INSERT OVERWRITE中的分区信息,导致最终对全表进行了FILENODE交换。

8.2.1.220以前版本

包含windowagg的子查询结果集异常。

生成bloomfilter过程中,没有考虑windowsagg,在join关联列非windowsagg分组列的场景下会减少分组数据,进而对窗口函数该分组的结果产生影响。

8.1.3.x

业务出现大量内存不足报错,视图显示占用内存高的SQL均为VACUUM FULL操作。

分区表在对每个分区分别进行VACUUM FULL时,漏掉了一部分内存的释放操作,导致内存不断累加和膨胀,直至报错。

8.1.3.x

逻辑集群执行重启超时。

CM内部默认使用了10个ip,需要动态适配。

8.2.1.200

更新版本后出现大量Wait poll time out错误。

LibcommCheckWaitPoll函数在传入-1时行为与预期不一致。

8.2.1.200

support.huaweicloud.com/bulletin-dws/dws_12_0016.html