我们正在考虑部署一个集群数据库,我们希望在系统中向上和向下扩展节点数量,某些系统具有一个、两个或三个节点。Percona Clustered DB 具有加权仲裁机制。我认为可以选择权重来打破对称性,从而始终避免裂脑。但是,我找不到任何文献说这让我怀疑自己。
这是想法。为每个节点分配以下权重之一:127 + 0、127 + 1、127 + 2、127 + 4、127 + 8、127 + 16、.. 等等。
给定集群中节点的两个不相交的子集a和b,我认为必须维护的两个要求是:
1) 如果一个子集a比另一个b有更多的节点,那么它的权重之和w(a)将总是大于另一个集合的权重之和。
|a| > |b| --> w(a) > w(b)
2)对称性破坏..给定任何两个子集,那么权重将不相等。这是避免偶数节点的脑裂的要求。
|a| = |b| --> w(a) != w(b)
这种方法有什么问题吗?如果有,它们是什么?
更多问题描述...
- 理想情况下,我们会为多个节点配置提供相同的解决方案以节省测试时间。
- 节点权重不能动态更改(它们可以.. 但它并不完全安全.. Percona 集群的限制以及可能的仲裁算法?)。
- Percona 将在节点完全关闭后重新计算总节点权重。