关于2F1A可用架构的讨论

对于OceanBase 2F1A的架构,如果其中一个F出现故障了,1F1A架构还能正常提供服务吗?如果能提供服务,那么如何满足多数派?

1 个赞

在业务层面上,仲裁方案保证数据在多数派副本(4 个全功能型副本+ 1 个仲裁服务)或全部副本(2 个全功能型副本+ 1 个仲裁服务)上强同步,并在半数全功能型副本故障的情况下,自动进行故障降级,保证数据不丢失的同时业务持续可用。

参考资料:https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002012821

@论坛小助手 可以做更详细补充

1 个赞

在2F1A架构下,如果其中一个全功能型副本(F)发生故障,剩下的1个全功能型副本和1个仲裁服务仍然能够形成多数派,继续提供服务。在这种情况下,系统会自动进行故障降级,确保数据不丢失并且业务持续可用。然而,一旦剩余的那个全功能型副本也发生故障,就会导致数据丢失,因为仲裁成员本身不存储Redo日志。因此,2F1A架构在其中一个F故障后虽然还能继续提供服务,但其可用性会显著下降。

更多信息请查看:

  1. 高可用 FAQ
  2. 仲裁高可用方案
  3. 物理备库
  4. 高可用概述

所谓的仲裁副本是可以进行投票的,只是没有SSTABLE的数据,不能提供读服务,但是会同步CLOG日志,参与多数派的投票,这样2F中的一个F出现故障,剩余的1F和1A依然可以进行投票,依然满足多数派,集群依然可用,只是集群的性能会下降,出现服务降级

1 个赞

应该不同步 clog 吧

描述错误,仲裁副本不存储任何日志,也没有 MemTable 和 SSTable,只参与投票,资源开销少

挂了1F,业务可以正常使用的,1A,只是投票的,没有数据存储的

我这就是 2F1A的,挂了一个1F,如果是leader,那就切换,然后业务继续用,会波动下。如果是非leader,那业务还是继续用,波动都没有

1 个赞