Skip to main content

Module admission_control

Module admission_control 

Source
Expand description

§AIMD Adaptive Admission Control

Additive-Increase / Multiplicative-Decrease concurrency limiter with gradient-based overload detection and a rolling acceptance-rate window.

§Design

AdmissionController tracks an adaptive concurrency limit that starts at min_limit and grows linearly on success (+additive_increase) and shrinks geometrically on overload (* multiplicative_decrease).

Callers call AdmissionController::try_acquire which returns an AcquireGuard RAII handle. Dropping the guard decrements in_flight. The caller then signals success via AcquireGuard::success (or lets it drop silently for a neutral outcome).

Latency gradient: every time a request completes the controller computes the ratio of the current latency against an exponential moving average. When the ratio exceeds gradient_threshold (default 2.0) it calls on_overload.

§Example

use tokio_prompt_orchestrator::admission_control::{
    AdmissionController, AdmissionConfig,
};
use std::time::Duration;

let ctrl = AdmissionController::new(AdmissionConfig::default());
if let Some(guard) = ctrl.try_acquire() {
    guard.success(); // signal a successful, fast response
}

Structs§

AcquireGuard
RAII guard returned by AdmissionController::try_acquire.
AdmissionConfig
Configuration for AdmissionController.
AdmissionController
AIMD adaptive concurrency controller.
AdmissionStats
Snapshot of admission controller metrics.