omnipaxos
omnipaxos copied to clipboard
OmniPaxos is a distributed log implemented as a Rust library.
By using snapshots in the prepare phase (#38), entries or a snapshot of a server that was previously decided might be overwritten by the `AcceptSync`. However, we cannot determine what...
`omnipaxos_runtime` was initially designed for users to just have something that works out of the box. We can replace this by doing a proper example instead with tokio in `omnipaxos_core/examples`....
Let user define an interval of min and max for heartbeat timeout. BLE can then adaptively learn an appropriate timeout e.g. average of last 10 rounds etc
Create a unified `OmniPaxos` struct that has the BLE and SequencePaxos structs as private fields instead. We previously had separated BLE and SequencePaxos as described in the pseudo code. However,...
Please make sure these boxes are checked, before submitting a new PR. - [X] You ran `rustfmt` on the code base before submitting (on latest nightly with rustfmt support) -...
The tests in [recovery_test.rs](https://github.com/haraldng/omnipaxos/blob/master/omnipaxos_core/tests/recovery_test.rs) are currently ignored, the reason is that they do not correctly answer the futures of the last proposals. The futures are stored as a LinkedList and...
The current trim() of PersistentStorage is implemented as a temporary solution. The only function that can remove elements from commitlog, `truncate(offset)` does not remove the first element as it only...
Currently `OmniPaxos` reads directly from the user-provided `Storage` for variables such as the `promised_round` and `decided_idx`. This will be inefficient if `Storage` is storing these in persistent storage. Thus, `OmniPaxos`...
Have a compilation flag that allows for a "cheap" prepare phase where followers do not send their suffix but only the metadata. The leader then requests the suffix from the...