tiflash 表tombstone

为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:
【 TiDB 使用环境】
tidb:v4.0.13

【概述】 场景 + 问题概述
查看tiflash副本表发现有两个表是tombstone的,将这两个表replica置为0,再重新同步,还是这样,查看granfa上也有两个sombstone store,但实际用pd去查询没有down状态的store

查询tiflash表是有1个副本的,但是是tombstone的,但是看执行计划还是走tiflash的。。



image

若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。

1赞

information_schema.tiflash_tables 里面的 is_tombstone 字段跟 pd 查询到的 tombstone 是两个完全不同的概念哈。

information_schema.tiflash_tables 里面的 is_tombstone 字段,表明的是 TiDB 里面的一张表或者一个分区,被 drop table / drop partition 之类的 DDL 操作,在逻辑上 drop 了。但是数据还没有超过 GC 时间,所以该表或者分区处于 tombstone 状态。超过 GC 时间之后,才会被真正地物理删除。

pd 查询到的 tombstone store,指的是 tikv 或者 tiflash 节点的状态。

嗯嗯,其实这个概念我是理解的,那tiflash_tables 我就明白了,我看了那两个表有多条记录,表是正常的,GC后 is_tombstone的应该会被清理掉

这个grafana的is_tombstone是store的概念,而且我用pd ctl命令去看了,是正常的6个store,并且我用remove-tombstone清理了下,但是感觉granfana还是显示错误

嗯嗯,Grafana 上显示的确是有问题,不过对其他逻辑应该没有影响。我反馈下~

嗯嗯好的,目前确实只是显示问题,无其他影响,谢谢大佬

执行过 remove-tombstone 之后,grafana 上还是显示有 2 个 Tombstone Store 是吗?

PD 中 tombstone 后的 store 的元信息仍然存储着,防止 TiDB 意外访问一些 stale 的 store 信息时出现异常。
pd 的 store 命令不会显示被 tombstone 的 store。但是 Grafana 上会显示出来。一般不会对系统正常运行产生问题。

另外,可以使用 pd-ctl 执行下面的命令清理 tombstone 状态的 store:store remove-tombstone。清理完之后,Grafana 上应该就不会显示有 tombstone了。

https://docs.pingcap.com/zh/tidb/stable/pd-control#store-delete--label--weight--remove-tombstone--limit--limit-scene-store_id---jqquery-string

执行过这个的,还是显示tombstone

是的,几天前执行了好几遍,当时执行完后,grafana中tombstone由2降到1个了,后续不管执行多少遍这句,都不能清理grafana上的1个tombstone