region-properties内容详细描述

tikv-ctl region-properties -r xxxxx命令输出的每项的内容具体含义是什么?比如mvcc.num_deletes和num_deletes的意思
mvcc.min_ts: 429442999677091842
mvcc.max_ts: 429442999677091842
mvcc.num_rows: 1044349
mvcc.num_puts: 1044349
mvcc.num_deletes: 0
mvcc.num_versions: 1044349
mvcc.max_row_versions: 1
num_entries: 1044349
num_deletes: 0
num_files: 1
sst_files: 453112.sst
middle_key_by_approximate_size:

2 个赞

https://github.com/tikv/tikv/blob/8077bb7f9bd7d12d66169096dfa9648a1f0e800d/components/engine_traits/src/mvcc_properties.rs

5 个赞

github才是yyds呀~

2 个赞

4.0 版本 region-properties 详解:

  • num-files: 本 region 涉及的 SST 文件个数

  • num-entries: 本 region 范围内, 在 rocksdb 内的 kv 数量,包括 tombstone, 不去重 。为 rocksdb 直接计算所得。

  • num-delete: (num-entries-mvcc.num_versions),本 region 范围内,在 rocksdb 内的 tombstone key 的数量, 该数据量越大,说明当前服务需要进行 compaction 了。

  • mvcc.* 主要记录 tikv 层的 mvcc 信息。每个 sst 的自定义数据聚合,各个 sst 自行统计结果,自定义计算,所有结果都不包含 rocksdb 的 delete(tombstone)

    • mvcc.min_ts:当前 region 范围内,所有数据中最早提交的版本号。关于版本号:

      • 每一次写入都会有一个版本号生成。

      • 每个 key 的版本号在同一时间可能会有多个

      • 旧的版本会随着 GC 进行被清理,最后留下一个最新写入的版本。比如 A 数据在系统开始就插入了,后面一直都没有任何写入操作,那么 A 数据的版本号则会一直是初次提交时的版本号。

    • mvcc.max_ts: 当前 region 范围内,所有数据中最晚提交的版本号。

    • mvcc.num-rows: 本 region 范围内, 去重的 key-value 个数。与 mvcc.num_versions 的区别是去重。可以理解为这个是 GC 做到极致后最后留的数据量。

    • mvcc.num-put: 本 region 范围内, 去重的 ,且类型是 txn-put (write_type == WriteType::Put )的个数。

    • mvcc.num_versions: 本 region 范围内,在 rocksdb 内所有版本的个数,类型是 rocksdb 的 put, Write类型 包括 PUT/DELETE, 不去重

    • mvcc.max_row_version: 版本最多的那个 key 的版本个数,数量多,说明 GC worker 可能跟不上版本生成的速度了

    • middle_key_by_approximate_size: 根据 size 估算中间 key ,主要用于 split region.

1 个赞

该主题在最后一个回复创建后60天后自动关闭。不再允许新的回复。