1. 22 Aug, 2022 1 commit
    • Ozan Tezcan's avatar
      Improve snapshot support (#121) · 7d66a156
      Ozan Tezcan authored
      - raft_load_snapshot_f(): Changed order of arguments term and index
      to be inline with raft_begin_load_snapshot().
      
      - Refactored raft_begin_load_snapshot(). Now, inside this function, 
      current server's node flags are cleared. Previously, application had to
      take care of it. e.g Application had to clear inactive flag on a snapshot.
      
      - Added raft_restore_snapshot() to let libraft know that application has
      loaded a snapshot.
      7d66a156
  2. 18 Apr, 2022 1 commit
  3. 03 Apr, 2022 1 commit
  4. 24 Mar, 2022 1 commit
  5. 15 Nov, 2021 1 commit
  6. 22 Sep, 2021 1 commit
    • Shaya Potter's avatar
      fix read queue test to be more accurate (#59) · 36efee07
      Shaya Potter authored
      * fix read queue test to be more accurate
      
      1) each server's set of nodes, keeps the max msg_id its seen from that node when that node has been later
      1a) because of this get_max_seen now operates on a server's nodes, not on the server itself b
      
      2) virtraft encodes the leader id into the "arg" (with a user redefinable multiplier) it sends as part of the callback, so when we get the callback, we can know what leader its for and check its voters for correctness.
      36efee07
  7. 19 Aug, 2021 1 commit
  8. 03 Aug, 2021 1 commit
    • Shaya Potter's avatar
      Improve entry "vote/append couting" in the case of a leader demotion (#13) · 99e3d4a6
      Shaya Potter authored
      Before, we only did "auto commit" of entries if the number of voters == 1.  As we can have a "non voting leader", this is wrong, as the voter can be another node, not the leader, therefore we add a condition to ensure that the leader is a voter too, so that we know that the leader is the single voter.
      
      99e3d4a6
  9. 30 Jul, 2021 1 commit
    • Shaya Potter's avatar
      remove REMOVE_NODE log type and include its semantics in DEMOTE (#25) · d4d15e04
      Shaya Potter authored
      this commit changes libraft's from using the DEMOTE_NODE log entry which would then initiate a REMOVE_NODE log entry on the DEMOTE's commit, to only using a REMOVE.  
      
      * add the removal of the active node flag on append of REMOVE and (add back if reverted)
      * modify is_voting to check for active state as well
      
      this enables simplifying appending and reverting nodes, as we shouldn't be touching voting state, (as a removing node might not be voting yet), only its active state.  and as the is_voting check also now checks for active state, simplifies a lot of code that manually tested both.
      
      * add a test for reversion of a non voting node removal
      
      previously, the code could not handle demoting/removing a non voting node, as demote would want to unset the voting flag (which a non voting node obviously doesn't have), and would therefore fail an assertion.
      
      with the new code, we no longer unset the voting flag in removal, and this test make sure both the is_voting and is_active return as expected through a process of add/removal/revert
      d4d15e04
  10. 19 Dec, 2018 1 commit
    • Yossi Gottlieb's avatar
      Read request handling support. · 84362fa7
      Yossi Gottlieb authored
      This makes it possible to request a consistent read without having to
      commit it as a log operation.
      
      For every read request an AE heartbeat is delivered and a quorum
      response is expected.
      84362fa7
  11. 20 Jun, 2018 1 commit
  12. 24 May, 2018 1 commit
  13. 16 May, 2018 1 commit
  14. 04 Mar, 2018 1 commit
  15. 08 Jan, 2018 1 commit
  16. 21 Nov, 2017 1 commit
  17. 28 Aug, 2016 1 commit
  18. 11 Feb, 2016 1 commit
  19. 25 Jan, 2016 1 commit
  20. 20 Dec, 2015 2 commits
  21. 19 Dec, 2015 1 commit
  22. 18 Nov, 2015 1 commit
  23. 30 Sep, 2015 1 commit
  24. 15 Aug, 2015 1 commit
  25. 10 Aug, 2015 1 commit
  26. 01 Aug, 2015 1 commit
  27. 01 May, 2015 1 commit
  28. 02 Feb, 2015 1 commit
  29. 28 May, 2014 1 commit
  30. 13 Jan, 2014 2 commits
  31. 22 Dec, 2013 1 commit