1

我正在阅读关于分布式共识的协议并遇到了Paxos。它指出您需要 Paxos 来进行领导者选举。文章声称相同。所以,我的问题是,当 Cassandra 是环形架构而不是主从架构时,为什么它需要领导者选举机制。此外,如果答案是肯定的,那么领导者在 Cassandra 环中的作用是什么。当 Gossip 协议用于环中的通信时。

4

2 回答 2

3

本文演示了一个使用 Cassandra 的轻量级事务功能实现领导者选举算法的示例。这与为 Cassandra 选择主节点无关。

于 2018-07-30T11:39:39.650 回答
1

领导者选举系统用于轻量级交易。轻量级交易允许用户以性能为代价获得隔离。

考虑以下示例:系统为用户管理资金。假设一位用户想要向帐户中插入 100 美元。

当前余额 (0$) + 新资金 (100$) = 100$。

另一个用户希望更新同一个帐户。他将 20 美元存入该帐户。他的计算发生在第一个人插入他的钱之前。

当前余额 (0$) + 新资金 (20$) = 20$。

人们会期望两次插入资金后的余额为 120 美元。但是,如果没有领导选举,一个写入将覆盖另一个写入,您将留下 100 美元或 20 美元,具体取决于哪个写入最后完成。

领导者选举允许节点在单个资源上同步它们的更新,以确保每个计算都是隔离的。“如果它是 0$,我将更新该值” 选举已完成,以便一个节点可以协调特定请求的事务。

在我们的示例中,100$ 将被更新,但 20$ 将失败,用户将需要重试。

请记住,这种领导者架构与主/从架构明显不同。这没有单点故障,因为领导者可以是特定请求的任何节点。

您可以在此处找到有关此主题的更多信息。

于 2018-07-31T08:53:36.973 回答