-
Type:
Task
-
Resolution: Unresolved
-
Priority:
Minor - P4
-
Affects Version/s: None
-
Component/s: None
-
None
-
Cluster Scalability
-
N&O 2025-05-12
-
None
-
3
-
TBD
-
None
-
None
-
None
-
None
-
None
-
None
Introduce the following three server parameters:
- ingressConnectionEstablishmentRatePerSec; double; default DBL_MAX (disabled); – the number of new connections that will be allowed to establish per second. Set at startup and runtime.
- ingressConnectionEstablishmentBurstSize; double; default DBL_MAX (disabled) – the maximum number of connection establishments that will be admitted before rate-limiting kicks in (ie, the burst size of the bucket). Set at startup and runtime. It should have a minimum value of 1.
- ingressConnectionEstablishmentMaxQueueDepth; size_t; default LLONG_MAX (disabled)– the maximum size of the connection establishment queue, after which the server will begin rejecting new connections. Set at startup and runtime.
These can be added to transport_options.idl, and each should have an associated cpp_class in transport_options.cpp that will allow us to modify the parameter values at runtime. Eventually the CPP classes will call into opCtx->getServiceContext()>getTransportLayerManager()>getSessionManager()>getRateLimiter()>set..... in order to update these parameters at runtime, but adding the RateLimiter to the SessionManager won't happen until SERVER-104415, and so the call to actually make the update stubbed out with a TODO for now.
- depends on
-
SERVER-104408 Introduce connection establishment rate limiter component
-
- Closed
-
- is related to
-
SERVER-104415 Integrate connection establishment rate limiter into SessionWorkflow
-
- In Progress
-