帮你快速理解、总结文档立即下载

TDSTORE_SNAPSHOT_FLUSH_INFO

最近更新时间:2026-08-18 19:12:07
我的收藏

功能

information_schema.TDSTORE_SNAPSHOT_FLUSH_INFO 视图用于查看存储节点各列族(Column Family)的 Flush(刷盘)触发原因统计信息。
TDSQL Boundless 存储引擎采用多列族(Multi-CF)架构,不同类型的数据分别写入独立的列族。每个列族拥有独立的 Memtable 和 LSM 层级结构,主要记录以下触发 Flush 的场景,会将 Memtable 中的数据落盘为 SST 文件:
后台周期性触发。
分裂合并任务触发。
手动触发。
频繁的 Flush 可能会产生较多体积较小的 SST 文件,进而增加 L0 层文件数量,带来读放大和 Compaction 压力。该视图按节点和列族维度统计各类 Flush 的触发次数,帮助您定位 SST 小文件堆积、写入毛刺等问题背后的具体原因。

适用版本

TDSQL Boundless V21.6.4.0 及以上版本。

字段说明

TDSTORE_SNAPSHOT_FLUSH_INFO 视图各字段的含义如下表所示:
字段名
类型
描述
NODE_NAME
varchar(64)
该行统计所属的存储节点名称。
CF_NAME
varchar(64)
该行统计对应的列族(Column Family)名称。
CF_ID
bigint unsigned
该列族对应的内部 ID。
SNAPSHOT_FLUSH_COUNT
bigint unsigned
保存快照触发的 Flush 次数。
PERIODIC_FLUSH_COUNT
bigint unsigned
后台周期性触发的 Flush 次数。
FORCE_FLUSH_COUNT
bigint unsigned
手动触发的 Flush 次数。
SPLIT_MERGE_FLUSH_COUNT
bigint unsigned
RG 分裂合并任务触发的 Flush 次数。
OTHER_FLUSH_COUNT
bigint unsigned
除上述几类以外,其他原因触发的 Flush 次数。
LAST_FLUSH_UNIX_MS
bigint unsigned
该列族最近一次 Flush 的发生时间,为 Unix 时间戳,单位为毫秒。
LAST_FLUSH_REASON
varchar(64)
该列族最近一次 Flush 的具体触发原因。
LAST_L0_FILE_COUNT
bigint unsigned
该列族最近一次 Flush 完成后,L0 层的文件数量。
注意:
各类 Flush 次数为累计值,自节点启动或该列族创建以来持续累加,不会自动清零。
该视图汇聚展示集群内所有存储节点、所有列族的统计信息。

示例

示例 1:查看集群内各节点、各列族的 Flush 触发原因统计

SELECT NODE_NAME,
CF_NAME,
SNAPSHOT_FLUSH_COUNT,
PERIODIC_FLUSH_COUNT,
FORCE_FLUSH_COUNT,
SPLIT_MERGE_FLUSH_COUNT,
OTHER_FLUSH_COUNT
FROM information_schema.TDSTORE_SNAPSHOT_FLUSH_INFO;

示例 2:定位快照安装触发 Flush 次数最多的列族

SELECT NODE_NAME,
CF_NAME,
SNAPSHOT_FLUSH_COUNT,
LAST_L0_FILE_COUNT
FROM information_schema.TDSTORE_SNAPSHOT_FLUSH_INFO
ORDER BY SNAPSHOT_FLUSH_COUNT DESC
LIMIT 10;

示例 3:查看某个列族最近一次 Flush 的具体信息

SELECT NODE_NAME,
CF_NAME,
LAST_FLUSH_REASON,
FROM_UNIXTIME(LAST_FLUSH_UNIX_MS / 1000) AS LAST_FLUSH_TIME,
LAST_L0_FILE_COUNT
FROM information_schema.TDSTORE_SNAPSHOT_FLUSH_INFO
WHERE CF_NAME = 'cf_1';

注意事项

若怀疑 L0 层小文件堆积、写入延迟升高等问题与快照安装有关,可结合该视图中 SNAPSHOT_FLUSH_COUNTLAST_L0_FILE_COUNT 的变化趋势进行排查,判断是否为快照安装频繁触发 Flush 所致。
该视图仅提供统计计数,不提供每次 Flush 的详细历史记录。