tencent cloud

TDSQL Boundless

V21.0.x

PDF
聚焦模式
字号
最后更新时间: 2026-04-17 11:56:51

V21.0.0

版本更新说明

扩展性与性能

扩展 Stale Read 能力
新增系统变量控制 Stale Read 读取数据的副本角色,新增 Session 变量控制 Stale Read 读取数据陈旧程度。
将原属于 RocksDB 中 Mutable 的 DBOptions 和 CFOptions 在 MySQL 参数体系中修改为支持动态修改,以提升运维便捷性
在旧版本中,支持通过 MySQL 参数来查看/修改 TDStore 层的配置参数。出于保守考虑,对于 RocksDB 原生的、标记为 Mutable 的 DBOptions 和 CFOptions,其在 MySQL 层对应的参数都被设置为了只读状态。在本版本中,参数体系升级已基本完成,因此将在 RocksDB 中标记为 Mutable 的参数,在 MySQL 层也改为支持动态修改。具体的参数有:
三个 DB 实例(DataDB、RaftDB、MonitorDB)的 DBOptions:stats_persist_period_secstats_history_buffer_sizestrict_bytes_per_syncdaily_offpeak_time_utc
五个 CF(system、user、local、raft、monitor)的 CFOptions:experimental_mempurge_thresholdblob_compression_type compressionlast_level_temperaturesample_for_compressionbottommost_compression
支持通过 MySQL OPTIMIZE TABLE 语句对指定表及相关索引进行数据 Compaction
对指定表的 OPTIMIZE TABLE 操作会触发该表及相关索引的数据范围的 Compaction。可以加速老版本数据的回收。如果该语句在列存节点上执行,则可起到加速列存数据转储的作用。
将大事务 Write Batch 转为 Memtable 的优化应用到 RocksDB 原生实例中
将大事务优化应用到 RocksDB 原生实例。新增 GLOBAL 变量 tdstore_enable_local_storage_tran_wbi_to_memtable 作为开关。
新增列存副本产品形态,提升面向 AP 复杂 SQL 分析能力
列存副本位于独立的 Columnar 只读节点上,通过 Raft Log 从 Hybrid 节点的行存副本上自动同步数据到列存节点,异步通过 Compaction 机制生成列存数据。列存节点提供独立 VIP,支持向量化 SQL 引擎,通过向量化引擎提升复杂 SQL 分析能力。
列存节点兼容 MySQL 语法,由于存储格式和向量引擎的特性,暂时未做到100%兼容 MySQL。
支持通过向量化引擎来查询列存中的数据,支持 TDStore 和向量化 Schema 的自动转换,并行扫描,一致性读。
列存节点变量说明:列存节点有独立的控制变量(详细见列存参数变更),控制列存节点引擎行为。这些变量由 htap_xxxtdstore_htap_xxx 前缀标记。默认情况下这些变量只控制列存节点行为,对行存无影响。其中两个变量例外:
htap_routing_strategy:开启关闭列存向量化引擎,默认开启。关闭向量引擎后(SET htap_routing_strategy=default),列存节点会从行存节点读数据,会影响行存节点 IO。
htap_enable_ve_execution_fallback:列存查询报错回退行存执行,默认关闭。开启后(SET htap_enable_ve_execution_fallback=on),列存节点引擎查询异常,自动回退从行存节点读数据,会影响行存节点 IO。
支持列存节点的重做
在对等(存算)节点页面提供列存 Pod 重做的能力,通过先缩后扩的方式重建列存 Pod。
列存元数据与相关调度的支持
支持元数据层创建列存副本,实现节点均衡/自动 Merge 等列存调度逻辑的适配。

稳定性

存储引擎 RocksDB 内核升级,从 RocksDB 5.18.3升级至8.11.3
RocksDB 内核版本从5.18.3升级至8.11.3,系统稳定性增强,代码层次结构更加合理。
优化动态合并过小 SST 文件的能力
由于 SST 边界对齐默认打开,在库表非常多的场景下,LSM-Tree 前面几层会产生非常多的小 SST 文件,引发稳定性和性能问题。优化动态合并过小 SST 文件的能力:当 LSM-Tree 相邻两层采用相同的压缩算法时,也考虑多选取一些相邻的小 SST 文件进行 Compaction,以更大程度地减少小 SST 文件的总数量。(在该优化前,相邻两层采用相同的压缩算法时是不考虑合并小 SST 的)
修改数据字典缓存对列长度限制
max_dd_cache_size 修改为100,减少数据字典缓存占用内存的上限值。

运维

列存节点特殊 Hint 支持
针对列存节点的 SQL 查询增加 Hint/Outline 干预执行计划的手段。支持变量控制 /*+set_var*/ 和链接顺序控制 /*+join_order*/ 控制。
新增 RocksDB Scan 相关的监控指标
针对每个 TDStore 节点,新增 data_db_bytes_scan_readdata_db_num_keys_scan_read 两个指标来记录内部 RocksDB Scan 的信息。
新增 CALL DBMS_ADMIN.TDSTORE_FORCE_FULL_COMPACTION 命令触发 user_cf 全量 Compaction
执行 CALL DBMS_ADMIN.TDSTORE_FORCE_FULL_COMPACTION; 会触发 user_cf 的全量 Compaction。如果在列存节点执行,则会触发全量数据转储到列存。

问题修复

修复 MC 切主时卡住导致无法对外提供服务的问题,增加相关耗时检测,若耗时超过特定阈值则 MC Kill Self 以触发 etcd 重新选主。
修复调整 max_dd_cache_size 长度后,DDL 压力情况下内存占用偏高的问题。
修复 TDSQL 的 tdsql_use_online_copy_ddl 默认设置为 true 时部分 Online DDL 无法执行的问题。对于这种错误,非分区表会捕获并抛出具体的异常信息,但分区表只抛出 ERROR 8510 (HY000): SQLEngine system error 'Unknown error occurs'
修复当叠加一个节点磁盘满、另外一个节点进入只读、增量备份积攒了很多的场景时,可能导致即使增量备份追赶上来后也无法释放 Raft Log 占用的磁盘空间的问题。

数据字典变更

变更类型
系统表和系统视图
说明
新增
用于记录列存 compaction 和 drop table 任务的执行过程与结果
新增
用于记录列存文件删除的过程与结果
新增
用于展示列存节点中列存文件的相关信息
新增
用于统计一张表的行存数据量和列存数据量以及二者比例

帮助和支持

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

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

文档反馈