Skip to content
Snippets Groups Projects
  1. Apr 28, 2022
  2. Apr 18, 2022
    • Yaroslav Dynnikov's avatar
      Squash the huge patch · 10b6eb1c
      Yaroslav Dynnikov authored
      feat: raft peer discovery PoC
      
      chore: prevent C functions from being optimized out
      
      feat: improve peer discovery
      
      fix: fix tests after making instance_id arg mandatory
      
      Smart supevision with fork
      
      Make it work
      
      Under development
      
      IPC messages to supervisor
      
      One more little step: entrypoint enum
      
      Arrange IPC from child to supervisor
      
      Remove tarantool_main macro
      
      Persist snapshot
      
      Fix some fresh bugs
      
      Implement postjoin
      
      Discovery under refactoring
      
      Enhance discovery
      
      Working on discovery
      
      Fix all discovery bugs known so far
      
      Draft join algorithm
      
      Fail applying snapshot
      
      Joining a learner works
      
      Cleanup snapshot generation
      
      Reorganize traft code and call join automatically
      
      Change peer.commit_index type from option to u64
      
      Implement autopromotion to voter
      
      Implement read_index
      
      Take read_index before self-romotion
      
      Cleanup excess logs
      
      Cleanup logs and code
      
      Deep refactoring in progress
      
      Finish refactoring db schema
      
      Embed entries applying inside traft node
      
      Refactor raft node communication
      
      Replace fiber channel with a mailbox, which is a `Vec<_>` + fiber cond.
      It allows to batch raft commands in a more predictable way and makes
      the code less error-prone.
      
      Remove commented code
      
      Simplify raft nodes interaction over net_box
      
      Eliminate `traft::Message` struct because its internals aren't used.
      Instead, serialize `raft::Message` using protobuf.
      
      Batch ConnectionPool requests
      
      1. Send messages in batches.
      2. Allow changing connection uri.
      3. Close unused connections after `inactivity_timeout`.
      
      Enhance the raft node
      
      1. Collect results from raft node
      2. Fix initial bootstrap which used to fail due to fiber race.
      3. Wrap raft storage operations in a transaction.
      
      Bump tarantool module
      
      Add documentation draft
      
      Cleanup warnings
      
      Try fixing tests
      
      Fix test_storage_log
      
      Fix test_traft_pool
      
      Fix luatest single and couple
      
      Start fixing threesome test
      
      Implement concurrent join requests handling
      10b6eb1c
Loading