- Apr 18, 2022
-
-
Yaroslav Dynnikov authored
-
Yaroslav Dynnikov authored
-
Yaroslav Dynnikov authored
This pach establishes a friendship between discovery and raft_join.
-
Yaroslav Dynnikov authored
-
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
-
- Apr 15, 2022
- Apr 14, 2022
- Apr 11, 2022
-
-
Alexander Tolstoy authored
-
- Apr 06, 2022
-
-
Yaroslav Dynnikov authored
Also, use brand new `tarantool::proc` macro for stored procedres.
-
-
- Mar 17, 2022
-
-
Sergey V authored
-
- Mar 16, 2022
-
- Mar 15, 2022
-
-
Sergey V authored
-
- Mar 14, 2022
-
-
Sergey V authored
-
- Mar 11, 2022
-
-
Georgy Moshkin authored
-
Georgy Moshkin authored
-
Georgy Moshkin authored
-
Sergey V authored
-
- Mar 10, 2022
-
-
Georgy Moshkin authored
-
Georgy Moshkin authored
- don't patch if tarantool-sys/patch-applied exists - use a single build directory for `cargo build` & `cargo check`
-
- Mar 09, 2022
-
-
Georgy Moshkin authored
-
Georgy Moshkin authored
-
Georgy Moshkin authored
-
- Feb 22, 2022
-
-
Yaroslav Dynnikov authored
This patch introduces two tests: 1. `couple.test_failover` reproduces heatbeat timeout on a follower that leads to a new election. 2. `threesome.test_leader_dispuption` simulates disconnected follower. It shouldn't disrupt the leader in this case. Leader death is already tested in `threesome.test_log_rollback`. Close https://gitlab.com/picodata/picodata/picodata/-/issues/25
-
Yaroslav Dynnikov authored
Also, fix the code to pass the test: 1. Use `replace` instead of `insert` when appending entries. They may be overridden. 2. Increase pool worker queue size. Raft node may send several messages within a single tick. Without this change the second message is dropped. The second change is a poorly designed workaround. Constant limit doesn't seem to be both cost-effective and reliable at the same time, but we don't have a better solution at the moment. Close https://gitlab.com/picodata/picodata/picodata/-/issues/26
-
Yaroslav Dynnikov authored
-
Yaroslav Dynnikov authored
It makes testing easier. Monkey patching the handler isn't necessary anymore. Instead, it's mocked now.
-
-
- Feb 21, 2022
-
-
Yaroslav Dynnikov authored
-
Yaroslav Dynnikov authored
Follower makes a proposal. It's applied on both instances. This patch also introduces a new API `picolib.raft_status`. Close https://gitlab.com/picodata/picodata/picodata/-/issues/24
-
Yaroslav Dynnikov authored
-
Sergey V authored
-
- Feb 18, 2022
-
-
Georgy Moshkin authored
+ tarantool-sys submodule + tarantool-patches directory + build.rs build script to patch and build tarantool + static linking with tarantool + refactoring for cli arguments
-
- Feb 16, 2022
-
-
Yaroslav Dynnikov authored
-
- Feb 15, 2022
-
- Feb 14, 2022
-
-
Yaroslav Dynnikov authored
This patch allows two nodes communicate over `net.box`. It implements C stored procedure `raft_interact` that is called on the server side. Close https://gitlab.com/picodata/picodata/picodata/-/issues/17
-
Yaroslav Dynnikov authored
This patch introduces `traft::ConnectionPool` for async nodes communication. Close https://gitlab.com/picodata/picodata/picodata/-/issues/18
-
Yaroslav Dynnikov authored
Now it's possible to set up initial topology via command-line arguments. Start one of several nodes (for example, two): ```bash picodata run --peer 127.0.0.1:3301 --peer 127.0.0.1:3302 ``` Single-instance configuration is started as before: ```bash picodata run ```
-