关于副本数配置问题咨询

配置咨询:
如果 max-replicas配置为5,但是集群因为故障,变成只有4个tikv或者3个tikv实例,能正常运行吗?

超过半数副本存活,就可以正常提供服务

1 个赞

5个副本的话,3个及以上tikv存活都没有影响。

1 个赞

超过半数存活可以正常提供服务

半数原则,3活着,少于3就停了

看的是存活的副本数,而不是tikv数,5副本不管有多少个tikv,极端情况下同时宕机3台都有可能丢失数据。比如10个tikv5副本,宕机2个tikv没有问题,但是宕机3台可能就有部分region副本数超过一半丢失了。如果你是5副本并且5个tikv,那剩余4个tikv或者3个tikv实例都是没问题的。

1 个赞

嗯嗯嗯嗯

5个tikv的话保障三个节点至少

  1. 超过半数可用应该怎么理解,比如配置7个副本,故障了2个,剩下5个副本,那是不是3/5写成功就算成功,还是一定要是7的多数,也就是4/7,才算成功。
  2. 个人理解,tikv实例数是可以为偶数,副本数才不允许为偶数,不知道理解是否正确
  1. 超过半数可用应该怎么理解,比如配置7个副本,故障了2个,剩下5个副本,那是不是3/5写成功就算成功,还是一定要是7的多数,也就是4/7,才算成功。
  2. 个人理解,tikv实例数是可以为偶数,副本数才不允许为偶数,不知道理解是否正确

  1. 需要4/7才成功。
  • 集群设置的是7副本而不是5个,所以计算集群的半数时是以7为准,站在集群的角度来看就比较好理解了。
  • 配置7个副本,故障了2个,剩下5个副本,也就是说故障时剩下的5个存活副本需要写入成功4个,集群的分布式事务(2pc)才算写成功。
  • 其实只要有4个副本存活(超过了半数),集群的服务还是正常的;一旦低于4个即少于半数了,那么集群服务将不可用,但数据还在。不管怎么样,出了一个故障的时候就要及时处理了,可以避免极端情况的出现。
  1. 基本正确,不过要不少于3台。
  • 比如你有6台tikv机器,那么你可以根据需要把数据副本设置为3或者5。
1 个赞

至少3