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