Skip to content

H-05: Rate limiter com Mutex global — gargalo de concorrência #333

@ElioNeto

Description

@ElioNeto

🟠 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

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions