Expand description
Graceful degradation under resource pressure.
This module implements strategies for gracefully degrading service quality when resources (CPU, memory, disk, bandwidth) are under pressure, rather than failing catastrophically. It allows the system to continue operating at reduced capacity while maintaining critical functionality.
§Example
use chie_core::degradation::{DegradationManager, ResourcePressure, ServiceDegradationLevel};
let mut manager = DegradationManager::new();
// Report resource pressure
manager.update_pressure(ResourcePressure {
cpu_usage: 0.95,
memory_usage: 0.85,
disk_usage: 0.90,
bandwidth_usage: 0.80,
});
// Get current degradation level
let level = manager.current_level();
match level {
ServiceDegradationLevel::Normal => {
// Operate normally
}
ServiceDegradationLevel::LightDegradation => {
// Reduce non-critical features
}
ServiceDegradationLevel::ModerateDegradation => {
// Focus on core functionality
}
ServiceDegradationLevel::SevereDegradation => {
// Minimal operations only
}
}
// Check if specific features should be disabled
if manager.should_disable_prefetching() {
// Disable chunk prefetching
}
if manager.should_reduce_cache_size() {
// Reduce cache memory usage
}Structs§
- Degradation
Actions - Actions to take during degradation.
- Degradation
Manager - Manages graceful degradation based on resource pressure.
- Resource
Pressure - Current resource pressure measurements.
Enums§
- Service
Degradation Level - Service degradation levels.