我读到了关于分布式共识的协议,并遇到了Paxos。它说你要求帕克索斯参加领导人选举。主张相同的文章。所以,我的问题是,当卡桑德拉是一个环形架构而不是主从架构时,为什么它需要一个领导人选举机制。此外,如果答案是肯定的,那么在卡桑德拉魔戒中,领导者的角色是什么。当Gossip协议用于环中的通信时。
本文展示了一个使用Cassandra的轻量级事务功能实现领导人选举算法的示例。这与为Cassandra选择主节点无关。
领导人选举系统仅用于轻量级事务。轻量级交易允许用户以性能价格获得隔离。
考虑以下示例:系统为用户管理资金。假设一个用户想在一个帐户中插入100美元。
当前余额(0美元(+新资金(100美元(=100美元
另一个用户希望更新相同的帐户。他把20美元存入那个帐户。他的计算发生在第一个人插入他的钱之前。
当前余额(0美元(+新资金(20美元(=20美元
人们预计,两次插入资金后的余额将为120美元。然而,如果没有领导人选举,一次写入将覆盖另一次,根据最后一次写入,您将获得100美元或20美元。
领导人选举允许节点在单个资源上同步其更新,以确保每个计算都是孤立的。"如果是0$,我将更新该值。"完成选择后,一个节点可以协调特定请求的事务。
在我们的示例中,100$将被更新,但20$将失败,用户需要重试。
请记住,这种领导者架构与主/从架构明显不同。这没有单一的失败点,因为领导者可以是特定请求的任何节点。
关于这个主题的更多信息,你可以在这里找到。