【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】OBserver
【 使用版本 】
【问题描述】请教一下,我有一个5个zone的oceanbase集群,部署在3个机房,zone的架构是2+2+1,主节点在zone1的机器上。
问题1:假如机房1和机房2之间的网络断了。此时机房1和机房3之间是正常的,满足大数据节点存活;同样的机房2和机房3 也是满足大多数节点存活。会发生脑裂问题吗?
问题2:对于5节点的集群,如果我在创建租户的时候,tenant1创建为5副本模式,tenant2创建为3副本模式(F@zon1,F@zone2,F@zone3)。如果此时zone1和zone2节点服务器挂了,tenant1是否受影响、tenant2是否受影响、整个集群是否受影响?
【附件】
我的理解,在4.0版本之前,分布式协议paxos是按照租户下面表的分区来进行clog日志同步的,这个时候,租户2的表大多数分区已经出问题,影响到同步了吧。不过我也没试验过,没有那么多机器测试 
绵阳
#6
每个节点都有一份备份数据,只要租户至少还有一个节点,数据是不会受到影响的
绵阳
#8
很抱歉,这边跟开发同学确认,三节点集群的租户2的问题回答错误,只剩一个节点的时候根据Paxos 协议多数派机器挂掉,该租户不会再继续提供服务。
ob68
#10
对于SSTABLE和memtable的写操作都在内存执行且到阈值后才落盘,如果机器宕机,那如何保证数据不丢失?这个阈值是多少呢?
很有趣的问题,可以看看这个: OB 集群网络假想单边故障实验
数据是延迟落盘,但是事务日志(clog
)是一直在同步的,使用 multi-paxos
协议(多数派同步成功即认定结果有效)。所以少数节点宕机,该节点上的提供服务的数据(日志流主副本对应的分区)OB 会立即切换到另外的节点上提供读写服务。
ob68
#13
我是否可以理解为咱们OB日志写的方式和oracle的redo原理差不多?
clog
可以类比 redo
, clog
的多数派同步效果类似于 ORACLE DG 1主2备的 最大保护模式同步但又多一点不一样的地方。
OB 没有 archivelog
,OB 日志归档说的是 clog
的日志备份。
OB 里看不到像 redo log
和 archivelog
那样直接的日志文件。clog
文件比较复杂,每个租户都有,文件格式可以不用管。
1 个赞