TDSQL Boundless TDSTORE_SNAPSHOT_FLUSH_INFO

information_schema.TDSTORE_SNAPSHOT_FLUSH_INFO 视图用于查看存储节点各列族(Column Family)的 Flush(刷盘)触发原因统计信息。

相关产品
TDSQL Boundless 产品页,含版本规格、价格与购买入口。

一、功能

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 层的文件数量。

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

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

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

SELECT NODE_NAME, CF_NAME, SNAPSHOT_FLUSH_COUNT, LAST_L0_FILE_COUNTFROM information_schema.TDSTORE_SNAPSHOT_FLUSH_INFOORDER BY SNAPSHOT_FLUSH_COUNT DESCLIMIT 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_COUNTFROM information_schema.TDSTORE_SNAPSHOT_FLUSH_INFOWHERE CF_NAME = 'cf_1';

七、注意事项

·若怀疑 L0 层小文件堆积、写入延迟升高等问题与快照安装有关,可结合该视图中 SNAPSHOT_FLUSH_COUNT 与 LAST_L0_FILE_COUNT 的变化趋势进行排查,判断是否为快照安装频繁触发 Flush 所致。

·该视图仅提供统计计数,不提供每次 Flush 的详细历史记录。

赞 (0)
上一篇 4天前
下一篇 4天前