Skip to main content

Crate quoracle

Crate quoracle 

Source
Expand description

Quoracle: A library for constructing and analyzing read-write quorum systems

This library provides tools for defining, optimizing, and analyzing quorum systems used in distributed systems research. It supports:

  • Expression algebra for defining quorum systems using operators (OR, AND, Choose)
  • Linear programming-based optimization for finding optimal read/write strategies
  • Multi-metric analysis including load, capacity, network overhead, and latency
  • Resilience calculation for fault tolerance analysis
  • Heuristic search for discovering optimal quorum configurations

§Examples

use quoracle::*;
use std::time::Duration;

// Create nodes
let a = Expr::Node(Node::new('a'));
let b = Expr::Node(Node::new('b'));
let c = Expr::Node(Node::new('c'));

// Build a quorum system where reads need any single node
// and writes (the dual) need all nodes.
let qs = QuorumSystem::from_reads(a + b + c);

assert_eq!(qs.read_resilience(), 2);
assert_eq!(qs.write_resilience(), 0);

// Find the load-optimal strategy for 50% reads.
let fr = Distribution::fixed(0.5).unwrap();
let limits = StrategyLimits::default();
let strategy = qs.strategy(
    Objective::Load,
    Some(&fr), None, &limits, 0,
).unwrap();

let load = strategy.load(Some(&fr), None).unwrap();
assert!(load > 0.0);

Re-exports§

pub use distribution::Distribution;
pub use error::Error;
pub use expr::choose;
pub use expr::majority;
pub use expr::And;
pub use expr::Choose;
pub use expr::Element;
pub use expr::Expr;
pub use expr::Node;
pub use expr::Or;
pub use quorum_system::Objective;
pub use quorum_system::QuorumSystem;
pub use quorum_system::Strategy;
pub use quorum_system::StrategyLimits;
pub use search::search;

Modules§

distribution
Workload distribution types for modeling read/write ratios.
error
Error types for the Quoracle library
expr
Expression algebra for defining quorum systems
geometry
Geometric types for piecewise linear functions.
lp
Linear programming solver abstraction for optimization
quorum_system
Quorum system types for modeling read-write distributed systems.
search
Heuristic search for optimal quorum systems