集群中的某一台机器挂掉了,会不会影响集群的DDL或者DML?

集群中的某一台机器挂掉了,会不会影响集群的DDL或者DML?

机器挂了,只要还能满足多数派,例如3台机器,挂了一台,是不会影响DDL或DML的。

1 个赞

那DDL变更的schema信息是通过内部虚拟表来记录的吗?还是日志?

DDL变更会记录到内部表,内部表的变更会写到日志,跟普通用户表的操作一样的。

1 个赞

3.x是会影响ddl的。4.x没有使用不确定是否已经改进。
我们企业版遇到了,给我们梳理过一个表格。
3个场景:
分区所在observer宕机;
租户内非ddl功能列表的observer宕机;
集群内其他节点宕机

都会有不同程度的影响。

可以理解为是 RT0 < 30s的问题,30秒内要重新选主,再切换角色的影响吗?

主可以切走。
但是宕机的机器不能恢复,就影响后续ddl了。

老师你好,下面张老师说的是会影响ddl,3.x版本到底会不会影响ddl的执行呢

会,很多不同场景,会影响不同类型DDL

obcp的受害者哈哈哈

3.x版本sql mode有个严格模式,要求副本数必须严格完整,例如集群是三副本,在DDL创建索引表时,会要求所有副本都补全了数据才会返回正确,否则节点故障,缺副本的情况下,会卡住DDL

呜呜,太多模棱两可的问题了

一台服务器挂了,分配到这台上的所有会话肯定是会断开的,对后续的dml是没有影响,这个有影响了还怎么谈高可用,另外ddl默认也是无影响的,有个参数是可以控制ddl是否有影响

ob集群开启strict模式在缺副本,一台服务器挂了,会禁止ddl操作,ob_create_table_strict_mode这个参数

上面张老师回复在他们项目中没有使用strict模式,列举了几种情况貌似都对ddl有影响呢

这个有具体的嘛? 正好验证下,我们这块poc时无影响,生产环境服务器挂掉还没遇到ddl的

内网有一个详细清单,几十条,拿不出来。。。