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

Support bypassing gRPC thread limits for priviledged usecases

    XMLWordPrintableJSON

Details

    • Icon: New Feature New Feature
    • Resolution: Unresolved
    • Icon: Major - P3 Major - P3
    • None
    • None
    • None
    • None
    • Service Arch

    Description

      Today, it's possible to configure the server to accept connections from certain addresses even if the max number of connections has already been reached (net.maxIncomingConnectionsOverride option), for example to ensure that DB admins can always access the server to perform maintenance.

      Currently, maxConnections doesn't apply to gRPC, but the net.grpc.maxThreads limit does, which will cause the server to reject any RPCs once that number has been hit, without any consideration for privileged usecases. We should explore options for how to address this.

      A few ideas:

      • Introduce a new net.grpc.maxStreams option, and reuse the privileged users list from net.maxIncomingConnectionsOverride to determine whether an RPC can be permitted to run
      • Allow using a separate port for admin connections

      Since ingress gRPC will be running alongside asio, the existing override can continue to be used, so there is a workaround for the time being.

      Attachments

        Activity

          People

            backlog-server-servicearch Backlog - Service Architecture
            patrick.freed@mongodb.com Patrick Freed
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated: