So my Passenger spins up 5 cases of my Rails application

I connect with MongoDB using"localhost", 3000, :pool_size => 1, :timeout => 5)

Why would I want a "pool of connections" basically only incur overhead when setting up my Rails application, not per request? Why would just one process require more than 1 connection?

And what's the objective of the timeout? Why would i would like the bond to timeout? Should not it's persist with the Rails process' lifetime?

So confused...

This is specific to Ruby and Mongo however i guess it is applicable with other languages/databases.

You don't have to use connection pooling here. As you are using Passenger, just make certain that every instance utilizes a separate connection by catching the beginning_worker_process event. This really is recorded within the driver README.

Connection pooling could be helpful for several multi-threaded applications. pool_dimensions are the max quantity of concurrent threads the bond will handle, and timeout may be the most of seconds a thread can watch for an available socket before the best is tossed.