tikv组件都挂掉后,集群数据库还可以插入数据

为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:

【TiDB 版本】
v4.0.10
【问题描述】
将集群的tikv的数据目录都删除后,tikv组件都down掉了,但是为什么数据库还可以插入数据?



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

Down 状态是 PD 与 TiKV 之间的心跳连接断开超过 max-store-down-time 设置的时间,但是 TiKV 进程仍然是有可能运行的,比如 pd 与 tikv 之间有时区差异也有可能导致这个问题。可以通过 ps -ef 检查 tikv 进程,以及看下 tikv 和 pd 的log ,还有时区排查一下。

好的,谢谢,我看了一下,tikv进程还在

你好,我重新部署集群尝试了一下,然后down掉两个中心的tikv组件(kill进程),这个就直接不可以使用了,理论上来说不是应该还有一个tikv存在,集群应该还可以使用的吧?


目前 3 副本的情况,3 个副本挂掉两个,只剩 1 个副本的话就不满足 raft 多数派原则了,对应的 region 会不可用。

哦,也就是说,我这里有3个数据中心6个tikv节点来存储3个副本,同时挂掉2个数据中心4个tikv节点时,region都丢失了2个副本,这个就不满足了raft多数派送原则,这样就导致了所有region不可用了,是吧!

那么我有一个想法:我有5个tikv节点,副本数3,此时挂掉3个tikv节点时,那么是不是存在一种情况:有的region有2个副本在剩下的两个好的tikv节点上,此时,这些region也是可以用的是吧!:thinking:

我这里有3个数据中心6个tikv节点来存储3个副本,同时挂掉2个数据中心4个tikv节点时,region都丢失了2个副本,这个就不满足了raft多数派送原则,这样就导致了所有region不可用了

这个得看具体的 label 设置

那么我有一个想法:我有5个tikv节点,副本数3,此时挂掉3个tikv节点时,那么是不是存在一种情况:有的region有2个副本在剩下的两个好的tikv节点上

是的,存在部分 region 可能还有两个副本存活,这部分 region 是可以访问的。

ok,好的,谢谢啦,上述的3个数据中心的就是优先使用数据中心做区分,也就是说3副本会调度掉不同的数据中心

嗯嗯好的

对了,突然想到,大神,打扰一下,这个存在部分 region 可能还有两个副本存活,这个存活的region是随机的,是吧:thinking:

是的,可能性都是存在的

ok,好的,谢谢,辛苦了

对了,如果我是4个tikv,4个副本的话,挂掉两个也应该不可用是吧,因为不满足raft多数派送原则了,是吧

嗯是的

ok,三克油啦

:handshake::handshake::handshake:

关于这个tikv集群的容量计算是这么算的嘛?
假如一个tikv有10G,我有10个tikv,就可以存100G数据量,但是我是3副本的,那我只能存100/3G数据量吧,
5副本的话,是只能存100/5=20G数据量吧

嗯是的

ok,:blush:

:handshake::handshake::handshake: