18 lines
911 B
Plaintext
18 lines
911 B
Plaintext
[[connection-pool]]
|
||||
|
|
=== Connection pool
|
|||
|
|
|
|||
|
|
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
|
|||
|
|
https://elasticsearch-py.readthedocs.io/en/latest/connection.html#connection-pool[full {es} Python documentation].
|