Connection pool

edit

Connection pool is a container that holds the Connection instances, manages the selection process (via a ConnectionSelector) and dead connections.

Initially connections are stored in the class as a list and – along with the connection options – get passed to the ConnectionSelector instance for future reference.

Upon each request, the Transport asks for a Connection via the get_connection method. If the connection fails, it is marked as dead (via mark_dead) and put on a timeout. When the timeout is over the connection is resurrected and returned to the live pool. A connection that has been previously marked as dead and then succeeds is marked as live (its fail count is deleted).

For reference information, refer to the full Elasticsearch Python documentation.