更新时间:2024-04-22 GMT+08:00
分享

8.1.3.x补丁新增功能及解决问题

8.1.3.325

表1 8.1.3.325新增功能/解决问题列表

类别

功能或问题描述

问题原因

问题出现版本

修复建议

新增功能

  • 新增支持GB18030_2022的字符编码。
  • 支持禁用子查询hint功能。
  • GDS外表兼容utf8非法字符。

-

-

-

解决问题

DN节点重启,日志截断,集群出现hang问题。

stream线程报错打印日志时,响应了cancel信号,再次打印日志会引发hang问题。

8.1.3.320

升级到8.1.3.325。

  • 业务表创建偶现报错:relation “xxx” already exists。
  • 业务偶现报错:could not read block xxx in file "xxx"。

OID使用超过42亿之后重新开始分配,在复用过程中引起业务偶现报错。

8.1.3.323及以下版本

DN备机checkpoint无法成功,导致备机xlog日志无法回收,持续堆积。

DN备机在redo checkpoint时,如果看到有不完整的btree分裂就会报告RM 11问题,实际上可能是btree分裂失败或者处于btree分裂过程中。

8.1.3.323及以下版本

列存表执行轻量化update和后台执行autovacuum并发操作时报错:Unsupported to update different rows with the same cuid and col in light update。

在轻量化update中,不支持使用相同的cuid和col更新不同的行。

8.1.3.323及以下版本

某些场景no_merge的hint操作不生效。

不支持禁用子查询hint功能。

8.1.3.323及以下版本

后台执行长时间查询语句时,通过CTRL + C方式结束语句未等语句彻底退出,又通过CTRL + Z方式退出gsql客户端,会导致语句残留。

CN收到CTRL + C的取消信号后,CN线程处于报错长跳转流程中,此时去调用EmitErrorReport,而EmitErrorReport未响应信号。

8.1.3.323及以下版本

使用大宽表与实时表做关联更新时出现内存占用率太高,影响性能。

使用大宽表与实时表做关联更新,更新时update会将无关列加上,导致执行计划做优化器估算时内存占用率太高,影响性能。

8.1.3.323及以下版本

ShareScan计划中,存放CTE的tuplestore和batchstore的内存不能扩展易产生下盘。

ShareScan执行计划结构体中的cteMaxMem未进行copy、read和write处理,导致DN上在CTE的执行计划上未获取到该值,导致创建的保存CTE结果集的tuplestore和batchstore无法进行内存扩展而下盘。

8.1.3.323及以下版本

执行列存轻量化update报错:could not determine data type of parameter。

在执行计划的Remote query中,创建parame参数为其在基表中的位置,且系统列也匹配不上该参数。

8.1.3.323及以下版本

8.1.3.322

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

类别

功能或问题描述

问题原因

问题出现版本

修复建议

新增功能

early stop功能行为变更:GUC参数enable_limit_stop默认值改为on。

-

-

-

解决问题

-

-

-

8.1.3.320

表3 8.1.3.320新增功能/解决问题列表

类别

功能或问题描述

问题原因

问题出现版本

修复建议

新增功能

truncate、exchange与select并发:

新增GUC参数ddl_select_concurrent_mode,该特性主要解决数据量较大或复杂查询的场景中,查询语句持续时间过长,阻塞DDL的场景,与Oracle效果一致。

支持场景:

  • 支持truncate和select并发;
  • 支持exchange和select并发。

场景约束:

  • 与高级别的锁冲突(大于1级),不支持并发(比如autoanalyze_mode=normal时,同时select触发了autoanalyze);
  • 与事务块中的锁冲突,不支持并发。

DWS常用连接方式约束:

  • jdbc、odbc、python驱动时,如果程序设置了autocommit = false,不支持该特性;
  • Data Studio下发的所有查询语句,自动起事务,不支持该特性。

-

-

-

支持控制LIMIT语句是否启用early stop优化:

新增GUC参数enable_limit_stop,控制LIMIT语句是否启用early stop优化。

-

-

-

解决问题

语句级估算内存超过max_process_memory限制,导致ccn排队。

语句级估算内存超过max_process_memory限制。

8.1.3.310及以下版本

升级到8.1.3.320及以上版本。具体升级策略请参见版本收编策略

执行merge报错:value xxx is out of range for type integer。

pg_toast_get_baseid()函数中使用int接口处理OID。

8.1.3.310及以下版本

查询20万行数据大表的脏页率视图,内存占用大。

查询数据的时候,查询统计信息的内置函数中创建的链表内每个结点上申请了内存空间用于存放tupStatus,查询结束后,仅释放了链表上结点的内存,结点内申请的内存未释放。

8.1.1.x版本

Vacuum执行超时被查杀后,部分DN出现线程残留,无法响应信号,阻塞其他语句执行。

由于btvacuumscan中未响应信号,导致Vacuum执行超时被查杀后,部分dn出现线程残留,无法响应信号。

8.1.1.x版本

对MySQL兼容库中的分区表、时序表执行analyze百分比采样操作时报错:unsupported feature with temporary/unlogged table for partitioned table。

由于8.1.3版本中为了兼容MySQL中CREATE TABLE LIKE语法,默认继承模式为INCLUDING ALL,且执行analyze百分比采样时,含有自动创建临时复制表命令,导致analyze时出现报错。

8.1.3.310及以下版本

冷热表的select查询语句触发runtime autoanalyze,性能慢。

执行truncate parition,exchange partition,drop partition,alter distribute,alter column type这五种操作后,再执行select该表会触发autoanalyze。

8.1.3.310及以下版本

pg_session_wlmstat中elapsed_time与TOP SQL实际执行的时间不一致。

查询pg_session_wlmstat视图,语句处于RUNNING状态时elapsed_time过大。

8.0.x

给外表执行grant select权限时报错:has no distribute type。

obs dfs server只写外表没有指定默认的分布方式导致报错。

8.1.3.310及以下版本

分享:

    相关文档

    相关产品