I wrote some simple realization of pool for pymongo. You can see it
here:
http://pastebin.com/z9nFYGa9
Base bug there was with pymongo.connection.Pool because in the
original package it is thread-local, so when you spawn new greenlet
and trying to get already open connection, it creates new connection
because in this greenlet pool is empty.