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

Add configuration to "mongos" to allow finer-grained control of the connection pool

    XMLWordPrintable

    Details

    • Type: New Feature
    • Status: Closed
    • Priority: Major - P3
    • Resolution: Done
    • Affects Version/s: None
    • Fix Version/s: None
    • Environment:
      Various platforms.
      Especially, any types of Linux distributions. CentOS , Debian x86_64, i686 and so on...

      Description

      Please review and accept these kind of the features that enable us to control the connection pools.

      We are trying to use it with the each parameter of "maxSpareConnPools=50" , "connPoolTimeout=300".
      Because we are difficult to keep the long idling TCP connection in our Data-center.
      It could be causing the session table overflow on the switch. And eventually the connections will be halted.

      ==== Pull-Request ====
      https://github.com/mongodb/mongo/pull/278

      I'm Hiroaki Kubota from rakuten.co.jp. (hiroaki.kubota@mail.rakuten.com)

      We are using the MongoDB with sharding structure.
      And connect to the Mongo-Sharding from approximates 100 web servers
      (that have 50 httpd process per server).
      We also run the "mongos" on each web server.

      Normally the number of the connections between "mongs" and "mongod" is approximates 55.
      It's the good form !
      But sometimes, the number of the connections raise to 300-350 on every web server.
      And the "mongod" would refuse to connect from "mongos" more than 20000 as the limit of the mongod.

      So we want to control the connection pool in the "mongos".

      You already provide us the "maxConns" configuration.
      However "maxConns" affects client side of the "mongos".

      It's useless for us.

      So we added some configurations to control "mongos" more minutely.

      maxSpareConnPools
      50 is default.
      It's used in PoolForHost::getStaleConnections()

      connPoolTimeout
      1800 is default.
      It's used in PoolForHost::StoredConnection::ok()
      It's hard coded now.

      Please review it and accept this pull-request.

      Regards,

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              Unassigned
              Reporter:
              crumbjp Hiroaki,Kubota
              Participants:
              Votes:
              2 Vote for this issue
              Watchers:
              10 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: