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§
- ballot_
leader_ election - Trait and struct related to the leader election in Omni-Paxos.
- errors
- OmniPaxos error definitions
- macros
macros
- Macros in the omnipaxos crate
- messages
- The different messages OmniPaxos servers can communicate to each other with.
- storage
- Traits and structs related to the backend storage of an OmniPaxos server.
- unicache
unicache
- Traits, structs, and types related to the unicache.
- util
- A module containing helper functions and structs.
- utils
- A module containing helper functions and structs.
Structs§
- Cluster
Config - Configuration for an
OmniPaxos
cluster. - Omni
Paxos - 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. - Omni
Paxos Config - Configuration for
OmniPaxos
. - Server
Config - Configuration for a singular
OmniPaxos
instance in a cluster.
Enums§
- Compaction
Err - An error returning the proposal that was failed due to that the current configuration is stopped.
- Propose
Err - 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.