tencent cloud

TDSQL Boundless

产品动态
产品简介
产品概述
应用场景
产品架构
实例类型
兼容性说明
自研内核
内核概述
内核版本更新动态
功能类特性
性能类特性
产品计费
计费概述
购买方式
价格详情
续费说明
欠费说明
退费说明
快速入门
创建实例
连接实例
用户指南
数据迁移
数据同步/订阅
实例管理
配置变更
参数配置
账号管理
安全组
备份与恢复
数据库审计
标签管理
实践教程
Online DDL 的技术演进与使用实践
锁机制解析与问题排查实践
数据智能调度及相关性能优化实践
TDSQL Boundless 选型指南与实践教程
开发指南
开发指南(MySQL 兼容模式)
开发指南(HBase 兼容模式)
性能调优
性能调优概述
SQL 调优
DDL 调优
性能白皮书
性能概述
TPC-C 测试
Sysbench 测试
API 文档
History
Introduction
API Category
Making API Requests
Instance APIs
Security Group APIs
Task APIs
Backup APIs
Rollback APIs
Parameter APIs
Database APIs
Data Types
Error Codes
通用参考
系统原理
SQL 参考
数据库参数说明
TPC-H 基准测试数据模型参考
错误码信息
安全与合规
常见问题
服务协议
服务等级协议
服务条款
隐私政策
数据处理和安全协议
联系我们
词汇表

V21.2.x

PDF
聚焦模式
字号
最后更新时间: 2026-03-26 15:14:22

V21.2.4

版本更新说明

运维

新增内存监控触发时打印协程栈信息
为辅助诊断因内存使用过高或疑似死锁导致的问题,本次新增功能在 Agent 内存监控达到阈值并打印堆内存(heap)信息时,同步打印一份当前所有 Goroutine 的栈信息。这有助于开发人员分析是否存在因协程阻塞或死锁导致的内存泄漏或心跳堆积等问题,提升问题定位效率。
SST 文件监控能力增强
新增查询过小 SST 文件数量的方法,支持展示指定层的小 SST 文件数量和总 SST 文件数量。小 SST 文件的判定标准参考 RocksDB 的 compaction_merge_small_file_trigger_ratio 配置,便于运维人员监控和优化存储层性能。
慢日志存储路径优化
将慢日志默认路径从数据盘迁移至日志盘。解决 Bulk Load 等大数据导入场景下慢日志堆积占用数据盘空间,导致 MC 对磁盘占用量判断不准、表分布看起来不均匀的问题。
并行查询错误信息增强
增强 SQL 并行执行失败时的错误信息,补充必要的错误节点信息。解决多节点实例中并行查询失败时仅显示"read data from remote node error"而无法定位具体问题节点的问题,提升问题排查效率。
DDL 监控指标增强
新增 Ddl_count(执行的 DDL 个数)和 Ddl_failed_count(失败的 DDL 个数)两个监控指标,支持计算 DDL 失败率告警,便于及时发现和处理 DDL 执行异常。
归档任务清理策略优化
优化 MC 归档任务清理策略,将保留天数和保留条目设置为两个独立的阈值。解决归档任务过多导致 Range 请求耗时高的问题,提升 MC 运行效率。
参数模板动态读取能力
支持前端参数模板动态读取实际内核的参数默认值和取值范围。解决前端展示的参数默认值和 Range 与实际内核不匹配的问题,避免用户误以为参数被修改,提升用户体验。
transaction_isolation 参数暴露
在 TDStore 参数配置的数据库参数中增加 transaction_isolation 字段,支持用户通过控制台配置事务隔离级别,满足客户对参数可视化管理的需求。

数据库管理

优化 mc-ctl 命令行工具,提升易用性
本次更新对 mc-ctl 命令行工具进行了多项优化:1) 新增 cluster gv delete-single 命令,用于删除单个全局变量,语法更直观;2) 新增 cluster gv-old getcluster gv-old delete-single 命令,以支持对旧格式(JSON)全局变量的查询和删除操作;3) 新增 show node_role 命令,方便用户查看节点角色的枚举值。
副本类型变配能力
支持现网存量实例从全部全功能副本变配为全功能副本与日志副本的混合部署模式,满足不同业务场景下的副本配置需求,优化资源利用率。

扩展性与性能

优化大分区表 DDL 执行路径,减少跨节点 RPC
针对分区数量庞大的分区表执行 DDL(如 CREATE/DROP TABLE)或执行 DROP DATABASE 时,每个分区都需要与数据字典(DD)交互,若执行节点与系统副本组(sys rg)Leader 不在同一节点,会产生大量跨节点 RPC 调用。本次优化将此类 DDL 语句的转发逻辑,使其优先在 sys rg Leader 所在的节点执行,从而大幅减少网络开销,提升 DDL 执行效率。
批量 DELETE/UPDATE 性能优化
默认开启 tdsql_stmt_optim_batch_deletetdsql_stmt_optim_batch_update 参数,启用批量删除和更新语句的优化能力,提升大批量数据变更操作的执行效率。
分区表元数据内存优化
优化分区表场景下 Table Cache 的内存开销。共享分区之间的相关结构,延迟内存分配,显著降低大规模分区表场景的内存占用。
分裂场景慢查询优化
优化事务执行期间发生 RG 分裂时的处理逻辑。当协调者收到参与者返回 EC_TDS_TRANS_PREPARE_NEED_MORE_PART 后,立刻给已 Ready 的参与者发送 Prepare 请求刷新参与者列表,避免等待下一轮重试(默认1秒)导致的慢查询。
切主场景慢查询优化
优化 RG 切主场景下 SQLEngine 感知新 Leader 的速度。修复 Lease::CheckLease 函数在 RG 状态不可写时返回错误码不准确的问题,确保返回 EC_TDS_TRANS_REP_GROUP_NOT_LEADER 并携带 recommended_retry_connection,使 SQLEngine 能及时发现新 Leader,避免2秒以上的路由延迟。
合并场景慢查询优化
优化 TPCC 与 RG 合并并发场景下的死锁问题。当 HandleBlockParticipantPrepareForMergeTrans 无法获取参与者锁时,主动中断锁等待,避免因锁等待超时(默认50秒)导致的慢查询。
Proxy Executor 内存优化
优化 Proxy Executor 的内存释放机制。在 OnConnClose 时启动后台协程立即执行释放动作,而非依赖后台线程定期清理,避免短链接高并发场景下因内存延迟释放导致的 OOM 风险。
单行 INSERT 批量优化
优化单行数据插入场景的性能。当数据和多个索引位于同一节点时,使用 Batch Insert 将数据和索引的写入合并为一次 RPC 调用,减少网络开销。
Compaction 压缩算法优化
优化 Compaction 输出 SST 文件的压缩算法选取策略。不仅考虑目标层的压缩算法设置,还考虑输入 SST 文件的压缩算法,确保输出的压缩级别不低于输入。解决 RG 迁移时 ZSTD 压缩的 SST 被 Ingest 到 L0/L1 层后因 Compaction 退化为无压缩导致的空间膨胀问题。
L0 层写入控制优化
为 L0 层数据量增加 Soft/Hard Limit 参数控制缓写停写行为。解决 estimated_pending_compaction_bytes 估算偏大导致的误缓写问题,同时通过 L0 层大小限制控制 L0 到 L1 层 Compaction 所需的额外磁盘空间,提升写入性能稳定性。
大内存实例参数自适应
根据实例内存大小动态设置 tdstore_data_db_table_cache_numshardbitstdstore_block_cache_num_shard_bits 参数。Block Cache 大小在64GB以下设置为6,64-128GB设置为7,128-256GB设置为8,256-512GB设置为9,512GB以上设置为10,优化大内存实例的缓存性能。
INSERT ON DUPLICATE KEY UPDATE 性能优化
优化扩展语法 INSERT INTO... AS new ON DUPLICATE KEY UPDATE 的写入性能。解决该语法相比 REPLACE INTO 性能差距较大的问题,支持 Batch 优化提升批量写入效率。
强制 BKA 优化开关
optimizer_switch 中开启 force_batched_key_access 开关,默认启用强制批量键访问(BKA)连接优化,提升多表 Join 查询的性能。测试时关注:多表连接、不同 Join 类型组合、join_buffer_size 调整、相关优化器开关组合及 Parallel Hint。
I_S 系统视图自动 Proxy 转发
Information_Schema 系统视图查询自动使用 Proxy 转发至 System RG 节点执行。由于 I_S 视图基本都是多表 NLJ 查询,转发到 System RG 所在节点执行更高效,减少跨节点 RPC 调用。
优化 Region 分裂/合并过程中 Write Fence 的处理效率
针对在 Region 数量较多或 Write Fence 操作频繁的场景下,Region 分裂和合并操作中处理 Write Fence 耗时过长的问题进行了优化。通过改进内部处理逻辑,减少了相关操作的延迟,提升了数据分片动态调整(分裂/合并)的执行效率,从而增强了集群在面对数据增长和负载变化时的弹性与响应速度。
默认关闭优化器选项 skip_scan 以避免潜在负优化
根据现网实践和 POC 测试反馈,优化器选项 skip_scan 在 TDSQL Boundless 的某些查询场景中可能导致性能下降(负优化)。默认将此优化器开关关闭。

稳定性

升级兼容性增强
修复 Sys_var_flagset 类型参数(如 parallel_query_switchoptimizer_switch)在版本升级前后不兼容导致节点无法启动的问题。在配置文件读取路径中增加与 SET 语句路径相同的容错处理,确保升级过程平滑。
MC 关键 RPC 限流优化
MC 限流机制默认对 SQLEngine 和 TDStore 的心跳等关键 RPC 放开不做限制,确保 NodeHeartbeatEngineHeartbeat 在高负载场景下不受限流影响,提升系统稳定性。
MC 模块化运行能力
支持 MC 在极端故障场景下只运行指定的工作模块。可通过配置文件指定禁止或允许启动的模块/协程,支持运行时暂停和恢复指定协程,确保时间戳服务等关键功能在故障时仍可独立恢复。
MC 集群管理能力增强
优化克隆实例时 History Job 拉取逻辑,避免从 ETCD 一次性加载过多 Job 导致 MC OOM。采用分批加载策略,提前过滤不需要的 Job,并将部分字段置空以减少内存占用,提升大规模 Job 场景下的稳定性。
RG 重启重试策略优化
优化 Error RG 重启逻辑,将固定次数重试改为指数退避重试,并持续重试直到启动成功。解决磁盘满场景下因元数据写失败超过重试次数后副本启动失败的问题,增强系统自愈能力。

语法与功能

并行查询权限继承优化
并行查询执行的 Worker 线程继承 SKIP_DD_ACCESS_CHECK 权限,确保并行执行时能正确访问数据字典,避免权限检查导致的执行失败。
非阻塞 DDL 与抢占式 DDL
实现非阻塞 DDL(Nonblock DDL)和抢占式 DDL(Preemptive DDL)功能。非阻塞 DDL 在无法获取 MDL-X 锁时仍允许新事务进入目标表;抢占式 DDL 可主动终止持有 S 锁的长事务。通过 Session 变量控制,提升 DDL 执行的灵活性和成功率。
锁视图可读性增强
增强 TDStore data_locks 系统视图的可读性。在视图中增加数据库名和表名。
Online Copy Table 并行校验
Online Copy Table 校验新旧表数据行数一致性时适配并行查询(PQ)逻辑下的 SELECT COUNT 操作,提升大表 DDL 操作的校验效率。

数据迁移

TiDB 迁移 TDSQL Boundless 工具
基于 BR 备份文件实现 TiDB 一键迁移至 TDSQL Boundless 的工具。支持将 TiDB BR 备份文件转换为 SQL/CSV 格式,通过 Bulk Load 导入 TDSQL Boundless 集群。已验证 TiDB v6.1.7v6.5.12v7.1.5v7.5.3v8.1.1v8.5.0 等版本。

备份恢复

增强物理机集群备份恢复的 COS 访问稳定性
为物理机(增强型本地盘)集群的备份恢复(TDBR)功能增加了通过北极星(Polaris)服务发现组件访问 COS 对象存储的能力。该方案替代了原有的内部域名访问方式,能够智能地负载均衡 COS 服务请求,避免在流量高峰时将压力集中到少数 COS 节点,从而显著提升在 IDC 环境下进行大规模备份和恢复操作的网络稳定性与成功率。

已修复问题

修复了在使用 SUBPARTITION BY KEY 的分区表中,当 GROUP BY 子句的列与索引分组列不完全匹配时,查询优化器错误地将 GROUP BY 操作完全下推到存储层的问题。这可能导致返回错误的分组聚合结果。
修复了行存引擎中因 Jemalloc 内存分配器默认参数配置(如未开启 background_thread)导致的偶发性查询抖动问题。在特定内存分配场景下,Jemalloc 内部调用 madvise 系统调用可能耗时超过1秒,导致点查、点更新等简单操作出现严重延迟。
分区表持久化(Persist)全表统计信息时,可能只汇总计算了部分分区的统计信息
修复了 TDStore 在特定并发场景下(如 Split 操作失败后的回滚流程),因悲观锁管理器(TDRequestPessimisticTransLockManager)内部链表访问未加锁导致的竞态条件。该问题会引起空指针解引用,最终导致节点崩溃(Core)。
修复了在索引数量庞大的场景下,频繁访问的热表其 Range 统计信息(range stats)因缓存容量限制被频繁淘汰和重新加载,导致性能损失的问题。本次修复新增了通过参数指定热表列表的功能,在使用 FIFO 淘汰策略时,这些表的索引对应的 Range 统计信息将被"钉住"(pin),避免被常规淘汰机制移除。
修复了原容量均衡触发阈值(relaxed-usage-diff-ratiostrict-usage-diff-ratio)设置过小的问题。在磁盘容量较小的节点上,此问题容易触发不必要的均衡调度,破坏 Hash/Key 分区表的默认数据分布,进而影响查询性能。
修复了分区表在执行 Batched Key Access (BKA) Join 时,内表数据读取路径中一个冗余的 get_record 操作。此多余操作导致了不必要的性能开销。
修复了调用 ScatterPartition 接口进行分区打散时效果不符合预期的两个问题:1) 打散逻辑基于 Primary 副本组(RG)进行,但在 21.2.3 版本中未正确处理 Log-Only 节点(其上不存在 Primary RG),导致打散不完整;2) 分区索引需要与对应数据分区放置在一起的约束在实现上存在缺陷,导致打散结果不满足预期分布。
修复单表聚合查询走错索引的问题。当查询已经使用覆盖索引时,优化器不再错误地切换到排序索引,避免因二级索引回表导致查询变慢。
equal 条件落入到单个 range 内,并且存在数据倾斜时,线性估计可能会导致估计行数偏小
range 估计行数时,相同索引前缀的不同索引估计行数偏差较大
修复快照恢复过程中重试 Job 在 HistoryJobList 中冗余的问题。重试 Job 对应的原 Job 已在历史列表中,需过滤掉重试 Job 避免冗余,防止 TDBR 后续动作失败。
修复 Bulk Load 分裂任务状态判断问题。当一个 RG 中有多个表进行 Bulk Load 导入时,某张表结束后 MC 不再提前放开该 RG 的任务调度,需等待所有表导入完成后再解除禁止调度。
修复 BatchPut RPC 遇到锁超时执行失败时客户端未返回错误信息的问题。
修复 MC 均衡调度过度迁移的问题。当 Destroy Replica 任务完成后,MC 需等待该节点收到新心跳后,才可将其作为迁移的 Src 节点,避免因心跳延迟导致重复发送迁移任务。
修复 Merge Empty RG 时未检查副本角色一致性的问题。在合并空 RG 前增加副本角色检查,确保两个 RG 的 Voter/Learner 配比一致后再执行合并操作。
修复 pthread 模式下 futex timed wait 被虚假唤醒后未正确推进已消耗等待时间的问题。
修复整机迁移中被动中止阶段完成后未清理节点 RG 缓存的问题。迁移回滚进入 Passive Abort Stage 完成后,需同步清理节点缓存中的 RG 记录。
修复 19.1.x 版本直接升级 21.2.3 时因 sys 表不存在导致节点启动卡住的问题。调整前向兼容版本判断,从 19.2.x 版本开始走新的 sys 表升级路径。
修复行存节点在 GenericCleanupData 过程中因 PhysicallyDeleteRange 执行成功但 Range 内数据未清空导致 Core 的问题。
修复 Region 分裂和合并条件不一致导致频繁调度的问题。当 Region 大小较小但 Key 数量很大时(如11MB包含700万个 Key),统一分裂和合并的判断条件,避免反复触发调度。
修复 TDRlogBackuper 在关闭文件描述符时阻塞导致长时间不退出的问题。采用标准关闭流程,先执行 shutdown 再执行 close,避免因缓冲区数据残留导致阻塞。
修复单副本实例中 Fix Offline 函数持续报错的问题。在处理 Offline 状态前先判断 Leader Commit ID,避免单副本场景下直接跳过处理逻辑。
修复 No Range Lock 功能未适配 Batch Update 场景的问题。在 Batch Update 优化路径中增加二级索引值变化校验和回表记录获取的容错处理,确保更新操作数据一致性。
计算节点聚合路由 RPC,高并发场景下减少路由 RPC 次数、降低 MC CPU 压力
修复 UPDATE 语句在包含 VARCHAR 字段的唯一索引上可能破坏唯一性约束的问题。修正唯一性校验的扫描范围计算逻辑,避免因字符串长度变化导致校验范围缩小。
修复 LogService 在回放创建约束关系时卡住的问题。解决因找不到下一个待回放任务创建的数据对象路由而导致回放阻塞的问题。
修复 MultiScan 重聚合失败时访问 GetRegion 导致空指针崩溃的问题。在 GetRegion 函数中增加空指针判断,当 multi_range 为空时返回 nullptr 而非访问空指针。
修复 TDStore Replay Barrier 机制存在日志回放乱序的问题。解决多个 Barrier Log 并发回放时,后一个 Barrier Log 可能在前一个完成后错误释放状态锁,导致其他日志与 Barrier Log 并发执行的问题。
修复 MC 无主时 TDStore Client 调用导致 Client工具 Core Dump 的问题。解决 MC 切主期间因数组越界导致的崩溃。
修复快照恢复中 Migrate 任务报错的问题。采用遍历副本找 Leader 的方式替代直接使用 RG Meta 中的 Leader,确保 Migrate 任务正确获取源节点。
修复 raft_data 目录残留大量 deleted__async-cleanup 目录导致 Agent 执行 du -cshm 频繁 Core 的问题。
修复异步 Clean Job 卡住导致 CheckConflictWithCleanupDataTask 持续检测到 Range Overlap 的问题。当 Destroy Job 的异步清理任务长时间未完成时,不再持续阻塞后续迁移任务。
修复 LogReceiver 在多 CDC 节点分布不均衡的问题。MC 增加定时调用 CDC 均衡接口的协程,同时修改 LogService 参数限制 CDC 节点 MySQL Client 内存占用,避免单个 CDC 节点承载过多 LogReceiver 导致 OOM。
修复快照恢复回放单副本迁移 Job 时 Offline Leader 报错的问题。单副本迁移场景下,快照恢复不会回放 Transfer Leader Job,需在发现 Migrate Offline Leader 时先进行一次切主。
修复 Item_int_with_ref 未实现 Parallel Safe 导致特定 SQL 并行执行崩溃的问题。
修复 UTF8 字符集下并行查询执行 CONVERT(SUBSTR()) 函数结果不一致的问题。确保并行执行与串行执行返回相同的字符串内容。
修复 Proxy 报错信息不准确的问题,提升问题排查效率。
修复时间戳下沉场景下 PutTimestampToEtcdLoop 协程异常退出的问题。将协程中获取时间戳失败时的 break 改为 continue,确保协程持续运行。
修复 mc_rg_state_leader_transfer_high_frequency_gauge 指标无法正确重置的问题。指标重置逻辑原先写在 AddLeaderHistoryLocked 中,只有下次切主发生后才会重置,现已修复为可正常重置。
当 RG 被删除后,其对应的 raft_data 目录,不再进行重命名并保留,而是直接删除目录。
修复 Proxy 在分区表场景下总是将转发目标节点选在第一个分区 RG Leader 的问题。根据 SQL 指定的分区或 WHERE 条件做分区裁剪后,正确选择对应分区的 RG Leader 节点进行转发,充分利用 Local Scan 优化。
修复磁盘接近满容量时 RG_JOB_TYPE_DELETE_REGION_IN_RG 任务无法调度执行的问题。允许 Local Meta CF 写入跳过缓写状态,确保 Drop Table 等释放空间的操作能尽快正常执行。
修复实例只读后 Drop Table 操作卡住的问题。解决 Write Fence 版本不匹配(SQLEngine 发送版本1,TDStore 记录版本2)导致校验失败的问题。
修复 TDBR 备份时因 CDC 节点 Agent 未启动导致持续报错的问题。TDStore 备份逻辑适配 CDC 节点、Log-only 节点和 Columnar 节点,这些节点的 Agent 状态不影响备份流程。
修复 dbms_admin.show_variables 查询字符集相关变量时 Candidate Values 显示为空的问题,同时修复大数值显示为科学计数法的问题。
修复创建实例偶现的数据字典初始化失败问题。解决 TDStore User RG Save Meta 时因 Permission Denied 报错导致节点初始化失败的问题。
修复了在全量备份恢复(TDBR)过程中,当网络拥塞导致从 COS 下载 SST 文件频繁超时(如 context deadline exceeded)时,重试机制存在两个问题:1) 重试次数固定为10次,不可配置;2) 重试间隔为固定的20-30秒随机值,在网络持续拥塞时效果不佳。这可能导致下载任务在达到重试上限后失败,进而使整个备份恢复流程卡住。
修复了在 Region 数量较多的副本组(RG)中,MC 内部负责合并主键的协程在遍历 Region 元数据时持有读锁时间过长,与定期检查 Leader 的协程(checkLeader)发生读写锁竞争,进而导致死锁的问题。死锁后心跳包处理被阻塞并堆积,最终引发 MC 内存溢出(OOM)。
修复了在创建具有隐式亲和性的多张分区表时,MC 的调度逻辑存在缺陷。当创建第二张表时,因判断具有亲和性而跳过了对 prefer leader 和数据保护(DP)规则的检查,而此时有亲和性的目标副本组(RG)可能正处于合并(Merge)状态无法创建。这导致后续分区表的 Leader 选择不受约束,全部集中到同一个节点,未能实现预期的打散分布。

数据字典变更

变更类型
数据字典
说明
修改
新增了 OBJECT NAMEOBJECT SCHEMA 说明。

V21.2.3

版本更新说明

数据库管理

提高只读参数 max_digest_length 的默认值以支持更长的 SQL 语句指纹
将 SQL 语句摘要(Digest)的最大长度参数 max_digest_length 的默认值从1024提升到10240,以便 Outline 可以使用到更长 SQL。
增大参数 range_stat_maximum_scanned_partitions 的默认值,以优化超大分区表的范围行数估计性能
增大该值意味着在估计范围行数时,可以允许扫描更多分区来获取更精确的统计信息,旨在平衡估计精度与优化器估计的耗时。
完善 SST 边界对齐策略
增强 SST 边界对齐策略,支持设置最小分割文件大小,缓解打开边界对齐策略时,小 SST 文件过多的问题。默认值为4MB,即当 Compaction 输出的 SST 大小超过4MB时,才会进行分割。
优化 KEY 分区默认算法配置
调整 KEY 分区表的默认打散算法,提升数据分布均匀性和查询效率。需要注意:KEY 分区的 algorithm=1,原本1表示 KTY_51 算法,现在1表示 MURMURHASH 算法;KEY 分区原本的默认 algorithm=2,表示 KEY_55,现在默认 algorithm=1 使用 MURMURHASH
优化迁移调度策略
改进迁移调度策略,基于 bvar 指标数据优化节点选择逻辑,避免 IO 资源竞争导致的性能问题。

扩展性与性能

修复分区表处理逻辑中,按记录数排序的分区 ID 列表的排序逻辑
修复了在分区表中,m_part_ids_sorted_by_num_of_records 没有按照子分区表的行数降序排序。
优化 RangeSearch 实现,减少内存拷贝与冗余计算以降低开销
在 Range Search 过程中,直接计算生成 Range 内的行数,避免产生大量中间结果的性能开销。
优化 RPC 调用超时重试机制
增加 RPC 最大阈值变量用于强制限制 RPC 重试不会超过最大阈值,避免了因目标服务长时间不可用而导致大量 bthread 资源被无效重试长时间占用的问题,提升了系统在高负载或部分故障场景下的整体资源利用效率和稳定性。
优化分区表点查场景下 rec_per_key 统计信息的计算性能
针对分区数量众多(如超过1000个分区)的表,优化了在点查等查询中计算每键平均记录数(rec_per_key)的开销。
优化大分区表 DDL 操作的执行效率
针对分区数量庞大的分区表执行 DDL 时,优化了与数据字典(DD)的交互模式。通过将 DDL 操作转发至系统资源组(sys rg)Leader 所在节点执行,避免了跨节点产生的大量 RPC 调用,显著减少了大分区表进行结构变更时的延迟。
优化 NDV 估计算法
采用 Duj1 算法优化整体 NDV(唯一值数量)的估计精度,减少统计误差。
优化热点调度策略
优化热点调度策略,允许分裂多张表进行调度,提升系统负载均衡能力。
优化 Compaction 线程数配置
优化使用本地盘时的 Compaction 线程数配置,将修正倍数从2倍调整为1.5倍,平衡 CPU 占用与 I/O 性能。
优化 SQL 转发机制
优化 SQL 转发机制,修复错误日志、状态设置及超时控制等问题,提升转发性能与稳定性。
优化 BulkLoad 参数更新机制
优化 BulkLoad 批量更新 options 的机制,确保在数据导入完成后能正确恢复参数设置并有效降低 pending compaction bytes。
增强系统表索引统计信息管理能力
支持重新加载系统表索引统计信息到内存,避免频繁触发重新计算,提升执行计划稳定性。
优化 BatchPut 聚合操作的路由获取范围
针对批量写入(BatchPut)操作中的路由聚合(Aggregate)逻辑进行了优化。解决了在操作涉及大量 tindex ID(例如跨多个分区的分区表或间隔很久执行 ADD INDEX)的场景下,获取路由范围过大的问题,避免了不必要的路由信息获取,提升了批量数据写入的效率。
优化备份恢复性能
针对微盟离线 MySQL 场景的恢复慢问题进行优化,提升数据恢复效率。
减少 setup_read_decoders 函数调用频率
优化关联子查询执行逻辑,降低 setup_read_decoders 函数在查询执行中的开销占比。
优化 UPDATE 语句的 RPC 调用性能
对 SQLEngine 模块中的 UPDATE 语句执行流程进行了优化,将原本针对每行数据的索引冲突检查和存储层写入操作进行批量处理,显著减少了高频次、小数据量的 RPC 网络调用。此优化提升了涉及多行更新的 UPDATE 语句的执行效率。线上默认不开,按需打开 tdsql_stmt_optim_batch_update 开关。
优化 Log Receiver COS 链路性能
优化 Log Receiver 的 COS 链路性能,通过减少 Raft Log 文件的重复下载,来降低 IO 资源的消耗以及提升日志获取效率。
优化 SST 文件大小参数配置
调整 target_file_size_multiplier_additional 参数默认值,从 1:1:1:2:2:4:8 调整为 1:1:1:2:2:2:2,当 user_cf_target_file_size_base = 32M 时,在新的默认值下,L1~L6 的 SST 大小上限为:32M, 32M, 64M, 128M, 256M, 512M,下层的 SST 大小更加合理。
优化并行查询执行器启动性能
改进 StartExecutor 在网络压力下的执行效率,减少耗时波动,提升查询稳定性。
特定场景禁用 LIMIT 并行
不带 ORDER BY / GROUP BY 的简单 LIMIT 走并行会带来额外开销,默认禁用并行,若实在需要通过并行解决可以在 SQL 中添加 Hint /*+ parallel(n) */
优化 Block Statistics 缓存淘汰机制
重构缓存淘汰策略,解决 FIFO 和 LRU 模式下已失效统计信息的内存占用问题,提升内存使用效率。
扩展 GetSmallRange 函数支持远程调用
增强 GetSmallRange 函数功能,使其支持在远程节点上执行,为并行查询的进一步优化提供基础支持。
优化行锁提前释放机制
改进行锁管理逻辑,兼容 MySQL 行为,在打开特殊开关的场景下提前释放不满足过滤条件的行锁,提升系统并发处理能力。
统一 Exchange 为非阻塞模式以提升查询性能
解决并行查询中 Worker 间数据不均匀问题,避免阻塞等待,提升整体执行效率。
优化 Thomas Write 并行回填策略
采用 Small Range 替代 Region 划分任务,提升数据回填的并发效率与负载均衡。
优化统计信息采样性能
针对 FindSampleKey 函数进行性能优化,降低 CPU 开销。
改进 Range 估计算法
优化统计信息中 Gap Range 的处理逻辑,避免因跳过 Gap Range 导致行数估计严重偏低。
优化 GetRegionsByKeyRange 查询性能
针对现网实例 Region 数量大的场景,优化 GetRegionsByKeyRange 查询性能,解决 CPU 打满问题,提升系统稳定性。
增强 BulkLoad 与 RG Job 并发处理能力
优化 BulkLoad 导入与 RG Job 的并发控制,以表粒度来限制两者并发,BulkLoad 导入的表所属的 RG 会禁止发起 RG Job,其他不涉及 BulkLoad 导入的 RG 则允许发起 RG Job。
优化 SHOW INDEX 命令执行性能
优化 SHOW INDEX 命令在跨 AZ 场景下的执行效率,提升查询响应速度。
优化 BulkLoad 与 DDL 操作的并发控制
优化 BulkLoad 导入与 DDL 操作的互斥粒度,提升系统并发处理能力。优化 BulkLoad 导入与 DDL 操作的并发控制,以表粒度来限制两者并发,BulkLoad 导入的表会禁止执行 DDL 操作,其他不涉及 BulkLoad 导入的表则允许发起 DDL 操作。
优化 DDL 操作中分区策略元信息读取效率
优化 DDL 操作中分区策略元信息读取效率,通过缓存优化等方式减少元数据读取次数,提升 DDL 执行性能。
优化日志副本负载均衡策略
优化日志副本的负载均衡策略,使用写入速度、预估日志大小和副本数量作为负载指标,提升系统资源利用效率。
优化 DELETE 操作性能
改进 DELETE 操作的执行效率,通过 BatchDelete RPC 提升批量删除操作的性能表现。线上默认关闭,控制参数为 tdsql_stmt_optim_batch_delete
优化大事务 Commit 解锁性能
优化大数据量场景下 Commit 流程中的解锁机制,通过异步处理提升系统整体性能表现。
优化 DDL Recovery 线程并发控制
改进 DDL Recovery 后台线程的并发管理机制,避免在大量 DDL 操作失败时资源过度占用,提升系统整体稳定性。
优化 BulkLoad 与普通事务并发处理能力
改进 BulkLoad 事务与普通事务在不同表上的并发控制逻辑,允许 BulkLoad 事务与不同表上的普通事务并发执行。提升系统资源利用效率。
优化 Exchange 按需传输 VARCHAR 大字段问题
优化 Exchange 传输 VARCHAR 大字段时,仅仅按需发送。
增强 MC HTTP V2 接口能力
支持指定 HTTP V2 接口的最大请求和返回长度,提升接口稳定性。

语法与功能

通过 Hint 语法支持会话级启用或禁用 Range Cache
新增 SQL Hint,允许用户针对单条查询语句控制 Range Cache 的使用。使用 /*+no_range_cache*/ 可强制关闭当前查询的 Range Cache;使用 /*+use_range_cache*/ 可强制启用。
增强闪回查询功能
提供获取事务时间戳的接口,支持在闪回查询中使用特定时间戳进行数据查询。
优化同名表并发创建的错误提示
改进同名表并发创建时的错误信息返回,提供更明确的冲突提示,统一 DDL 和 DML 操作对表存在性的判断逻辑。
增强执行计划下推信息显示
优化 EXPLAIN 输出,增加明确的下推执行标识,提升 SQL 执行计划的可读性与调试效率。
增加 MC 配置文件的备份功能
在 Shark 渲染 MC 配置文件时自动备份配置文件,方便后续进行参数变更比对与问题排查。
新增 Savepoint 功能支持
支持 SAVEPOINT 功能,提供更灵活的事务控制能力,便于复杂业务场景下的数据处理。
扩展 BATCH LIMIT 语法功能
增强 BATCH LIMIT 语法对分区表的支持能力,提升查询功能的灵活性和适用范围。

稳定性

修复进程启动时因特定持久化变量校验失败的问题
修复了 SQLEngine 进程启动时,因读取并校验持久化变量 dd_history_record_cleaner_interval_second 而可能失败的问题。优化了校验逻辑,确保在相关后台线程尚未初始化的启动阶段也能安全处理,提升了进程启动成功率。
修复 DML/DDL 操作中因底层锁机制缺陷导致的偶发崩溃(Core)问题
修复了在压测 Range Tree 等场景下,由于底层 BRPC 库中锁生命周期管理问题引发的 Use-After-Free(UAF)缺陷。
增强 Flush Table 与 Write Fence 广播操作的校验与容错能力
加固了 SQLEngine 模块中广播 FLUSH TABLE 和 Write Fence 操作的执行逻辑。新增了 Schema 版本不匹配时的本地缓存刷新机制,并强化了 flush_cache_table 操作在遇到 RPC 卡住等异常时的错误处理,提升了 DDL 相关操作的健壮性。
修复 DDL Job 回滚时因读取空临时表信息而导致的进程自杀问题
修复了 SQLEngine 中 DDL Job 在回滚阶段的一个缺陷。该缺陷导致 Job 尝试为一个数据库名为空字符串的"临时表"申请锁,进而引发向 MC 的无效 RPC 请求并最终触发进程 KillSelf。修复后确保了 DDL 回滚流程的稳定性。
修复进程启动初期因插件系统未完全初始化而可能发生的崩溃(Core)问题
修复了 SQLEngine 在特定启动时序下,因外部请求过早到达而访问尚未初始化的全局插件变量(global_system_variables.table_plugin),进而引发空指针访问导致进程崩溃的问题。提升了服务启动过程的鲁棒性。
优化 RPC 连接超时参数配置
修复 tdsql_rpc_connect_timeout 参数与持久化变量的逻辑适配问题,确保参数修改生效。
优化统计信息 RPC 重试机制
细化统计信息相关 RPC 的重试逻辑,避免长时间占用系统资源,确保操作执行的稳定性。
优化 Inplace DDL 操作稳定性
综合改进 Inplace DDL 操作相关问题,包括:优化 RENAME COLUMN 在非 LogService 下无需禁写阶段;增强批量 Rename 操作的原子性;改进 start_ddl_job 日志输出;修复 DDL 回滚流程中的状态管理问题,确保 DDL 操作的可靠性和一致性。
解决 CPU 资源异常占用问题
细化统计信息相关的 RPC 机制,以及新增时间戳机制,避免重复的计算导致消耗过多的 CPU。
优化 Vanished RG 事务处理机制
改进 Vanished RG 的事务反向探活逻辑,确保事务在 RG 状态变化时能够正确处理,提升系统可靠性。
优化 MC 与 TDStore 状态感知机制
改进 MC 对 TDStore 运行状态的感知能力,确保在 TDStore 完全启动后再下发相关任务,提升操作成功率。
优化大事务与 RG 合并的并发处理
优化大事务与 RG 合并操作的并发控制,确保在复杂场景下事务处理的正确性和一致性。
优化主灾备切换高可用性
改进主灾备切换流程,提升系统在故障场景下的自动恢复能力和服务连续性。
优化 DDL Recovery 后台线程退出机制
改进 DDL Recovery 后台线程管理,确保线程能够及时响应退出信号,提升系统维护效率。
修复 DROP VIEW 操作连接丢失问题
解决 jmysql 执行 DROP VIEW 时出现的连接丢失异常,确保操作执行的稳定性。
修复克隆实例规格不匹配问题
修复多 RG 实例克隆为单 RG 实例时,因 RG 规格不匹配导致无法创建数据对象的问题。
修复 InstallSnapshot 持续失败问题
修复 InstallSnapshot 监控采集错误导致的误报。
Merge RG 去掉校验 leader 和 follower 上报 index 位点一致性
去掉冗余的位点一致性检测,提升 Merge RG 稳定性。

备份恢复

增强全量备份过程中 SST 文件上传失败的重试能力
优化了全量备份流程的容错性。当上传 SST 文件到对象存储(COS)过程中,因网络波动或 COS SDK 分段上传部分失败而报错时,新增了针对该场景的重试机制,提高了备份任务的整体成功率。
优化快照备份恢复流程
改进快照备份恢复任务的回放逻辑,增强错误处理和重试能力。
增强增量备份状态监控能力
支持通过 MySQL Status 查询增量备份状态,提升备份任务的可见性与运维便利性。

数据迁移

优化克隆过程中的节点驱逐处理
改进克隆过程中节点驱逐的处理逻辑,确保在节点异常情况下能够正常完成数据恢复。

运维

增强 bstack_fast 诊断工具,支持按线程 ID 输出原始调用栈
为快速线程栈聚合工具 bstack_fast 增加非聚合输出模式。新模式下,工具将输出每个线程的原始调用栈,并关联 bthread_idpthread_id。此功能便于运维人员在排查复杂并发问题时,准确定位到特定线程的执行路径。
修复管理控制台(MC)的任务(Job)归档逻辑缺陷,防止内存泄漏与 OOM
修复了 MC 在归档已完成任务时的一个逻辑错误:当任务列表中存在"迁移中"(migrated)状态的任务时,归档流程会错误地中断,导致后续所有已完成任务都无法归档。大量任务堆积在内存中最终导致 MC OOM。修复后,归档逻辑能正确判断任务状态,确保内存得到及时释放。
统一慢查询日志(Slow Log)中所有耗时时长的单位为秒,并修复显示格式
修复了升级后慢查询日志中执行时长(如 Query_time)在前端界面显示为0的问题。同时,对内核慢查询日志格式进行标准化:将 Query_timeLock_time 等所有耗时时长的单位统一为秒(s),并统一保留6位小数的精度,使其与 MySQL 标准格式一致,便于日志中心与 DBBrain 等监控工具解析,消除歧义。
改进 bstack_fast 诊断工具的回溯算法,使用 libunwind 提升栈回溯完整性
bstack_fast 工具的栈回溯方法从原有的帧指针(FP)回溯法替换为 libunwind 库。新方法能够正确回溯那些未保存帧指针的函数(如 libc 库中的 usleepnanosleep 等),解决了原有方法在遇到此类函数时调用栈信息不完整或跳跃的问题,使诊断工具输出的调用栈更精确、更接近 gdb bt 或原生 bstack 命令的结果,提升了线上问题排查效率。
增强后台线程卡死自动诊断能力
优化了系统诊断功能,当后台监控线程检测到所有工作线程(Worker Thread)均处于卡死状态时,将自动触发快速堆栈转储(Fast Dump Stack)模式。该模式会导出所有 pthread 和 bthread 的调用栈信息,为后续分析严重系统僵死问题提供关键现场数据。
优化多 AZ 实例启动时副本分布策略
修复多可用区实例启动时 Primary RG 副本分布不均匀的问题,确保数据分布均衡,提升系统稳定性。
推进 RPC 版本升级
在升级到21.2.3版本时同步更新 RPC 版本,确保功能兼容性。
优化分布式锁获取失败日志输出
改进获取 MC 分布式锁失败时的日志信息,提供更明确的警告提示。
保障 Agent 个性化配置持久化
优化 Agent 配置管理机制,确保个性化修改的参数在重启和升级过程中不被默认值覆盖。
优化 Bvar 状态名称长度限制
把 Bvar 的展示从 SHOW GLOBAL STATUS 中去掉,提供内存表 BVAR_INFO 来展示所有 Bvar 的值。
增强 Pod IP 分配异常处理能力
改进 Pod IP 分配失败场景下的拨测机制,确保变配流程不受影响。
优化 MC Cntl RPC 超时配置
支持通过 tdsql_mc_meta_rpc_timeout 参数配置 MC 控制 RPC 超时时间。
优化事务重试日志输出级别
调整事务重试日志的输出级别,便于日常运维问题定位。
增强审计日志的耗时统计详情
完善审计日志中的分段耗时统计信息,提供更细粒度的性能分析依据。
增强 TDStore 慢查询日志分析能力
在事务和 RPC 层面新增细化的慢查询日志,提供更详细的性能分析信息,便于快速定位和解决慢查询问题。
优化 SQL Engine 升级回滚机制
将升级过程 sys 表的更新和节点重启过程解耦开来,待所有节点重启完成后,通过 dbms_admin.upgrade() 实现系统表变更的幂等操作,提升升级过程的安全性与可靠性。
优化 Binlog 相关参数默认配置
调整 Binlog 相关参数默认值,避免给熟悉 MySQL 的用户带来困惑,提升用户体验。
增强 KILL 命令错误信息反馈
优化 KILL 命令执行失败时的错误信息返回,提供更明确的错误提示。
优化 Persist 变量设置逻辑
改进 Persist 变量的设置和管理机制,增强 MC 对全局变量配置文件的支持能力,提升系统配置管理灵活性。新增语法 SET PERSIST node_type x=x1; 其中 node_type 类型为 hyper storage engine cdc columnar log_only 之一;变量 x 只会同步到对应类型的节点。SET PERSIST x=x1; 根据执行 SET PERSIST 命令的节点的 node type 转化为 SET PERSIST node_type x=x1 执行,这里 node_type 代表该节点的节点类型。
增强事务等锁慢日志功能
在 TDStore 中添加事务等锁的慢查询日志,并支持通过开关动态控制,便于问题定位和分析。
优化 Schema 状态展示
完善 SHOW CREATE TABLE 命令,使其能够正确显示所有相关的 Schema 状态信息。
统一 RPC 包大小配置参数
废弃冗余的 tdstore_rpc_max_body_size 参数,统一使用 tdsql_max_rpc_body_size,简化配置管理。
扩展内核监控指标采集能力
增强内核监控指标采集功能,提供更丰富的系统运行状态监控数据,便于系统性能分析和问题定位。
增强内核直采指标时间戳支持
完善内核直采指标接口,在 Prometheus 协议指标 Value 后增加时间戳信息,便于时序数据分析和监控告警配置。
优化表打开与查询执行逻辑
改进表打开与查询执行流程,避免不必要的关联表操作,优化内存使用效率。
优化 BulkLoad 参数配置体验
简化 BulkLoad 操作涉及的 RocksDB 参数配置,提供低、中、高三档资源预设,简化运维操作,提升导入效率。
提供 MC 全局变量快速修改工具
开发便捷工具,支持快速修改 MC 保存的全局变量信息,提升运维效率。
优化 Unix Socket 锁文件设置
改进 Unix Socket 锁文件设置逻辑,避免进程冲突导致的启动失败问题。
建立 TDStore 数据文件格式升级兼容性规范
制定 TDStore 数据文件格式升级兼容性规范,确保升级过程可安全回滚,提升系统维护的可靠性。
推进数据对象位置分布能力产品化
整合数据对象位置分布相关基础功能,形成体系化的产品解决方案。增加 MC 对一级时间 Range 分区的调度能力,增加数据管理和调度能力。支持通过 SQL 语句创建 Distribution Policy,提供更灵活的数据分布管理手段。
启用 RocksDB 监控指标
启用 RocksDB 的监控指标范围查询次数,完善系统监控体系。
修复21.2版本升级流程中的系统表创建问题
改进升级流程中的系统表创建逻辑,确保升级失败时可安全回滚系统表相关 DDL。

问题修复

修复了在批量访问键值 (Batch Access Key) 的初始化阶段,接收到终止 (killed) 信号后,未能立即退出,而是等待到下一个检查点才退出的问题。通过提前关键位置的检查点,使查询能更及时地响应终止操作。
降低计时器精度要求,修复了其在部分机器上初始化缓慢的问题
修复了在模糊测试 (Fuzz Testing) 中,由特定复杂嵌套查询(涉及大量 NOT EXISTSUNION ALLGROUP BYHAVING 等子句的组合)触发多范围读取 (MRR) 路径下的程序崩溃 (Crash) 问题。
修复了在分区表上使用 ref 访问方法进行等值查询时性能不佳的问题。根因在于每次获取一条记录后,都需要为所有分区执行 reset_parallel_scan_exec_flags 操作,该操作成本与分区数成正比,导致大量开销。
修复了在使用多范围读取 (MRR) 执行包含分区表的复杂查询时,因分区表处理器 (ha_rockspart) 的 ref_length_actual 字段未正确同步底层存储引擎的值,导致后续计算中使用了未初始化的异常值,进而引发内存访问错误和进程崩溃 (Core) 的问题。
修复了在超大分区表(如1000个分区)上执行查询时,优化器进行范围行数估计 (records_in_range) 时需要扫描每个分区进行行数估计,导致耗时较高。
修复了事务内存限制参数 max_txn_size 在特定配置下实际生效值与预期不符的问题。确认问题源于参数解析或传递过程中的不一致,导致事务内存上限被错误地设置为默认值(约1GB)而非配置值。
修复了从21.2.0之前版本升级上来的灾备实例,在同步数据库用户 (DB User) 权限时报错的问题。根因在于新增的 DB User 同步功能默认使用新账户 (tdsql3_sys_standby_xxx),而老版本灾备使用的是旧账户 (tdsql3_sys_standby),导致权限授予失败。
修复了 BatchGetV3 接口在特定条件下可能返回 part_ctx_version mismatch 错误的问题。该问题由开发 multi-scan 功能时引入的一段冗余逻辑导致,可能使本该走事务读的请求错误地走到了快照读路径。
修复了为复合索引(Compound Index)估算每个键部分(Keypart)的平均记录数(rec_per_key)时,可能出现"后续键部分的 rec_per_key 值比前缀键部分更大"的逻辑错误。根因在于不同键部分的 rec_per_key 可能由不同算法独立估算,彼此间无约束。
修复了当表中存在列直方图(Histogram)时,执行 ANALYZE TABLE 无法正常更新表的行数统计(table_rows)的问题。根因在于特定代码路径中,直方图估算的行数错误地覆盖了 ANALYZE TABLE 通过精确扫描获取的行数。
修复了在数据更新后,过期的列直方图(Histogram)会影响新生成的索引统计信息的问题。这导致即使执行 ANALYZE TABLE 后,复合索引的 rec_per_key 和 cardinality 值仍然是错误的,进而影响优化器的行数估算。
修复了在使用列直方图(Histogram)估算复合索引前缀的选择性时,用于累计前缀不同值数量(total_prev_ndv)的逻辑错误。该错误导致在计算后续键部分的 rec_per_key 时,使用了被错误放大的前缀不同值数量,使得估算结果不准确。
修复了在特定混合节点 (hybridnode) 故障叠加场景下,对主 MC 进程发送 kill -19 信号可能导致 I/O 持续性跌零的问题。
修复了 MC 模块在退出及切主流程中,因 GetRepGroupsByTs 函数存在潜在死锁而导致进程卡住无法正常停止的问题。
修复执行 where 条件中包含子查询的 update 语句时,binlog 生成异常的问题。
修复快照恢复过程中遇到 PassiveAbortStage 的 job 时,因 job 无需 report 而导致回放流程卡住的问题。
修复 TDStore client 执行 get_raft_node_info 时丢失 log receiver 信息的问题。
修复 RG 切换 leader 后再进行合并操作时,出现误杀事务的问题。
修复 log-receiver 残留问题,优化退出流程确保即使 log-service 不存在时也能正确删除残留的 log-receiver。
修复虚拟表 TDSTORE_INSTALL_SNAPSHOT_INFO 因存储格式变化导致升级后解析出错的问题。
修复 LogService 回放过程中 expanded RG 非预期持久化 merge log 位点的问题。
修复21.2.3版本中集群从3副本形态缩容至2 + 1形态时,因迁移条件判断未特判日志副本(其 size 应为0)导致流程卡住的问题。
LogService 还未初始化完成,查询该视图直接返回。
修复 1PC commit_ts 优化逻辑中可能导致事务 commit_ts 小于 safe_read_ts 的问题。
修复 db_pending_compaction_bytes_limit 相关监控指标混淆问题。
修复 LogService 中 manager 组件启动时序晚于 controller 导致的 panic 问题。
修复当表包含64个 Key 时执行 TRUNCATE PARTITION 失败的问题。
修复慢查询日志大小计算逻辑错误问题。
在 log receiver 向 leader 发送连接之前,log receiver 就收到了 install snapshot。因此,start_index 还未被赋值,所以采用了默认值2。导致 start_index 计算错误。
修复 tdstore_compact_on_delete_ratio 参数在21.0.0版本重构中被错误设置为0的问题。
修复 CDC 回放 Raft Log 过程中生成的 Checkpoint 导致索引回退的问题。
修复 auto commit 事务导致分布式事务统计不准确的问题。
修复在全量备份期间发起修改主可用区任务时流程卡住的问题。
修复多个节点调度 Log Receiver 对象时 Raft Leader 仍会 Purge Raft Log 的问题。
修复行存 MPP 模式下 Item_func_group_concat 函数执行异常问题。
修复 ImproveLocation 功能错误地迁移了创建失败的复制组(RG)的问题。
修复普通二级索引使用 BatchPut 时未对 RPC 包大小进行校验的问题。
修复自测环境中 ha_rocksdb::check_index_dup_key 函数导致的 core 问题。
修复降副本操作产生的 offline 任务在 abort 流程中副本状态未正确恢复的问题。
修复 online copy 操作失败后临时关联表定义残留问题。
修复 DDL 任务失败时残留 stage 信息未清理的问题。
修复实例缩容后手动打散分区时因未设置强制分裂导致任务失败的问题。
修复分区表更新时未同步更新整表统计信息的问题。
修复分区表通过二级索引执行 count(*) 时未正确调用 ha_rocksdb::records_from_index 的问题。
修复有显式分区策略的分区表在添加索引时可能出现的死锁问题。
修复 MC leader 节点被终止后出现的短暂无主状态问题。
修复 Update 语句在非隐藏主键表的非自增列上错误触发 AutoInc RPC 的问题。
修复创建灾备实例时前置检查 SQL 语句执行超时的问题。
修复因 CVM 规格过小导致 bthread_timer_threads 参数校验不通过,进而引发 Pod Crash 的问题。

语法变更

变更类型
语法
说明
新增
SELECT CURRENT_GLOBAL_TIMESTAMP(); — 获取当前的全局时间戳(GTS)。
SELECT FROM_UNIXTIME(CURRENT_GLOBAL_TIMESTAMP() >> 24); — 返回 GTS 的物理时间部分。
修改
根据当前节点的类型自动转换为对应的 SET PERSIST node_type x = x1 形式,仅对同类型节点生效。
新增
SAVEPOINT
支持 SAVEPOINT 功能,具体语法如下:
1. 事务中创建 SAVEPOINT:SAVEPOINT sp_name
2. 回滚到某个 SAVEPOINT:ROLLBACK TO SAVEPOINT sp_name
3. 释放某个 SAVEPOINT:RELEASE SAVEPOINT sp_name
修改
新增对分区表的支持,同时新增限制:在 WHERE 子句中包含 GROUP BYLIMIT 时,禁用 BATCH LIMIT 功能。

数据字典变更

变更类型
数据字典
说明
新增
BVAR_INFO
用于展示 TDSQL Boundless 系统中所有的 bvar 统计监控项信息。
新增
快速查询当前实例中是否存在灾备功能不支持的表。

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈