功能
INFORMATION_SCHEMA.TDSTORE_LSM_COMPACTION_PRESSURE 用于展示集群中所有 hybrid 节点中,各个 ColumnFamily 的 Compaction 压力和写入限流状态,包括 L0 层文件堆积情况、待 Compaction 数据量、memtable 内存占用及写入限流原因,用于定位具体是哪个 ColumnFamily 导致写入延迟或写入被限速/停止。适用版本
TDSQL Boundless V21.6.4.0及以上版本。
字段说明
字段名 | 类型 | 描述 |
NODE_NAME | VARCHAR(513) | SQLEngine 节点的名称。 |
CF_NAME | VARCHAR(193) | ColumnFamily 的名称。 |
CF_ID | BIGINT UNSIGNED | ColumnFamily 的 ID。 |
LEVEL0_FILE_COUNT | BIGINT UNSIGNED | L0 层的 SST 文件数量。 |
LEVEL0_SIZE_BYTES | BIGINT UNSIGNED | L0 层所有 SST 文件的总大小,单位字节。 |
PENDING_COMPACTION_BYTES | BIGINT UNSIGNED | 预估待 Compaction 处理的数据量,单位字节。 |
ACTIVE_MEMTABLE_BYTES | BIGINT UNSIGNED | 当前活跃 memtable 占用的内存大小,单位字节。 |
ALL_MEMTABLES_BYTES | BIGINT UNSIGNED | 包括活跃与不可变 memtable 的总内存占用,单位字节。 |
NUM_IMMUTABLE_MEMTABLE | BIGINT UNSIGNED | 尚未 flush 完成的不可变 memtable 数量。 |
MEMTABLE_LIMIT_DELAYS | BIGINT UNSIGNED | 因 memtable 内存超限而触发写入限速(delay)的累计次数。 |
MEMTABLE_LIMIT_STOPS | BIGINT UNSIGNED | 因 memtable 内存超限而触发写入停止(stop)的累计次数。 |
DB_WRITE_STALL_STATUS | BIGINT | 当前该 ColumnFamily 所属 DB 实例的写入限流状态: 0表示 delayed,1表示 stopped,2表示 normal(无限流)。 |
NEED_SPEEDUP_COMPACTION | BIGINT UNSIGNED | 是否需要加速 Compaction, 1表示是,0表示否。 |
WRITE_STALL_REASON | VARCHAR(1024) | 触发写入限流的具体原因说明。 |
BEING_COMPACTED_FILE_COUNT | BIGINT UNSIGNED | 该 ColumnFamily 中正在被 Compaction 的文件数量。 |
使用说明
查询时可通过
WHERE CF_ID = xxx 等值条件进行下推过滤,仅拉取指定 ColumnFamily 的压力数据。TDSTORE_LSM_COMPACTION_PRESSURE 视图没有层级(LEVEL)维度,仅支持 CF_ID 字段的等值条件下推。示例
查询所有 ColumnFamily 中已触发写入限流(
DB_WRITE_STALL_STATUS 不为2)的记录,定位造成写入抖动的具体 ColumnFamily。tdsql>select node_name, cf_id, cf_name, level0_file_count, pending_compaction_bytes,db_write_stall_status, write_stall_reasonfrom information_schema.tdstore_lsm_compaction_pressurewhere db_write_stall_status < 2;+---------------+-------+----------------+--------------------+---------------------------+------------------------+---------------------+| NODE_NAME | CF_ID | CF_NAME | LEVEL0_FILE_COUNT | PENDING_COMPACTION_BYTES | DB_WRITE_STALL_STATUS | WRITE_STALL_REASON |+---------------+-------+----------------+--------------------+---------------------------+------------------------+---------------------+| node-1-001 | 20 | user_region_20 | 42 | 8589934592 | 0 | l0_file_count_limit |+---------------+-------+----------------+--------------------+---------------------------+------------------------+---------------------+1 row in set (0.01 sec)
查询指定 ColumnFamily(CF_ID = 20)的完整压力指标。
tdsql>select * from information_schema.tdstore_lsm_compaction_pressure where cf_id = 20\\G*************************** 1. row ***************************NODE_NAME: node-1-001CF_NAME: user_region_20CF_ID: 20LEVEL0_FILE_COUNT: 42LEVEL0_SIZE_BYTES: 2684354560PENDING_COMPACTION_BYTES: 8589934592ACTIVE_MEMTABLE_BYTES: 67108864ALL_MEMTABLES_BYTES: 134217728NUM_IMMUTABLE_MEMTABLE: 1MEMTABLE_LIMIT_DELAYS: 0MEMTABLE_LIMIT_STOPS: 0DB_WRITE_STALL_STATUS: 0NEED_SPEEDUP_COMPACTION: 1WRITE_STALL_REASON: l0_file_count_limitBEING_COMPACTED_FILE_COUNT: 61 row in set (0.01 sec)