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

  • Trait and struct related to the leader election in Omni-Paxos.
  • OmniPaxos error definitions
  • macrosmacros
    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.
  • unicacheunicache
    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.