Question
tidb 集群初始化时,默认设置的副本数是 3。如果初始化集群的 tikv 数量是 1,此时数据库表都是 1个 region group 都是 1 peer,按理不符合 raft 的大多数原则,但实际集群是可以读写的。这个是什么原理?
因为相当于 1 副本。配置的 3 实际上相当于没生效。
2 个赞
tidb 集群初始化时 可以装1pd 1tidb 1tikv的,高可用都没了
那就是没有高可用了,当测试环境吧
我这测试环境就这个样子
1 副本
相当于你的设置覆盖了默认值。
如果tikv实例是2呢?有试过的吗?
初始化集群的 tikv 数量是 1,就是没有高可用了呗
我理解的这个时候应该就是1副本了
KV实例是一个和 raft 副本是一个 是2个事情吧?
单节点,就算放在一个实例上,实例挂也不高可用
没有高可用后,不涉及这个问题
想看到官方关于这块机制的说明。比较有意思:如果此时扩展 tikv 实例的数量,region 的 peer 数是随之增加的,直到满足 placement-rules 的定义
在琢磨 raft 中
没有高可用了
按理我没做任何“主动”设置,猜是 tidb 数据库对这里有一些“机制”,没发现 raft 提这块内容
一个 region 会是 2 个 peer。此时如果强制down 掉一个 tikv 实例,读写会报错 ERROR 9005 (HY000): Region is unavailable
说的是 默认设置的副本数是 3,预期 一个 region 包括 3 个 peer。当初始化的时候,如果只有一个 tikv 实例,实际生成的 peer 只有 1个,但此时数据库是可用的
此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。