linera_core/client/requests_scheduler/
mod.rs1mod cache;
8mod in_flight_tracker;
9mod node_info;
10mod request;
11mod scheduler;
12mod scoring;
13
14pub use scheduler::RequestsScheduler;
15pub use scoring::ScoringWeights;
16
17pub const MAX_IN_FLIGHT_REQUESTS: usize = 100;
19pub const MAX_ACCEPTED_LATENCY_MS: f64 = 5000.0;
20pub const CACHE_TTL_MS: u64 = 2000;
21pub const CACHE_MAX_SIZE: usize = 1000;
22pub const MAX_REQUEST_TTL_MS: u64 = 200;
23pub const ALPHA_SMOOTHING_FACTOR: f64 = 0.1;
24pub const STAGGERED_DELAY_MS: u64 = 150;
25
26#[derive(Debug, Clone)]
28pub struct RequestsSchedulerConfig {
29 pub max_accepted_latency_ms: f64,
31 pub cache_ttl_ms: u64,
33 pub cache_max_size: usize,
35 pub max_request_ttl_ms: u64,
37 pub alpha: f64,
39 pub retry_delay_ms: u64,
41}
42
43impl Default for RequestsSchedulerConfig {
44 fn default() -> Self {
45 Self {
46 max_accepted_latency_ms: MAX_ACCEPTED_LATENCY_MS,
47 cache_ttl_ms: CACHE_TTL_MS,
48 cache_max_size: CACHE_MAX_SIZE,
49 max_request_ttl_ms: MAX_REQUEST_TTL_MS,
50 alpha: ALPHA_SMOOTHING_FACTOR,
51 retry_delay_ms: STAGGERED_DELAY_MS,
52 }
53 }
54}