- Apr 18, 2022
-
-
Yaroslav Dynnikov authored
Remove prctl dependency that is not available on mac.
-
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 14, 2022
-
-
Sergey V authored
-
- Mar 15, 2022
-
-
Sergey V authored
-
- Mar 10, 2022
-
-
Georgy Moshkin authored
-
- Mar 09, 2022
-
-
Georgy Moshkin authored
-
- Feb 22, 2022
-
-
- 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 14, 2022
-
-
-
Yaroslav Dynnikov authored
Module `traft::storage` doesn't panic anymore. Instead, it gracefully returns errors. All unwraps are moved to the calling functions. Also, the code is supplemented by tests, and debug logs are removed.
-
- Feb 04, 2022
-
-
Yaroslav Dynnikov authored
-
- Jan 31, 2022
-
-
Yaroslav Dynnikov authored
1. Replace `From` trait for raft::Entry with the `TryFrom`. Fairly handle its errors in the storage. 2. Replace some other unwraps with "expect" with a more clear message. 3. Support all of `raft::EntryType` variants.
-
- Jan 20, 2022
-
-
Yaroslav Dynnikov authored
Tarantool specificities make it difficult to set up usual rust tests. Picolib is coupled with tarantool symbols and compiled as a dylib, so it can't be linked to a stand-alone binary. This patch introduces another way of testing. All tests (called inner) are already built into dylib and exposed in the tarantool console: ``` tarantool> picolib.test --- - test_version: 'function: 0x41f32400' test_traft_storage_RaftEntryRow: 'function: 0x41f32550' ... ``` The new integration test `inner.rs` iterates over them and runs each one in a separate tarantool instance. See also: commit 6610e5cb
-
- Jan 18, 2022
-
-
Yaroslav Dynnikov authored
-
- Jan 17, 2022
-
-
Sergey V authored
-
- Dec 24, 2021
-
-
Yaroslav Dynnikov authored
-
Yaroslav Dynnikov authored
- There's a fiber which ticks logical clock. - There's a `raft_propose` API exposed in the Tarantool console. Close https://gitlab.com/picodata/picodata/picodata/-/issues/7 Close https://gitlab.com/picodata/picodata/picodata/-/issues/8
-
- Dec 20, 2021
-
-
Yaroslav Dynnikov authored
-
- Dec 14, 2021
-
-
Yaroslav Dynnikov authored
-
Yaroslav Dynnikov authored
-
- Dec 13, 2021
-
-
Yaroslav Dynnikov authored
-
- Dec 07, 2021
-
-
Yaroslav Dynnikov authored
-
- Dec 03, 2021
-
-
Yaroslav Dynnikov authored
It used to panic if the env variable wasn't set. Also, this patch covers it with tests.
-
Yaroslav Dynnikov authored
-
- Nov 23, 2021
-
-
Yaroslav Dynnikov authored
The control flow of picodata looks as following: Picodata binary -> exec tarantool -l picodata -> libpicodata.so -> ... Since the libpicodata is a shared lib loaded by tarantool, we can't pass it arguments as usual. At first, tarantool parses them by itself and rejects uknown arguments. Secondly, it spoils argv array. To overcome these two issues, this patch introduces argparse on behalf of the picodata binary, and puts parsed values into the environment variables. P.S. Thihs is how command line args look from within libpicodata: ```console $ tarantool -l picodata /dev/null --opt1 foo --opt2 bar Hello from rust lib arg[0] tarantool arg[1] /dev/null arg[2] --opt1 arg[3] foo arg[4] --opt2 arg[5] bar arg[6] --opt2 arg[7] bar ```
-
Yaroslav Dynnikov authored
This patch introduces the new cargo package - picodata. The package consists of two parts: - The `picodata` binary does some env magic and executes `tarantool -l picodata`. - The `libpicodata` dylib is the starting point for further development.
-
- Nov 22, 2021
-
-
Yaroslav Dynnikov authored
-