Expand description
OmniPaxos is a library for implementing distributed replicated logs with strong consistency guarantees that provides seamless reconfiguration while also being completely resilient to partial network partitions. This library provides the distributed log abstraction as a black-box for the user, where the user only has to provide its desired network and storage implementations.
Crate feature flags
The following crate feature flags are available. They are configured in your Cargo.toml.
batch_accept
- Batch multiple log entries into a single message to reduce overhead.logging
- System-wide logging with the slog cratetoml_config
- Create an OmniPaxos instance from a TOML configuration fileserde
- Serialization and deserialization of messages and internal structs with serde. Disable this if you want to implement your own custom ser/deserialization or want to store data that is not serde-supported.
Modules
- Trait and struct related to the leader election in Omni-Paxos.
- OmniPaxos error definitions
- macros
macros
Macros in the omnipaxos crate - The different messages OmniPaxos servers can communicate to each other with.
- Traits and structs related to the backend storage of an OmniPaxos server.
- unicache
unicache
Traits, structs, and types related to the unicache. - A module containing helper functions and structs.
- A module containing helper functions and structs.
Structs
- Configuration for an
OmniPaxos
cluster. - The
OmniPaxos
struct represents an OmniPaxos server. Maintains the replicated log that can be read from and appended to. It also handles incoming messages and produces outgoing messages that you need to fetch and send periodically using your own network implementation. - Configuration for
OmniPaxos
. - Configuration for a singular
OmniPaxos
instance in a cluster.
Enums
- An error returning the proposal that was failed due to that the current configuration is stopped.
- An error indicating a failed proposal due to the current cluster configuration being already stopped or due to an invalid proposed configuration. Returns the failed proposal.