Module qos

Module qos 

Source
Expand description

Quality of Service (QoS) for priority-based request handling.

This module provides priority-based scheduling, bandwidth allocation, and SLA tracking for content distribution requests. It ensures high-priority requests get preferential treatment while maintaining fairness across different priority levels.

§Example

use chie_core::qos::{QosManager, Priority, QosConfig, RequestInfo};

#[tokio::main]
async fn main() {
    let config = QosConfig::default();
    let mut qos = QosManager::new(config);

    // Enqueue requests with different priorities
    let req1 = RequestInfo {
        id: "req1".to_string(),
        cid: "QmCritical".to_string(),
        size_bytes: 1024 * 1024,
        priority: Priority::Critical,
    };
    qos.enqueue(req1).await;

    // Dequeue processes highest priority first
    if let Some(next) = qos.dequeue().await {
        println!("Processing: {} (priority: {:?})", next.id, next.priority);
    }
}

Structs§

QosConfig
Configuration for QoS manager.
QosManager
Quality of Service manager for priority-based request handling.
RequestInfo
Information about a queued request.
SlaMetrics
SLA metrics for a priority level.

Enums§

Priority
Request priority levels.