• Eugen Rochko's avatar
    Add request pool to improve delivery performance (#10353) · 0d9ffe56
    Eugen Rochko authored
    * Add request pool to improve delivery performance
    
    Fix #7909
    
    * Ensure connection is closed when exception interrupts execution
    
    * Remove Timeout#timeout from socket connection
    
    * Fix infinite retrial loop on HTTP::ConnectionError
    
    * Close sockets on failure, reduce idle time to 90 seconds
    
    * Add MAX_REQUEST_POOL_SIZE option to limit concurrent connections to the same server
    
    * Use a shared pool size, 512 by default, to stay below open file limit
    
    * Add some tests
    
    * Add more tests
    
    * Reduce MAX_IDLE_TIME from 90 to 30 seconds, reap every 30 seconds
    
    * Use a shared pool that returns preferred connection but re-purposes other ones when needed
    
    * Fix wrong connection being returned on subsequent calls within the same thread
    
    * Reduce mutex calls on flushes from 2 to 1 and add test for reaping
    0d9ffe56