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 ====
I'm Hiroaki Kubota from rakuten.co.jp. (firstname.lastname@example.org)
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.
50 is default.
It's used in PoolForHost::getStaleConnections()
1800 is default.
It's used in PoolForHost::StoredConnection::ok()
It's hard coded now.
Please review it and accept this pull-request.