- 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 ```
-
-
Yaroslav Dynnikov authored
-
Sergey V authored
-
Sergey V authored
-
Sergey V authored
-
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 11, 2022
-
-
Yaroslav Dynnikov authored
1. Merge `on_ready` handler with the `loop_fn` body into the larger `raft_main` function. 2. Get rid of debug logs.
-
- Feb 10, 2022
-
-
Sergey V authored
-
- Feb 09, 2022
-
-
Yaroslav Dynnikov authored
1. Prefer using `"str".into()` since it's briefer. 2. Preserve `"str".to_owned()` if type inference can't help.
-
- Feb 07, 2022
-
-
Yaroslav Dynnikov authored
-
- Feb 04, 2022
-
-
Yaroslav Dynnikov authored
-
Yaroslav Dynnikov authored
1. Fix PICOLIB_AUTORUN env var naming. 2. Add an assertion that it works as expected. 3. Show output if listing tests fails. 3. Run inner tests with listen port :0 to avoid "address already in use" errors.
-
- Feb 01, 2022
-
-
Yaroslav Dynnikov authored
It's a part of networking development. Also, this patch refactors error handling introduced in previous commit (see 96aba97a). A single struct is replaced with the enum, common for all `try_from` functions.
-
- 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.
-
Yaroslav Dynnikov authored
-
Yaroslav Dynnikov authored
-
Yaroslav Dynnikov authored
Run it: ``` PICODATA_RAFT_ID=2 cargo run run ``` This is a pre-requisite for further two-node configuration development. This is a temporary hack until fair joining is implemented. Close https://gitlab.com/picodata/picodata/picodata/-/issues/16
-
Yaroslav Dynnikov authored
1. Trait `From` for `traft::row::Entry` now accepts a value instead of a reference in order to avoid unnecessary clones. A caller makes a clone itself if necessary. 2. Trait `From` implementation for `traft::Message` now accepts a reference instead of a value. Anyway, it uses msgpack under the hood and doesn't affect performance.
-
- Jan 28, 2022
-
-
Yaroslav Dynnikov authored
1. Remove `get_stash` function - it doesn't show anything interesting. 2. Adjust logging levels. Also split log level initialization away from schema.
-
Sergey V authored
-
Sergey V authored
-
- Jan 26, 2022
-
-
Yaroslav Dynnikov authored
For ambiguous concepts (such as Entry, Message) use prefix notation instead of suffixes.
-