Crate omnipaxos

Source
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 crate
  • toml_config - Create an OmniPaxos instance from a TOML configuration file
  • serde - 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
macrosmacros
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.
unicacheunicache
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§

ClusterConfig
Configuration for an OmniPaxos cluster.
OmniPaxos
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.
OmniPaxosConfig
Configuration for OmniPaxos.
ServerConfig
Configuration for a singular OmniPaxos instance in a cluster.

Enums§

CompactionErr
An error returning the proposal that was failed due to that the current configuration is stopped.
ProposeErr
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.