🟠 Alto | Performance | API/RateLimiter
Problema
RateLimiterState usa Mutex<HashMap<IpAddr, IpTrack>>. Cada requisição adquire o lock global para verificar rate limit.
Impacto
Sob alta concorrência (500+ conexões), o mutex se torna gargalo. Latência aumenta 10-50ms por requisição devido à contenção de lock.
Evidência
src/api/rate_limiter.rs:50: requests: Mutex<HashMap<IpAddr, IpTrack>>
Recomendação
Usar sharded Mutex (256 shards por hash do IP), ou DashMap (dashmap crate), ou algoritmo token bucket lock-free com AtomicU64.
Validação
cargo bench --bench latency_bench — comparar P99 latency antes/depois com 1000 conexões.
Prioridade: Alta
🟠 Alto | Performance | API/RateLimiter
Problema
RateLimiterStateusaMutex<HashMap<IpAddr, IpTrack>>. Cada requisição adquire o lock global para verificar rate limit.Impacto
Sob alta concorrência (500+ conexões), o mutex se torna gargalo. Latência aumenta 10-50ms por requisição devido à contenção de lock.
Evidência
src/api/rate_limiter.rs:50:requests: Mutex<HashMap<IpAddr, IpTrack>>Recomendação
Usar sharded Mutex (256 shards por hash do IP), ou
DashMap(dashmap crate), ou algoritmo token bucket lock-free comAtomicU64.Validação
cargo bench --bench latency_bench— comparar P99 latency antes/depois com 1000 conexões.Prioridade: Alta