Module degradation

Module degradation 

Source
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§

DegradationActions
Actions to take during degradation.
DegradationManager
Manages graceful degradation based on resource pressure.
ResourcePressure
Current resource pressure measurements.

Enums§

ServiceDegradationLevel
Service degradation levels.