多主集群(Limitless) 8.0.2版本发布日志

本文将详细介绍PolarDB MySQL多主集群(Limitless)8.0.2版本的更新日志和全部的功能特性。

2025

8.0.2.0.4

类别

说明

发布时间

新增功能和性能优化

  • Serverless功能只读节点(RO)新增parse buf(解析日志内存块)无用内存回收功能,可降低部分内存使用率。

  • 新增支持DML语句并行查询功能。通过将复杂的DML操作分解为多个并行任务,提升整体性能。

  • 新增Pruner统计指标,可在INFORMATION_SCHEMA.IMCI_SQL_PROFILING视图中获取TableScan算子的数据块剪枝(Pruning)情况。

  • 新增OnlineDDL方式来修改高压缩引擎(X-Engine)引擎的自增列值,不阻塞DML操作。

  • 新增参数adaptive_digest_length_multiplier,实现根据SQL文本长度动态调整Digest预分配内存大小的功能。

  • 新增列存索引(IMCI)Hybrid Plan功能的扩展,使其支持未显式定义主键的表。

  • 优化列存索引(IMCI)查询在IN-List时,提高查询性能。

  • 列存索引(IMCI)Hybrid PlanIndex Join新增对Semi JoinAnti Semi Join模式的支持。

  • 优化混合优化器中IMCI统计信息后台抓取线程的稳定性问题。该问题会导致在涉及虚拟列(Virtual Column)的表操作时出现概率性崩溃问题。

  • 优化Orca(兼容Redis协议)支持HASH数据类型按照field维度设置TTL过期时间。

2025-04-28

问题修复

  • 修复不支持的自定义函数会被自适应分流到列存导致查询报错的问题。

  • 修复列存索引(IMCI)多机共享架构下偶发的ImciFollower内存数据块堆积的问题。

  • 修复列存节点快照功能,避免长时间锁等待而导致的偶发监控卡顿问题。

  • 修复在查询中包含IS NULL条件时,并行查询可能返回错误结果的问题。

  • 修复在有大量字段的表上进行秒级修改字段操作时存在的内存访问越界问题。

  • 修复有序索引的自适应选择功能在特定类型查询场景下可能导致集群崩溃的问题。

  • 修复分区表中分区数据归档时,受并发线程影响导致的死锁问题。

  • 修复SQL语句持有表级MDL(元数据锁)但未持有分区级MDL锁的情况下,出现执行DROP PARTITION语句删除分区,可能导致SQL访问崩溃的问题。

  • 修复DDL操作后,列存节点偶发访问到DDL前缓存数据的问题。

  • 修复高压缩引擎(X-Engine)Index_merge路径在处理过程中未能正确获取Instant_ddl元数据,导致数据查询出现异常。

  • 修复String类型和向量类型转换问题,允许多种空白字符的使用。

  • 修复对存在虚拟列表执行ONLINE DDL时偶发的ROW LOG读写越界问题。

  • 修复开启异步执行功能时,动态修改thread_pool_size参数可能导致数据库崩溃的问题。

  • 修复列存索引(IMCI)混合物化Mixoutput读取timestamp类型数据未做时区转化的问题。

8.0.2.0.3

类别

说明

发布时间

新增功能和性能优化

  • 索引命中次数的统计。在information_schema中可以查看每个表的每个索引的命中次数。

  • 新增支持通过HintView定义内的语句进行执行计划干预。

  • 新增Range-prefix Skip Scan机制,扩展Skip Scan适用范围,优化复杂查询的执行效率。

  • 新增窗口函数支持frame语句,目前支持当前Rows frame和默认的Range frame场景。

  • 新增FORCE STORAGE OSS选项,支持在删除冷数据操作时,同步删除OSS上的数据。

  • 新增参数oss_orc_read_buffer_size,支持动态配置ORCReader的读缓存大小。

  • 新增参数innodb_ttl_finished_job_expired_days,用于控制清理ttl_job_history表内过期的数据。

  • 数据清理(TTL)功能新增与TiDB等其他产品的兼容性,新增支持TTL = 'b' + INTERVAL 3 MONTH;语法。

  • 新增一个用于动态控制自适应行列分流的代价阈值参数,与代价分流阈值相区分。

  • 优化全局一致性(高性能模式)相关变量的设置从系统级别调整为Connection级别,支持在数据库代理中配置是否开启。

  • 优化高并发下使用max_execution_time功能时,数据库性能变差的问题。

  • 优化列存索引(IMCI)中,Hash Groupby的实现机制,实现根据数据分布特征自适应选择分区策略与算法提升查询性能。

  • 优化列存索引(IMCI)在处理复杂INEXISTS子查询时的性能,同时改进了优化器对子查询的处理逻辑,从而显著提升了查询效率与执行性能。

  • 优化8.0.2版本多主集群(Limitless)支持Partition Redo和异步Redo机制,有效提升了游戏场景下的系统吞吐量,从而更好地满足高并发需求。

  • 优化Orca在处理RedisSCAN命令附带COUNT选项时的逻辑,确保返回元素个数的准确性和一致性。

2025-03-28

问题修复

  • 修复列存索引(IMCI)Serverless集群在主节点规格比较大时无法缩容问题。

  • 修复列存索引(IMCI)在处理带有ROLLUP的查询时,无法通过开关(imci_implicit_orderby_rollup)控制对查询结果进行排序的问题。

  • 修复SQL中的关联子查询时包含LIMIT 1时,查询不能在列存索引(IMCI)上执行的问题。

  • 修复多主集群备节点在节点前切换数据库或对象访问点时可能会出现崩溃的问题。

  • 修复多主集群有全局只读节点情况下,新增读写节点导致新节点启动失败的问题。

  • 修复创建在Virtual Column(虚拟列)上的二级索引可能出现的索引损坏问题。

  • 修复SQL查询包含GROUP BY + WITH ROLLUP子句,且GROUP BY列引用derived table(派生表)中的列时,如果该 derived table 被优化器展开(flatten),可能会导致数据库进程崩溃的问题。

  • 修复动态关闭innodb_polar_log_rdma_transfer参数后无法动态修改innodb_log_buffer_size的问题。

  • 修复库表恢复功能和文件空间扩展loose_innodb_initialize_in_space_extend参数控制值不能填写0导致功能无法兼容问题。

  • 修复当存储的数据块中所有的数据都相同时,查询有可能触发异常的问题。

  • 修复库表恢复源表存在列存索引可能导致的任务中断的问题。

  • 修复只读节点未同步gtid_purged变量导致查询结果为空值的问题。

  • 修复在使用TempTable引擎时,CTE(公共表达式)在多个引用场景下可能导致系统崩溃的问题。

  • 修复列存索引(IMCI)中的使用Hybrid Plan加速宽表查询Index Join机制中新增了对Semi JoinAnti Semi Join模式的支持,进一步扩展了查询优化能力,提升了复杂查询场景的执行效率。

  • 修复使用空间扩展不填0特性可能导致的库表恢复任务流程中断问题。

8.0.2.0.2

类别

说明

发布时间

新增功能和性能优化

  • 新增列统计信息的自动采集功能,及时更新统计信息。

  • 新增异步执行能力,支持异步锁等待以及异步日志刷盘等待逻辑。

  • 新增对RANGE分区表分达式的支持,引入了函数cast_for_range(),该函数可将double类型数据转换为int类型,实现对double类型分区键字段支持。

  • 优化分区代价模型,针对不包含分区键的索引上的等值查询和IN条件查询,在代价估算中引入了分区数因子,提升代价估算的准确性。

  • 新增数据清理(TTL)功能支持设置过期时间,超过过期时间数据自动过期。

  • 新增参数ccl_check_with_super_user设置为OFF时,超级用户执行匹配CCL规则的语句时系统将生成警告信息(WARNING)。

  • 新增支持REORGANIZE PARTITION和 LIST DEFAULT HASH分区合并LIST分区至HASH分区,拆分VALUE到新的LIST分区。

  • 新增支持在全球数据库(GDN)场景下从集群添加只读列存节点。

  • 高压缩引擎(X-Engine)新增支持大宽表功能,支持表的最大列数至为10000列。

  • 新增使用IMCI加速向量检索查询的特性。

  • 新增支持table value constructor语法,DML语句中可使用VALUES ROW语法。

  • 新增DISTANCE表达式,支持计算余弦相似度、点积相似度和欧式距离。

  • 新增非索引列统计信息的采集和使用,以及统一扩展统计信息的管理方式。

  • Orca新增全面的连接监控指标,包括总连接数、当前活跃连接数以及当前请求数。

  • 新增列存索引(IMCI)查询优先级调度功能,允许列存查询分配优先级,优化查询执行效率。

  • 新增explain analyze语句对Outline的调用支持,使其功能与explain语句一致,提升查询优化能力。

  • Outline中新增支持分表场景的功能,单条Outline可以匹配所有具有相同模板的语句,适用于不同的分表。

  • 新增对以下GIS相关函数的支持:ST_HAUSDORFFDISTANCEST_FRECHETDISTANCEST_LineInterpolatePointsST_LineInterpolatePointST_PointAtDistanceST_UnionST_DifferenceST_BufferST_CollectST_SymdifferenceST_Intersection,丰富了GIS功能支持。

  • 新增Orca(兼容Redis协议)支持DUMP、RESTORE、INFO命令,支持作为DTS目标端导入数据。

  • 优化列存只读节点的启动速度,支持列存引擎从列存快照位点独立启动。

  • 优化多主集群(Limitless)支持Partition Redo和异步Redo机制,有效提升了游戏场景下的系统吞吐量,从而更好地满足高并发需求。

  • 优化在IMCI中增强了对SELECT DISTINCT ...语句的支持,允许存在non-full-groupby的情况,从而提高了与更多场景的兼容性,优化了查询的灵活性和适用性。

  • 优化算法选择逻辑,支持部分关联子查询使用高效HASH JOIN执行查询。

  • 优化列存节点在海量表场景下的启动时间。

  • 优化高压缩引擎(X-Engine)存储引擎的DDL场景,系统将自动开启X-Engine的预提交功能。

  • 优化Orca(兼容Redis协议)功能,支持在RedisAUTHHELLO命令中通过username:password语法指定用户名和密码。

  • 优化Orca(兼容Redis协议)中对有序集合(Sorted Set)数据类型的锁粒度进行了调整,仅对二级索引使用标志位进行锁判断。

  • 优化逻辑预读的线程启动和销毁代码,简化内存检查逻辑。

  • 优化Orca(兼容Redis协议)事务模型支持,包括WATCH、UNWATCH、MULTI、EXECDISCARD命令。

  • 优化Orca(兼容Redis协议)网络Pink组件的信号传递。

2025-02-11

问题修复

  • 修复列存索引(IMCI)中运行中关闭Hybrid Plan时可能导致崩溃的问题。

  • 修复在开启集群非阻塞DDL时,小概率出现的因终止DDL对应连接而导致语句无法正常退出的问题。

  • 修复Orca网络框架在连接超时或主动关闭时可能存在的套接字泄漏问题。

  • 修复DLM分区归档流程,在最后阶段将原本申请的表级MDL(元数据锁)调整为分区级MDL,减少了锁粒度,提升了系统并发性能和分区归档效率。

  • 修复物化表裁剪功能与WITH ROLLUP特性共存时的潜在崩溃问题。

  • 修复在大事务执行过程中列存节点集群重启时,崩溃恢复过程中可能出现的列索引数据冗余问题。

  • 修复多主集群下访问统计信息表一定概率会导致集群崩溃的问题。

  • 修复数据清理(TTL)功能的语法问题,将TTL调整为非保留关键字,以确保与社区的兼容性。

  • 修复列存索引(IMCI)内存弹性的一系列问题提升内存利用效率以及集群的稳定性。

  • 修复XENGINE分区在执行optimize操作时需重建表的问题,优化了操作流程,显著提升了优化效率和系统运行效率。

  • 修复在并行查询场景下,当带有排序的物化表被合并到外层查询时,可能导致集群崩溃的问题。

  • 修复CREATE TABLE AS SELECT语句创建临时表时集群奔溃问题。

  • 修复因未使用区分大小写的字符串比较函数而导致带name过滤条件的IMCI I_S(Information_Schema库下IMCI相关视图)查询结果不完整的问题。

  • 修复通过列存索引(IMCI)读取JSONGIS大字段时可能出现偶发数据读取失败的问题。

  • 修复IMCI查询中常量范围过滤(const between field1 and field2)场景下的索引选择错误问题。

  • 修复高压缩引擎(X-Engine)引擎做DDL变更后,旧表空间回收泄露问题。

  • 修复多主集群场景列存索引Online DDL过程未适配LLSN(Logical Log Sequence Number)逻辑导致漏回放列存Redo日志的问题。

  • 修复开启win magic开关后,由于base_ref_items空间不足导致的子查询改写溢出,从而引发进程崩溃的问题。

  • 修复元数据恢复阶段MDL锁获取失败导致列存索引数据无法恢复的问题。

  • 修复列存索引(IMCI)分区表查询期间,执行explain for connection语句导致的崩溃问题。

  • 修复子查询嵌套中使用IN关键字合并时导致结果集不正确。

  • 修复高压缩引擎(X-Engine)只读节点重启时非预期清理数据块元信息问题。

  • 修复连接数超过65536MDL锁系统可能出现异常的问题。

  • 修复参数并行查询相关参数pq_enable_xengine_mpp设置OFF后没有生效的问题。

  • 修复分区表Autoinc偶发性发生回退的问题,会导致INSERT出现重复键(Duplicate key)错误。

  • 修复设置flagset类型变量如(optimizer_switch)时,存在重复项将不再报错的问题。

  • 修复开放Session级别的binlog_rows_query_log_events权限,支持使用DMS执行SQL备份与回滚。

  • 修复INLISTJOIN结果集时,当INLISTVALUES里面有空值的情况下,会导致表达式求值错误。

  • 修复Orca(兼容Redis协议)功能中BITOPZRANGEBYLEXZRANGEBYSCOREZREVRANGEBYSCOREZREVRANGEBYLEX的返回结果与Redis官方不一致的问题。

  • 修复在计划中使用HASH JOIN时,可能导致并行查询结果错误的问题。

  • 修复在查询中存在Lateral Derived Tables (LDT) 时可能导致结果错误的问题。

  • 修复涉及SUBSTRING_INDEX表达式在处理GROUP_CONCAT输出空字符串且分隔符长度大于1时,可能导致进程崩溃的情况。

  • 修复同时使用ALTER TABLE DROP语句删除多个全文索引(FTS)时可能导致元信息残留的问题。

  • 修复DDL变更VECTOR类型的维度时未做数据校验的问题。

  • 修复CAST(REGEXP_SUBSTR(...)) AS DECIMAL语句导致进程崩溃的问题。

  • 修复在发生RO节点切换为RW节点后,执行INSERT ... ON DUPLICATE KEY UPDATE语句导致表Autoinc回退问题。

  • 修复multi-value indexMRR中被选中时可能导致集群崩溃的问题。

  • 修复部分查询中,未充分利用唯一索引进行加速的问题。

  • 修复在支持在线分区维护(MDL)后,在极端场景下对含有Autoinc的表进行DML操作时引发集群崩溃的问题。

  • 修复使用分区MDL时,小概率场景下主键索引上出现重复数据的问题。

  • 修复小版本升级时,从不支持向量检索的版本升级至支持向量检索的版本,导致数据字典出现不一致的问题。

  • 修复IMCI Serverless与内部内存弹性兼容性、扩缩容异常等问题。

  • 修复自适应执行中对于特定类型的Query不能正确路由的问题。

  • 修复冷数据场景下,归档为CSV格式后,RO节点元数据缓存没有更新的问题。

  • 修复在对包含BLOB字段的表进行DDL操作时,由于内存问题导致集群崩溃的情况。

  • 修复Orca(兼容Redis协议)在执行部分管理命令时(如 ORCA_OPTIMIZEAUTHACL命令)无需锁定数据库的问题。

  • 修复在执行包含BLOB数据的查询时,使用并行查询可能导致结果错误。

  • 修复重建列存索引(IMCI)不支持Online重建导致列存索引可用性问题。