Skip to main content

Module config

Module config 

Source
Expand description

Storage configuration and settings

§Storage Simulation Configuration

This module provides configuration for storage simulation, following FoundationDB’s battle-tested simulation approach and TigerBeetle’s deterministic testing patterns.

§Performance Parameters

ParameterConfig FieldDefaultDescription
IOPSiops25,000I/O operations per second limit
Bandwidthbandwidth150 MB/sMaximum throughput in bytes/sec
Read latencyread_latency50-200µsTime for read operations
Write latencywrite_latency100-500µsTime for write operations
Sync latencysync_latency1-5msTime for sync operations

§Fault Injection

FaultConfig FieldDefaultReal-World Scenario
Read faultread_fault_probability0%Disk read errors, ECC failures
Write faultwrite_fault_probability0%Write failures, disk full
Crash faultcrash_fault_probability0%Sudden power loss simulation
Misdirected writemisdirect_write_probability0%Write lands at wrong location
Misdirected readmisdirect_read_probability0%Read returns wrong data
Phantom writephantom_write_probability0%Write appears to succeed but doesn’t persist
Sync failuresync_failure_probability0%fsync fails

§Configuration Examples

§Fast Local Testing (No Chaos)

use moonpool_sim::storage::StorageConfiguration;

let config = StorageConfiguration::fast_local();
// All faults disabled, minimal latencies

§Full Chaos Testing

use moonpool_sim::storage::StorageConfiguration;

let config = StorageConfiguration::random_for_seed();
// Randomized fault parameters for comprehensive testing

§FDB/TigerBeetle References

  • Simulated file operations: FDB sim2.actor.cpp
  • Storage faults: TigerBeetle storage simulation
  • Crash consistency: FDB AsyncFileKAIO, TigerBeetle deterministic testing

Structs§

StorageConfiguration
Configuration for storage simulation parameters.