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
| Parameter | Config Field | Default | Description |
|---|---|---|---|
| IOPS | iops | 25,000 | I/O operations per second limit |
| Bandwidth | bandwidth | 150 MB/s | Maximum throughput in bytes/sec |
| Read latency | read_latency | 50-200µs | Time for read operations |
| Write latency | write_latency | 100-500µs | Time for write operations |
| Sync latency | sync_latency | 1-5ms | Time for sync operations |
§Fault Injection
| Fault | Config Field | Default | Real-World Scenario |
|---|---|---|---|
| Read fault | read_fault_probability | 0% | Disk read errors, ECC failures |
| Write fault | write_fault_probability | 0% | Write failures, disk full |
| Crash fault | crash_fault_probability | 0% | Sudden power loss simulation |
| Misdirected write | misdirect_write_probability | 0% | Write lands at wrong location |
| Misdirected read | misdirect_read_probability | 0% | Read returns wrong data |
| Phantom write | phantom_write_probability | 0% | Write appears to succeed but doesn’t persist |
| Sync failure | sync_failure_probability | 0% | 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§
- Storage
Configuration - Configuration for storage simulation parameters.