retrieve_connection_pool(klass) public

Retrieving the connection pool happens a lot so we cache it in @class_to_pool. This makes retrieving the connection pool O(1) once the process is warm. When a connection is established or removed, we invalidate the cache.

Ideally we would use #fetch here, as class_to_pool[klass] may sometimes be nil. However, benchmarking (gist.github.com/jonleighton/3552829) showed that #fetch is significantly slower than #[]. So in the nil case, no caching will take place, but that’s ok since the nil case is not the common one that we wish to optimise for.

Show source
Register or log in to add new notes.