Giter VIP home page Giter VIP logo

Comments (9)

ongardie avatar ongardie commented on June 7, 2024

No need to mark views as special entries in the log

Can you explain? I think you still need this for dynamic membership changes. Or does JGroups provide some persistent storage that makes it unnecessary?

https://github.com/belaban/jgroups-raft/blob/master/doc/design/Election.txt

That link's broken.

from jgroups-raft.

belaban avatar belaban commented on June 7, 2024

Give me a few days to complete the design document (it's on a separate branch), and I'd be happy to get your feedback.
Once I have the full algorithm down, I'll try to model this in PlusCal/TLA+ to see if the model check reveals issues with this.

from jgroups-raft.

ongardie avatar ongardie commented on June 7, 2024

@belaban sounds good, looking forward to seeing it.

from jgroups-raft.

belaban avatar belaban commented on June 7, 2024

Need to rethink this; as #21 changed things slightly.

from jgroups-raft.

bwzhang2011 avatar bwzhang2011 commented on June 7, 2024

@belaban, any update with such issue ? we're looking forward to some raft implementation, hope 0.4 released not long in the future with those issues fixed and completed.

from jgroups-raft.

belaban avatar belaban commented on June 7, 2024

Sorry, but jgroups-raft has been dormant for a while now, and I don't expect to be able to spend much time on it in the near future.

from jgroups-raft.

valdar avatar valdar commented on June 7, 2024

Hi @belaban, this is pretty much what we discussed over IRC, were you able to finish the PlusCal/TLA+ modelling?

from jgroups-raft.

belaban avatar belaban commented on June 7, 2024

Hi @valdar Andrea: nope

from jgroups-raft.

belaban avatar belaban commented on June 7, 2024

OK, I finally changed this to take advantage of JGroups views:

  • An election is started only on a view change, by the coordinator
  • When the majority is reached, the coord solicits votes from all members
  • The member with the highest term (longest log) wins and becomes leader
  • If all logs are equal, then the leader is the oldest member (the coord)
  • Details are in [1]

This has a few advantages:

  • No election / heartbeat timers -> no concurrent elections and no constant traffic to prevent followers from becoming candidates
  • As a matter of fact, Candidate has been removed: we only have Leaders and Followers

The outcome should be the same as the original Raft election algorithm.

[1] https://github.com/belaban/jgroups-raft/blob/master/doc/design/Election.txt

from jgroups-raft.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.