问题描述
我和我的团队发明了一种方法来解决工程中双节点系统的裂脑问题,并发布了paper。我们不是一个有名的团队,但是我们觉得这个方法很新很实用,所以想和大家讨论一下,看看大家是否认为这是一个重大创新。
我们试图解决的问题
让我先描述一下我们要解决的问题。在双节点分布式系统中,如果节点之间的链路发生故障,并且没有第三个节点,那么由这两个节点组成的系统就无法进行兼具可用性(活性)和一致性(安全性)的领导者选举。这使得设计一个两节点的分布式存储或数据库系统变得不可能。
为了解决这个问题,工程师想了很多办法。有些在两个节点之间使用更可靠的硬件来避免链路故障,有些使用第三个节点或共享介质进行仲裁。但这对硬件提出了额外的要求。
我们提出的解决方案
在本文中,我们提出了一种新方法,它既不依赖于额外的第三个节点或共享介质,也不依赖于可靠的链接。这种方法被称为“基于级别的领导者选举算法”。但是论文中没有使用这个名字。
假设这是一个部分同步(或最终同步,或半同步)的分布式存储和数据库系统,由S个服务器节点组成。有 C 个客户端节点访问它们。
- 当S>=3时,S服务器节点可以使用Paxos、Raft等任何统一的共识算法来选举leader。在这种情况下,可以保证可用性(活性,最终会选出领导者)和一致性(安全,任何时候都没有不同的领导者)。
- 当S=1时,客户端节点也会参与leader选举过程。只要客户端节点数C>=1,总节点数不小于3,在部分同步系统中可以使用统一共识算法选举leader。但是,只有服务器节点有投票权和被选举权,而客户端节点只有投票权,没有被选举权。
- 当S
请求
希望你能帮我们看看这个方法是否可以算是一个重大的创新。此外,我们计划将基于级别的领导者选举原语添加到当前的存储和数据库请求/响应协议中。如果有人有兴趣,请告诉我。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)