quantrs2_device/cloud/orchestration/performance/
mod.rs

1//! Performance optimization configurations for cloud orchestration
2//!
3//! This module contains comprehensive performance optimization settings including
4//! latency optimization, throughput optimization, network configurations,
5//! resource scaling, and performance prediction capabilities.
6
7use serde::{Deserialize, Serialize};
8use std::collections::{BTreeMap, HashMap};
9use std::time::Duration;
10
11pub mod latency;
12pub mod network;
13pub mod prediction;
14pub mod scaling;
15pub mod throughput;
16
17pub use latency::*;
18pub use network::*;
19pub use prediction::*;
20pub use scaling::*;
21pub use throughput::*;
22
23/// Cloud performance configuration
24#[derive(Debug, Clone, Serialize, Deserialize)]
25pub struct CloudPerformanceConfig {
26    /// Performance optimization strategies
27    pub optimization_strategies: Vec<PerformanceOptimizationStrategy>,
28    /// Latency optimization
29    pub latency_optimization: LatencyOptimizationConfig,
30    /// Throughput optimization
31    pub throughput_optimization: ThroughputOptimizationConfig,
32    /// QoS requirements
33    pub qos_requirements: QoSRequirements,
34    /// Performance prediction
35    pub performance_prediction: PerformancePredictionConfig,
36}
37
38/// Performance optimization strategies
39#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
40pub enum PerformanceOptimizationStrategy {
41    LatencyMinimization,
42    ThroughputMaximization,
43    ResourceUtilizationOptimization,
44    EnergyEfficiencyOptimization,
45    CostPerformanceOptimization,
46    QoSOptimization,
47    CustomStrategy(String),
48}
49
50/// QoS requirements
51#[derive(Debug, Clone, Serialize, Deserialize)]
52pub struct QoSRequirements {
53    /// Latency requirements
54    pub latency: LatencyRequirements,
55    /// Throughput requirements
56    pub throughput: ThroughputRequirements,
57    /// Availability requirements
58    pub availability: AvailabilityRequirements,
59    /// Reliability requirements
60    pub reliability: ReliabilityRequirements,
61}
62
63/// Latency requirements
64#[derive(Debug, Clone, Serialize, Deserialize)]
65pub struct LatencyRequirements {
66    /// Maximum latency
67    pub max_latency: Duration,
68    /// Target latency
69    pub target_latency: Duration,
70    /// Percentile requirements
71    pub percentiles: BTreeMap<String, Duration>,
72}
73
74/// Throughput requirements
75#[derive(Debug, Clone, Serialize, Deserialize)]
76pub struct ThroughputRequirements {
77    /// Minimum throughput
78    pub min_throughput: f64,
79    /// Target throughput
80    pub target_throughput: f64,
81    /// Peak throughput
82    pub peak_throughput: f64,
83}
84
85/// Availability requirements
86#[derive(Debug, Clone, Serialize, Deserialize)]
87pub struct AvailabilityRequirements {
88    /// Target availability
89    pub target_availability: f64,
90    /// Maximum downtime
91    pub max_downtime: Duration,
92    /// Recovery time objective
93    pub rto: Duration,
94    /// Recovery point objective
95    pub rpo: Duration,
96}
97
98/// Reliability requirements
99#[derive(Debug, Clone, Serialize, Deserialize)]
100pub struct ReliabilityRequirements {
101    /// Mean time between failures
102    pub mtbf: Duration,
103    /// Mean time to repair
104    pub mttr: Duration,
105    /// Error rate threshold
106    pub error_rate_threshold: f64,
107}