Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-104407

Introduce server parameters to tune connection establishment rate limiter

    • Type: Icon: Task Task
    • Resolution: Unresolved
    • Priority: Icon: Minor - P4 Minor - P4
    • 8.2.0-rc0
    • 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.

            Assignee:
            janna.golden@mongodb.com Janna Golden
            Reporter:
            erin.mcnulty@mongodb.com Erin McNulty
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: