(评论)
(comments)

原始链接: https://news.ycombinator.com/item?id=43983385

一个Hacker News帖子讨论了FlowG,一个避免使用Raft共识算法的分布式系统。作者linkdd最初表示放弃Raft的原因是Raft只允许一个领导者。 kikimora澄清说Raft可以有多个领导者,每个状态空间分区一个。在一个Raft集群中,节点可以同时是某些分区的领导者,而其他分区的副本。 linkdd承认了这个澄清,并承认他对Raft的理解很肤浅。他进一步解释说,Go的hashicorp/raft库的复杂性以及领导者选举失败的实例(可能是由于用户错误,PEBKAC)是他决定在FlowG中放弃Raft的促成因素。

相关文章
  • FlowG – 分布式系统无需Raft(第二部分) 2025-05-14
  • (评论) 2025-04-18
  • (评论) 2025-04-20
  • (评论) 2025-04-22
  • 2025-05-15

  • 原文
    Hacker News new | past | comments | ask | show | jobs | submit login
    FlowG – Distributed Systems without raft (part 2) (david-delassus.medium.com)
    20 points by linkdd 1 day ago | hide | past | favorite | 4 comments










    Author ditched Raft because it can only have one leader. But Raft has many leaders, one per partition. After reading the article I’m not sure author knows what they are doing.


    Emphasis on "one per partition", which if I understand correctly as "network partition", means that in the absence of network partition, there is one leader.

    I do have only a surface understanding of Raft, and I'm learning while doing yes.



    In Raft state space is split into partitions. Each partition gets it leader. For example in a cluster of 3 nodes and 65536 partitions each node is a leader for 1/3 of partitions with two others acting as replicas. This way each node simultaneously leader for some partitions and replica for others.


    Gotcha, thank you for the clarification.

    I'd add though, that the "one leader" thing was not the only reason why I ditched Raft. The Go library hashicorp/raft was quite complex to use, and I've had a lot of situations where the cluster failed to elect a leader, and ending up with a corrupted state.

    This might be a PEBKAC issue of course.







    Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact



    Search:
    联系我们 contact @ memedata.com