1. 30 Jul, 2018 1 commit
    • Yossi Gottlieb's avatar
      Add raft_cancel_snapshot(). · 3badd2a0
      Yossi Gottlieb authored
      This cancels the snapshot operation and reverts back to the state we
      were in before raft_begin_snapshot().
      
      It is useful for cases where the snapshot operation fails.  It is the
      caller's responsibility to make sure the FSM state remains intact of
      course.
      3badd2a0
  2. 12 Jul, 2018 1 commit
  3. 10 Jul, 2018 1 commit
    • Yossi Gottlieb's avatar
      Add raft_pop_entry(). · 876f8d7c
      Yossi Gottlieb authored
      This is required to allow append-only persistent log formats, where
      raft_append_entry() is called but may be reverted later on.
      876f8d7c
  4. 20 Jun, 2018 2 commits
  5. 11 Jun, 2018 4 commits
  6. 08 Jun, 2018 1 commit
  7. 07 Jun, 2018 1 commit
    • Willem Thiart's avatar
      Remove RAFT_LOGTYPE_SNAPSHOT · 700eebe6
      Willem Thiart authored
      The RAFT_LOGTYPE_SNAPSHOT was a bad design choice. It's better to not
      have this marker entry so that users don't have to check for the log
      entry type in the callbacks. Also, loading a snapshot correctly created
      this marker entry, but the compaction side did not. It's better to
      remove this log type than to fix this asymmetry.
      
      Fixes the following edge cases:
      - Server crashes if the last snapshot index is N and a appendentries
      message pops entries all the way back to index N.
      - Server sends an appendentries message with an invalid prev_log_idx and
      prev_log_term, causing the peer to crash.
      700eebe6
  8. 24 May, 2018 2 commits
  9. 16 May, 2018 2 commits
  10. 07 Mar, 2018 1 commit
  11. 04 Mar, 2018 2 commits
    • Yossi Gottlieb's avatar
      Add a per-entry custom user data field. · 519d47ad
      Yossi Gottlieb authored
      This is useful to allow leaders to pass context between
      raft_recv_entry() and a subsequent execution of the entry (after it was
      committed) as an applylog callback.
      
      This allows an optimized use pattern when entries received locally on
      the leader can be used without going through an unnecessary
      deserialization.
      519d47ad
    • Yossi Gottlieb's avatar
      Add custom heap management hooks. · b4430b25
      Yossi Gottlieb authored
      b4430b25
  12. 08 Jan, 2018 2 commits
  13. 21 Nov, 2017 4 commits
  14. 20 Nov, 2017 1 commit
  15. 30 May, 2017 1 commit
  16. 25 Oct, 2016 2 commits
  17. 11 Jun, 2016 5 commits
  18. 19 May, 2016 1 commit
  19. 13 May, 2016 3 commits
  20. 16 Mar, 2016 3 commits