V21.6.x

最近更新时间:2026-06-29 09:56:18

我的收藏

V21.6.3.0

版本更新说明

数据库管理

优化 RocksDB 数据格式版本默认值设置
tdstore_rocksdb_data_format_version 参数默认值从 ROCKSDB_DATA_FORMAT_VERSION_UNKNOWN 改为 ROCKSDB_DATA_FORMAT_VERSION_1,并引入跳板升级策略确保存量实例安全升级,为后续性能优化功能提供基础支持。
新增客户端出入流量监控指标
新增 Bytes_sentBytes_received 指标的监控能力,支持展示数据库实例的客户端出入流量,便于运维监控和容量规划。
新增 SQL 语句级资源隔离能力
支持通过 SQL 文本精确匹配或正则匹配规则,将特定 SQL 路由到指定 worker-thread 资源组执行,实现更细粒度的 SQL 级别资源管控,提升多租户环境下的资源隔离效果。
新增会话级分布式查询限制功能
新增 max_partition_access 系统变量,支持按会话动态限制事务可访问的复制组数量,防止误发分布式查询导致的性能问题。
新增分布式查询监控统计功能
performance_schema.events_statements_summary_by_digest 表中新增 SUM_DISTRIBUTED 列,用于统计 SQL 语句以分布式方式执行的次数,便于 DBA 识别和优化跨 shardkey 查询。
新增分布式查询日志记录功能
新增系统变量 log_queries_distributed,开启后可将所有分布式查询记录到慢查询日志中,并提供 Logged_reason 字段区分记录原因,增强分布式查询的可观测性。

扩展性与性能

支持 Go SDK 直连访问 TDSQL HBase 模式
新增 GoHBase SDK 对 TDSQL HBase RPC 的原生支持,提供 NewTDSQLClient 接口和 WithTDSQLConfig 选项,实现 CRUD、Scan 和 DDL 操作的完整兼容访问。
优化 Raft 日志压缩算法
将 Raft 日志压缩算法从 Snappy 替换为 LZ4,显著提升大事务处理性能,压缩和解压吞吐量大幅提高,整体耗时减少约2.5%。
引入 Hypergraph 查询优化器
新增基于超图算法的查询优化器,支持更高效的复杂多表 Join 查询优化,提供更好的执行计划质量和 Hash Join 支持,显著提升复杂查询性能。
增强 brpc 线程组监控可观测性
新增9类按 tag 分组的 brpc 性能监控指标,支持独立监控资源隔离后各线程组的运行状态,提升系统可观测性和运维效率。
新增基于 SQL Digest 的资源隔离机制
实现基于 SQL 指纹的资源映射隔离,支持将特定 SQL 模式的请求路由到指定线程组执行,提升资源利用率和系统性能。
新增大查询自动识别与隔离功能
基于 SQL digest 自动识别大查询并将其路由到专用线程组执行,避免大查询占用工作线程影响正常业务 SQL 响应时间,提升混合负载场景下的资源利用效率。
新增分区并行扫描能力
SQLEngine 支持分区表并行扫描,优化同分布分区表 Join 性能。
优化 Derived Table 并行查询下推能力
支持 Derived Table 查询在 worker 节点执行,提供 shared 和完全下推两种策略,显著提升并行查询性能并降低 leader 节点负载。
不支持子查询中 Derived Table 下推策略。
Binlog dump 性能优化支持并行回放
重构 binlog dump 架构为多队列并行处理,采用归并排序算法和批量刷盘机制,显著提升高并发场景下的吞吐性能,sysbench oltp_update_non_index 测试从10.5万 QPS 提升至24万 QPS。
优化大规模表创建性能
通过引入高性能序列化、细粒度锁机制和增量持久化等技术,显著提升海量表并发创建场景下的执行效率,大幅降低 CPU 和内存使用。
优化非核心业务迭代器内存使用
将 snapshot install、online data validation 等非核心读写路径的迭代器参数 fill_cache 设置为 false,避免并发执行时大量冷数据占用 block cache 内存,有效防止 OOM 并保障前台读性能。
优化非索引列多条件查询估行精度
增强 SQLEngine 对同一非索引列多个过滤条件的 range 估行能力,通过直方图合并 range 计算选择率,显著提升复杂查询场景下的执行计划准确性。
HBase 兼容模式二期功能增强与性能优化
重构 HBase 兼容模式的 scan 查询路径,采用 range 数据分布替代 hash 分区,显著提升 scan 性能;支持逻辑 region 和 rg 分裂,增强数据扩展性;新增 Filter 支持,实现与 HBase 2.6一致的15种过滤器语义;支持 conditional mutation 原子操作;适配增量备份恢复能力,确保 HBase 数据可恢复性;完成 HBase Client JAR 发布到 Maven Central 仓库的标准化工作。
优化日志副本 DDL 处理性能
通过移除日志副本中的 region 维护逻辑,显著降低 DDL 操作时的 CPU 和内存资源消耗,提升大规模表创建场景下的执行效率。
优化快照恢复中副本迁移任务成功率
精细化控制快照保存流程中的超时等待机制,提升迁移任务在并发 split 操作时的成功率,确保快照恢复任务的整体可靠性。
优化分区表全局索引创建性能
通过引入分布式归并排序机制,消除大单表和分区表添加全局索引时的数据重叠问题,显著减少该场景下 DDL 操作耗时和 Raft 日志回放阻塞。
增强慢查询日志存储层性能诊断能力
在慢查询日志中新增存储层过滤行数统计字段,帮助 DBA 快速定位谓词下推、MVCC 版本过滤、删除标记跳过和二级索引回表等存储层性能瓶颈问题。
优化 Online DDL 期间增量数据 Compaction 策略
通过引入 Fake CompactionJob 占位机制,在 Online DDL 数据回填阶段阻止增量数据下沉到 LSM-Tree 最底层,消除 Ingest 阶段额外 Compaction 开销,提升 DDL 执行效率和稳定性。
LogService MySQL 客户端模式内存精确控制
引入精确内存控制机制,通过 GenSqlRowInfo 数据落盘和四层逃生通道设计,彻底解决大事务场景下的内存溢出问题,确保 MySQL 客户端模式下的全链路内存占用可控。
支持对象存储(COS)冷热数据分离架构与监控计费能力
实现基于对象存储(COS)的冷热数据分离架构,支持在创建表或分区时通过新增 STORAGE_TIER 参数指定冷热属性(OBJECT_STORAGE/LOCAL_STORAGE),冷表数据存储在本地缓存数据库(CacheDB)和远端持久化存储(DurableDB)中。支持通过 ALTER TABLE 语法将 STORAGE_TIER 参数指定为 OBJECT_STORAGE,将表由热转冷,数据从本地存储转储到对象存储上。
同时新增完整的监控与计费能力,包括节点级别 COS API 调用次数统计、库表级别存储用量视图(INFORMATION_SCHEMA.TDSTORE_TIERED_STORAGE_USAGE)以及热转冷任务进度监控,提供用量计费、精细化管理和运维监控的完整解决方案,大幅降低大规模冷数据存储场景下的存储成本。
Install Snapshot 多源拉取优化
支持从 Follower 节点拉取 Snapshot 数据,降低 Leader 节点压力,缓解多可用区部署和热点 Leader 场景下的资源竞争问题。
新增大查询队列管理功能
引入大查询队列机制,对查询进行智能分类和资源分配,限制大查询的 CPU 占用,优先保障小请求性能,有效避免资源竞争导致的性能影响。
支持无主键表在线 DDL 操作
新增对无主键表的在线 DDL 支持,允许在表无主键的情况下执行列类型修改、添加列等操作而无需阻塞写入,显著提升无主键表 DDL 操作的并发性和可用性。不过本版本无主键表的 Online DDL 有如下限制:
无主键分区表 online copy 成无主键分区表时,不能修改分区规则(例如不能修改分区数目,不能修改分区算法等)
受限于当前架构,无主键分区表和无主键非分区表之间无法转换
无主键表暂时无法通过 Online DDL 转换成有主键表,也就是本版本不支持 Online ADD PK 操作
支持 hybrid 集群跨 MC 迁移能力
新增 hybrid 子集群跨 Meta Cluster 迁移功能,支持资源再均衡和容灾切换,迁移过程保持数据一致性,提升集群运维灵活性。

语法与功能

支持 LogService 开启时的多表 DDL 操作
解除 LogService 新回放逻辑开启状态下对多表 DDL 的限制,支持多表 DROP TABLERENAME TABLE 操作,确保主备数据一致性。
分区表全局二级索引 (GSI) 功能实现
RocksDB 分区表中实现全局二级索引 (GSI) 功能,支持 GLOBAL INDEX 语法定义、DML 写入维护、跨分区唯一性检查、查询优化以及分区 DDL 联动。该功能显著提升非分区键查询性能,支持全局唯一约束,优化器可自动选择 GSI 扫描路径,同时提供 UPDATE GLOBAL INDEXES 子句确保 DROP/TRUNCATE 分区操作后索引可用性。

稳定性

优化 schema 不存在错误处理机制
修复读写场景下 EC_TDS_SCHEMA_NOT_EXIST 错误码的重试逻辑,避免无效重试导致的连接丢失问题,提升业务可用性。
ETCD raft 层支持从配置文件动态更新集群节点配置
修复 MC 节点迁移场景下 ETCD raft 层使用旧 IP 端口配置的问题,确保节点重启后能够正确使用新的网络配置,提升集群稳定性。

备份恢复

修复 MC 元数据增量备份临时文件清理问题
优化增量备份流程,自动清理备份过程中产生的临时文件,避免磁盘空间占用和备份失败问题。
优化物理恢复 COS SST 文件下载超时机制
修复 COS SDK 下载超时硬编码问题,将 HTTP Client Timeout 从固定30秒改为动态计算,确保与32MB PartSize 匹配,提升大文件下载成功率。

问题修复

修复 MC 模块 GetTxnTs 重试上下文未显式 cancel 导致的内存泄漏问题
修复分区表 rec_per_key 统计信息不符合预期的问题
修复 TDSQL 不支持生成用户权限管理操作的 binlog 事件问题
修复 mc-agent 在 follower 节点上无法正确清除备份任务相关监控指标的问题
修复 Agent 增量备份中 BackupSstFiles 并发请求时 localTmpDir 碰撞导致的 PB meta 上传失败问题
修复 INSERT ON DUPLICATE KEY UPDATE 语句在 BATCH_PUT 模式下 duplicate-check 锁超时时错误返回 Unknown error occurs 的问题,现在会正确显示锁等待超时错误信息
修复 C++ 隐式类型转换导致的 LogService 警告问题,避免 SK Delete 操作生成错误的 extra_info 信息
新增线程数量超过阈值时自动导出调用栈信息的功能
修复 VE 路由刷新过程中因空指针解引用导致的 SIGSEGV 崩溃问题
修复 DeleteDuplicateKeyValues 函数在处理 REPLACE INTO 和 BATCH_PUT 优化路径时漏设 stmt_id 的问题
支持 skip scan 查询优化下推至 tdstore 层,减少频繁的 index lookup RPC 调用,提升查询性能
修复灾备集群创建任务在网络异常时永久卡死且无法取消的问题
修复 MC 一对多场景下全局单例被覆盖导致灾备 subcluster 的 LogService 元数据错乱问题
修复创建灾备实例时元数据过大导致 etcd 请求超过最大限制的问题
修复实例水平扩容后偶发出现非预期资源组迁移任务的问题
修复回档时数据字典初始化过程中冗余 RG size 计算影响效率的问题
修复 BATCH DELETE 极端场景下标识位残留导致加索引表出现数据不一致报错的问题
修复 TDSQL 早期版本在恢复过程中数据字典初始化超时导致克隆失败的问题
修复 logservice_replay_index 系统表结构导致的跨地域灾备实例同步延迟问题
修复 XA 事务并发场景下 xa rollback/commit 返回成功但数据未实际回滚或提交导致的静默数据丢失问题
修复 SQLEngine shutdown 时 DDL 后台线程无法响应退出信号导致卡住的问题
修复 tdsql_max_retry 参数设置为0时导致事务启动异常的问题
修复 HBase 表名包含点号时增量迁移工具在 MySQL 建表失败的问题
修复 HBase batch get 操作在特定场景下返回数据行数少于预期的问题
在 SQLEngine 的 add index 操作中增加磁盘空间充足性检查,防止空间不足时执行索引创建
修复 TDStore 批量更新列族选项时因迭代器失效导致的堆内存使用后释放问题
修复 TDStore 日志模块在程序退出时因静态变量析构顺序问题导致的 global-buffer-overflow 错误
移除已废弃的 BulkLoadLock fillback 模式,该模式曾用于加速索引创建但会锁表,现已被 ingest-behind 模式替代
优化器代价模型增强,支持感知 Index Condition Pushdown 过滤效果,提升索引选择准确性

参数变更

变更类型
参数名称
描述
修改
优化器开关集合新增 flag:
bka_keep_order:BKA JOIN 结果保持和外表一致的顺序,能够利用外表索引有序性进行有序输出,规避不必要的排序;
bka_firstmatch:firstmatch 计划支持 BKA JOIN 方式执行。
icp_cost_aware:支持 ICP 代价感知

语法变更

变更类型
语法
说明
新增
CREATE TABLE / ALTER TABLE 支持新增表选项 STORAGE_TIER = {AUTO_STORAGE | LOCAL_STORAGE | OBJECT_STORAGE},用于声明表或分区的存储层级。例如:CREATE TABLE t1 (...) STORAGE_TIER = LOCAL_STORAGE;
新增
ALTER TABLE 支持在分区级别修改存储层级:ALTER TABLE t1 MODIFY PARTITION (p1) STORAGE_TIER = OBJECT_STORAGE;
新增
分区表上支持全局二级索引(GSI)。CREATE INDEXCREATE TABLE 中索引定义可追加 GLOBAL 关键字声明全局索引。
新增
ALTER TABLEDROP PARTITION / TRUNCATE PARTITION 语句支持新增 UPDATE GLOBAL INDEXES 子句,用于修改分区的同时重建 GSI。示例:ALTER TABLE t1 DROP PARTITION p1 UPDATE GLOBAL INDEXES;
新增
新增范围缓存 Hint:/*+ USE_RANGE_CACHE(...) *//*+ NO_RANGE_CACHE(...) */,用于启用/禁用 range cache 估计 range 内的行数。
新增
优化器 Hint:CACHE_RESULT
新增子查询结果缓存 Hint:/*+ CACHE_RESULT */,取代原 SUBQUERY_CACHE 实验 Hint,用于标记子查询结果可缓存。
新增
PARALLEL(...) Hint 参数形态扩展
PARALLEL Hint 支持新的参数形态:可接受 parallel_scan_type(如 DYNAMIC_RANGEPARTITION),用于声明分区并行扫描策略。原 PARALLEL(n) 语义保持兼容。

数据字典变更

变更类型
数据字典
说明
变更
information_schema.KEYWORDS
视图内容同步新增记录:STORAGE_TIERLOCAL_STORAGEOBJECT_STORAGE,均为非保留关键字(RESERVED=0)。
变更
information_schema.KEYWORDS
视图内容同步新增记录:AUTO_STORAGE 为非保留关键字(RESERVED=0)。
新增
新增系统视图,用于查看 LogService MySQL Client 模式内存占用统计。
新增
新增系统视图,用于查看代理路由决策追踪信息。列:SEQQUERYFINAL_ACTIONTRACEMISSING_BYTES_BEYOND_MAX_MEM_SIZE
新增
新增系统视图,提供表分区的简要信息(轻量版)。
新增
新增系统视图,用于查看冷数据存储容量使用情况。
新增
新增系统视图,用于查看冷数据分层搬移任务进度。
变更
视图新增4列:rep_group_stats_cache_db_approximate_sizerep_group_stats_durable_db_approximate_sizestorage_tiertemperature_state,用于展示副本组的统计缓存大小、持久化统计大小、所处存储层级以及冷热温度状态。
变更
视图新增1列:storage_tier,用于展示数据对象所在的存储层级(AUTO_STORAGE/LOCAL_STORAGE/OBJECT_STORAGE)。
变更
新增1列:SUM_DISTRIBUTED,用于统计分布式执行次数汇总。
变更
在 attribute 字段说明中新增 large_query 类型说明。
变更
在 attribute 字段说明中新增 large_query 类型说明。

V21.6.1.0

版本更新说明

数据库管理

新增热点数据监控能力
新增 information_schema.META_CLUSTER_HOT_DATA_OBJECTS_HISTORY 系统表,用于记录数据对象的热度统计信息,包括字节速率、键速率、查询速率以及热度等级等指标;同时优化 TDStore 模块的指标统计和上报机制,完善 bytes_readbytes_writekeys_readkeys_write 等关键性能指标的采集和监控,帮助 MC 快速识别并优化热点数据,提升数据库运维监控的全面性和准确性。
优化在线 DDL 操作期间 RG 调度策略
在 fast online DDL 操作过程中,当不创建新资源组时,系统将限制 Region 所在资源组的调度操作,确保 DDL 操作的稳定性和可靠性。
优化慢查询日志监控粒度
增强 TDSQL 慢查询日志的监控能力,通过细粒度参数控制实现更精准的 RPC 性能问题定位和优化。
增强 Performance Schema 对 DDL 回滚操作的监控能力
修复了 DDL 语句在执行回滚操作时,其工作线程持有的元数据锁 (MDL) 无法在 performance_schema.metadata_locks 系统表中被观察到的问题。此修复提升了 DDL 操作的透明度和故障排查能力。
支持缩容场景下规格修改与内存释放
新增缩容场景接口,支持预先修改实例规格(内存与 CPU 核心数),并在缩容前主动释放空闲缓存内存,提升缩容成功率和资源利用率。
支持自动感知实例变配并调整表分布
当实例发生规格变更时,系统自动识别并重新计算分区表和非分区表的分布策略,实现数据在资源之间的均匀打散,提升资源利用效率和查询性能。
支持系统表跨节点关联查询与内存统计表全局配置
针对如 information_schema.processlist 等内存表,增加 shard 表属性,使用并行框架生成并行计划,获取所有节点的数据。使对这类表的 GROUP BYORDER BY 等聚合操作以及 JOIN 操作在全局层面进行,返回跨所有节点的统一聚合结果,而非每个节点的独立结果集,满足了跨节点统计分析的需求。
performance_schema.data_locksperformance_schema.data_lock_waitsinformation_schema.processlistinformation_schema.tdstore_part_ctxinformation_schema.tdstore_compaction_historyinformation_schema.tdstore_active_compaction_statsinformation_schema.tdstore_sst_propsinformation_schema.tdstore_cf_options 这些表默认为 shard 模式,查询所有节点数据。如果上述表查询没能生成并行计划,报错给客户端,用户可以关闭 tdsql_enable_shard_table 获取单节点数据。
查询时 shard 表和非 shard 表不可混合使用,即不支持 shard 表和非 shard 表 JOIN。
新增 hint /*+ shard_table */,使语句中所有表都按 shard 模式优化。
增强审计日志查询能力,支持通过 SQL 语句跨节点聚合查询所有 Hyper Node 的审计日志
扩展了数据库的审计功能,提供统一的 SQL 查询接口,允许用户通过单个查询语句获取分布在所有 Hyper Node 上的审计日志信息。此功能简化了在分布式架构下进行安全审计、行为分析或故障排查的操作,提升了运维与管理的便利性。
增强 EXPLAIN ANALYZE 输出,增加了 VERBOSE 选项,展示并行查询中每个工作线程 (Worker) 的详细性能数据
优化了 EXPLAIN ANALYZE 对并行查询计划的展示。现在,输出结果会包含每个并行工作线程的实际执行时间、处理行数等明细信息,并对排序、哈希连接、聚合等关键节点补充内存使用量、临时表大小等定制化性能指标。该功能为深入分析并行查询各阶段的负载均衡与资源消耗提供了有力工具。

扩展性与性能

优化 binlog 转换延迟性能
通过缩短 binlog 刷盘间隔、优化复制组等待关系和加快 MC Job 推进,显著降低 binlog 转换延迟至毫秒级,提升数据同步效率。
提升灾备实例回放速度
优化了 log_receiver_get_raft_log_base_size 参数的默认值,加快 Raft log 获取速率,从而提升灾备实例的回放性能。
引入 Hypergraph 优化器支持
新增 Hypergraph 优化器基线代码,为查询优化提供更先进的底层架构支持,提升复杂查询场景下的优化能力和处理效率。
为分区表 ADD INDEX 操作默认启用 ingest-behind 回填模式以提升性能
优化分区表创建索引的性能,默认采用 ingest-behind 回填方式,加速大表索引的构建过程。
优化 brpc stream 传输可靠性
为 brpc stream 流式传输增加重试机制,在网络异常场景下自动重试失败请求,提升数据传输的成功率和系统稳定性。
优化 TDStore 心跳上报指标准确性
改进心跳上报中的 bytes/keys 等指标统计方式,改为统计实际扫描的数据量,使指标更准确地反映节点的真实压力。
Serverless 场景功能增强
新增 Serverless 实例形态支持,可根据实际负载动态调整计算资源,优化资源利用效率。同时备份文件名新增 mcIdentifier 字段,提供更精确的备份标识,便于用户管理和追溯备份文件。
新增 MC 一对多管理能力
为降低小规格实例的资源成本、提高 MC 集群资源利用率,并为后续多租户方案奠定基础,本次更新实现了 MC(元数据控制器)集群一对多管理能力。该能力允许一个 MC 集群纳管多个 HyperNode(数据计算)集群。主要变更包括:1) MC 架构调整,支持在单个 RaftCluster 下管理多个子集群(Instance)的元数据与调度;2) 提供子集群注册、配置独立管理、冻结及卸载接口;3) 优化初始化流程,支持新集群动态接入。此功能为规划中的基础能力,后续将进一步完善资源隔离、迁入迁出等高级特性。
支持路由查询归并及多键值增强
通过实现路由查询的归并机制,在高并发场景下将多个相似的路由请求合并处理,有效降低 MC 的并发压力,提升系统整体性能和稳定性。该功能同时支持 key list 和 key range list 参数,提升了分布式查询的灵活性和性能,支持更复杂的多键值路由场景。
支持并行查询工作线程分组执行
SQLEngine 新增支持将并行查询任务分配到独立分组的工作线程中执行,有效提升复杂查询的处理性能,避免不同类型查询间的资源竞争。
支持 brpc 分组可观测性
新增 brpc 分组的监控观测能力,提供更细粒度的运行状态信息,助力问题排查和性能分析。
限制索引表 Block Range 统计数量
限制单个索引表的 Block Range Stats 个数,降低内存占用并提升查询性能。
支持行存超大事务写入
突破原有事务大小限制,通过优化存储和日志机制,大幅提升单次事务可处理的数据容量,满足大规模数据写入和高复杂度业务场景需求。
Region 元信息架构优化
将 Region 元信息管理从上层下沉至 TDStore 存储层,实现 Range 元信息的持久化存储和主备一致性保障,有效减少上层与存储层的交互开销,降低路由表大小并提升 Region 分裂合并性能,优化系统整体数据一致性和运行效率。
将 CDC 节点的持久化数据从 data_db 迁移至独立的 binlog_info_db
为提升存储架构的规范性与兼容性,将 CDC (Change Data Capture) 节点用于记录 Binlog 同步位点等信息的列族 (CF) 从共享的 data_db 中迁移至新建的、独立的 binlog_info_db。升级流程包含数据自动迁移。
优化快照安装(Install Snapshot)时数据准备的性能,避免大规模 L0->L1 强制合并
针对在 L0/L1 层数据量大的节点上执行快照安装(如迁移、分裂)时,因强制触发 L0 到 L1 的 manual compaction 导致长时间阻塞和缓写的问题,优化了快照数据准备流程。新方案避免了大规模的强制合并,提升了快照准备的效率和系统稳定性。
实施 TDStore KV 分离存储引擎系列性能优化
针对 KV 分离架构在长期运行后可能因 Blob 文件过多、Compaction 压力大而导致读写性能下降的问题,实施了一系列深度优化。包括优化 Blob 文件合并与垃圾回收 (GC) 的时机与效率,支持不同层级使用不同压缩算法,并减少关键路径的锁持有时间,从而显著提升了高负载下的稳定性和吞吐量。

语法与功能

优化 DDL 广播中 flush table 操作的执行策略
在 DDL 广播场景下,flush table 操作现在默认采用 DDL 优先策略,提升了 DDL 操作的执行效率和系统稳定性。
废弃参数 tdsql_enable_ddl_first_strategy,是否启用 DDL 优先策略通过参数 tdsql_ddl_block_modetdsql_ddl_recovery_block_mode 控制。
表扫描行数统计
SQL 引擎提供基本表的扫描行数统计功能,支持准确记录查询执行过程中扫描的行数,帮助用户分析查询性能和执行计划效率。
修复并行查询结果不一致问题
修复了并行查询 auto 模式与串行查询结果不一致的问题,确保并行查询功能的正确性和可靠性。
myloader 新增参数 tdsql_bulk_load_allow_sk
使用 myloader 导数据时,新增参数 tdsql_bulk_load_allow_sk(默认 false),控制导入期间二级索引是否允许存在。
引入 PQ_DISTRIBUTE 优化器 Hint,为复杂并行查询提供执行计划定制能力
新增 PQ_DISTRIBUTE Hint 语法,允许资深用户或 DBA 针对特定的 JOIN、GROUP BYORDER BY 或窗口函数等操作,定制其在并行执行时的数据分布与计算策略 (如 Gather、Repartition、Broadcast)。这为优化复杂并行查询计划、应对特殊数据分布场景提供了高级控制手段。
提供机制允许用户指定存储过程函数 (SP Function) 下推至并行 Worker 执行
为提升并行查询的灵活性,新增通过函数注释 (COMMENT) 来声明其在并行计划中的下推策略。用户可在注释中添加如 TDSQL_PROPERTY: {"parallel_safe": "safe"} 的字符串,将原本默认不能下推的自定义存储过程函数标记为可安全下推,从而使其能参与并行计算,优化查询性能。
扩展并行查询能力以支持非标量非关联子查询 (Uncorrelated Subquery) 的执行
增强了并行查询引擎的功能,使其能够支持包含非标量 (多行多列,并且在计划里使用了 materialization 执行策略) 且非关联子查询的复杂 SQL 语句并行执行。通过为 SUBQUERY Hint 引入新的参数 (PQ_PRE_EVALUATIONPQ_INLINE_EVALUATION) 和利用内部临时表共享子查询结果,提升了此类查询在分布式环境下的处理效率。

稳定性

修复 SET PERSIST 对部分 binlog_mysql 相关配置变量的联动更新问题
修复了使用 SET PERSIST 命令持久化修改数据库参数时,未能同步更新所有相关的 binlog_mysql 配置项的问题,确保配置变更的完整性和一致性。
Logservice 回放逻辑优化与订阅任务性能提升
优化 Logservice 回放逻辑切换机制,支持通过 dbms_admin.switch_logservice_replay_logic 函数动态切换新旧回放逻辑,确保主备数据一致性并提升回放稳定性。同时针对订阅任务中大量 DDL 场景进行性能优化,通过在 Raft 日志写入时标识 online DDL 产生的 DML 事务,移除不必要的等待机制,有效降低 binlog dump 延迟。
修复线程初始化异常导致的崩溃问题
修复了线程初始化时全局系统变量为空导致崩溃的问题,确保线程正常初始化。
支持事务提交 RPC 超时参数独立配置
新增参数支持单独为事务 commit RPC 设置超时时间,可有效规避因 TDStore 缓写导致的提交超时问题,提升事务稳定性。
优化垂直扩缩容期间的连接闪断问题
针对垂直扩缩容期间连接中断次数超出预期的问题(例如3节点场景下出现3次中断,而非预期的1次),本次更新进行了专项优化。目标是减少或平滑处理扩缩容过程中对客户端连接的影响,提升业务在资源弹性调整期间的连续性和体验。
扩展 LogReceiver 内存统计与限制范围
本次更新扩展了 LogReceiver 组件对 Raft Log 拉取过程的内存统计和限制范围。原有机制仅覆盖从 COS(对象存储)拉取日志的链路,现将其余从其他 TDStore 节点拉取日志的链路也纳入统一的内存统计和限制流程。此优化旨在更全面地控制日志恢复过程中的内存使用,避免因日志拉取导致的内存压力,提升集群在节点恢复、副本迁移等场景下的稳定性。

备份恢复

优化物理备份回档的节点数据分布均衡性
修复了在物理备份回档过程中节点选择算法的均衡性问题,避免数据集中到少数节点,显著提升了大规模数据恢复的整体速度。
优化回档实例参数一致性
回档实例现在会自动继承原实例的参数配置,确保回档后的数据库实例与原实例在参数设置上保持一致,提升数据恢复的准确性和一致性。
支持增量备份数据完整性校验
MC-Agent 提供数据完整性校验接口,可通过该接口对 MC 增量备份的数据进行完整性验证,确保备份数据准确可靠,提升备份恢复的安全性和可信度。

安全增强

支持 SSL 连接加密
新增数据库连接 SSL 加密功能,支持数据传输加密保护,提升连接安全性。

运维

新增 DBBrain 死锁可视化诊断能力
本次更新在 DBBrain 异常诊断中新增"死锁"诊断项。该功能基于系统表 information_schema.TDSTORE_PESSIMISTIC_DEADLOCK_DETAIL_INF
O(内核版本 ≥ 21.2.0),可查询并展示死锁环的详细信息,包括回滚事务 ID、申请/阻塞事务 ID、涉及的锁范围及对应的 SQL 语句,帮助用户快速定位导致死锁的业务 SQL 和资源竞争点,提升问题排查效率。
引入全链路诊断与跟踪 (Trace) 能力,优化问题定位效率
在数据库中引入结构化的全链路追踪框架,支持对慢查询 (例如超过1秒) 自动记录完整的调用链信息。通过系统表或工具可生成可视化诊断报告,帮助运维和开发人员快速定位 SQL 执行、RPC 通信及内部处理过程中的性能瓶颈与异常。
为 Shark 灾备切换/断开任务设置超时告警与回滚机制
针对灾备切换或断开流程中可能因任务卡住而导致主实例长期处于只读状态的风险,建立了任务超时告警机制,并引入了失败或超时情况下的自动回滚流程。该优化确保了在异常情况下能够及时恢复主实例的写入能力,提升了灾备操作的可靠性。
新增 MC 感知变配并自动调整表分布功能
本次更新引入一项新功能:元数据控制器(MC)能够感知集群的垂直扩缩容(变配)事件,并自动触发对分区表及非分区表的数据分布进行调整。该功能旨在减少变配后的人工干预,提升集群资源利用率和负载均衡的自动化水平。
增强 MC 注册节点规范管理
优化 MC 注册节点流程,增加 RPC version 校验机制,提升节点注册的安全性和兼容性。
新增复制组(RG)日志文件大小的监控指标与告警能力
新增监控指标 rep_group_log_size_bytes,通过 MC Agent 上报每个 Raft Node 的本地日志文件大小。此指标可用于监控日志文件的增长趋势,当文件持续增大时(通常意味着日志清理失败)可触发告警,帮助运维人员及时发现因备份、CDC 或 Follower 异常导致的日志堆积问题。
优化慢日志默认存储路径
将慢日志默认存储路径修改至日志盘,避免与数据层共用存储导致调度误判,提升系统稳定性与日志管理工作效率。

问题修复

修复 raft log 存储从 multi-raft-db 转换到 segment 存储类型时因 RG ID 超过 int32 范围导致的节点崩溃问题。
修复 INFORMATION_SCHEMA.LOGSERVICE_MYSQL_UNSUPPORTED_TABLE 视图错误包含视图类型表的问题。
修复批量键值范围构造过程中因路由变化导致的系统崩溃问题。
修复回档实例热点调度失效问题,确保回档后的数据分布均衡。
修复行锁超时参数 tdsql_lock_wait_timeout 设置不生效的问题,实际超时时间受 RPC 超时限制而非参数设置值。
修复 LogService 同步 UK 时可能发生的死锁问题。
修复部分系统变量候选值展示不准确的问题,包括字符集客户端变量展示过多无效字符集、utf8mb4 排序规则变量展示非该字符集的排序规则,以及双精度边界值格式化被截断。
修复 TDRlogBackuper 析构时存在的死锁风险,确保进程退出时所有 worker socket 能被正确中断。
修复进程退出时因 TDRlogBackuper 未提前关闭导致访问已释放资源产生的崩溃问题。
修复偶发场景下自动均衡触发 CDC log-receiver 搬迁与 DDL 建表约束冲突导致日志服务同步延迟的问题。
修复了灾备实例在发生主备切换 (switchover/failover) 并与原主实例断开关系后,再次尝试建立新的主备关系时,因 MC 日志 (Rlog) 存在空洞而导致任务失败的问题。解决方案包括提供数据完整性校验接口,并在数据不完整时触发全量备份。
修复了在容器化部署环境中,当节点的日志盘被完全写满后,SQLEngine 进程因启动过程中的日志初始化失败而无法正常启动的问题。
修复了用户从"单 RG 模式"(所有 Leader 集中在一个节点)切换至"Leader 分散模式"后,分区表的 Leader 未能自动重新打散的问题。此问题源于模式切换操作未触发内部的 Leader 再平衡检查逻辑,导致 Leader 仍集中在原节点,无法利用所有节点资源,影响负载均衡和性能。
修复了开启分裂(Split)特性的 Bulk Load(批量导入)任务结束后,相关副本组(RG)未正确释放占位符(placeholder)的问题。该问题会导致该 RG 的资源被持续占用,无法执行后续的迁移、平衡等任务。
修复 MC 组件中持久化 disk leader 耗时过长导致创建数据对象失败的问题。
修复多节点实例执行 DROP DATABASE 操作时,可能导致其他节点残留数据字典表数据的问题。
修复内部表升级逻辑中版本兼容性问题,确保系统表在正确版本阶段进行更新。
修复 bulk load 分裂任务在未完成状态下被错误标记为历史任务的问题。
修复 promote/demote 操作过程中 raft log 跨越 snapshot 时丢失角色信息的问题。
修复了查询优化器中因估算的扫描行数 (cost rows) 过小,导致 parallel_query_switch 的 force 开关强制并行计划失效的问题。
修复行值构造器子查询中 NULL 值处理不当导致查询结果错误的问题。
修复 Stop EngineAgent 脚本中获取进程号函数因残留进程导致进程号错误的问题。
修复克隆集群过程中未全程保证开关关闭的问题。
修复了在合并空资源组时未检查副本角色一致性导致合并操作失败的问题。
修复了节点资源组缓存清理机制中,在被动中止阶段结束后未正确清理节点记录的缺陷。
修复 DP 规则变更时 MC 短时间内连续下发相同切主任务导致切主失败的问题。
修复热点调度默认仅参考 bytes 作为度量指标导致调度策略不够全面的问题。
修复数据均衡功能在迁移过程中从源节点迁移过多数据的问题。
修复在 n+1 架构下使用广播同步表时,当 quorum 值大于节点数 n 时广播资源组在变配过程中卡住的问题。
修复 TDStore 之间 RPC 调用时使用错误超时时间配置的问题。

语法变更

变更类型
语法
说明
新增
SELECT * FROM tdsql_force_dist_shard(information_schema.processlist);
新增 tdsql_force_dist_shard 关键字,作用在表上,表示按 shard 表模式生成并行计划,获取全局的数据,一般对 processlist 这类内存表使用。

数据字典变更

变更类型
系统表和系统视图
说明
修改
OBJECT_SCHEMA 列的值从 NULL 变更为表对应的 database 名称。
OBJECT_NAME 列的值从 NULL 变更为表名称。
新增
引入工作线程分组功能后,VIEW_RESOURCE_TAG 视图用来记录系统中配置的各个业务类型的工作线程分组信息,包括分组标识、线程数量以及配置状态,帮助用户了解系统资源分配情况。
新增
引入工作线程分组功能后,VIEW_RESOURCE_TAG_THREAD_INFO 视图用于实时监控工作线程级别的任务队列状态。该视图展示了每个工作线程的任务积压情况,帮助用户深入了解系统内部任务调度和负载分布。
修改
timestamp 字段改名为 occurred_at,类型从 varchar 改为 timestamp
修改
timestamp 字段改名为 occurred_at,类型从 varchar 改为 timestamp