rschmitt commented on PR #547:
URL: 
https://github.com/apache/httpcomponents-core/pull/547#issuecomment-3176830951

   I made the following changes locally:
   1. I pulled in this change
   2. I added https://github.com/apache/httpcomponents-core/pull/543 
(specifically dfa2cd51c038f5f3259d10a5cfba73953245f188)
   3. I taught `PoolingAsyncClientConnectionManager` to submit a 
`StaleCheckCommand` as the implementation of validateAfterInactivity on 
HTTP/1.1 connections
   4. I set `setValidateAfterInactivity(ZERO_MILLISECONDS)` in 
`TestConnectionClosureRace`
   When I do all of this, the results are dramatic:
   
   ```
   Http: Sequential requests (rapid): 2,500 succeeded; 0 failed (100.00% 
success rate)
   Http: Sequential requests (slow): 10 succeeded; 0 failed (100.00% success 
rate)
   Http: Single large batch: 30 succeeded; 0 failed (100.00% success rate)
   Http: Multiple small batches: 15 succeeded; 0 failed (100.00% success rate)
   
   Https: Sequential requests (rapid): 2,499 succeeded; 1 failed (99.96% 
success rate, 0.00% retriable)
   Https: Sequential requests (slow): 10 succeeded; 0 failed (100.00% success 
rate)
   Https: Single large batch: 29 succeeded; 1 failed (96.67% success rate, 
0.00% retriable)
   Https: Multiple small batches: 13 succeeded; 2 failed (86.67% success rate, 
0.00% retriable)
   ```
   
   When I disable inactive connection validation, I get the same results I've 
been getting:
   
   ```
   Http: Sequential requests (rapid): 2,494 succeeded; 6 failed (99.76% success 
rate, 0.24% retriable)
   Http: Sequential requests (slow): 10 succeeded; 0 failed (100.00% success 
rate)
   Http: Single large batch: 15 succeeded; 15 failed (50.00% success rate, 
50.00% retriable)
   Http: Multiple small batches: 10 succeeded; 5 failed (66.67% success rate, 
33.33% retriable)
   
   Https: Sequential requests (rapid): 2,476 succeeded; 24 failed (99.04% 
success rate, 0.96% retriable)
   Https: Sequential requests (slow): 10 succeeded; 0 failed (100.00% success 
rate)
   Https: Single large batch: 15 succeeded; 15 failed (50.00% success rate, 
50.00% retriable)
   Https: Multiple small batches: 10 succeeded; 5 failed (66.67% success rate, 
26.67% retriable)
   ```
   
   We're definitely on the right track. If I'm right about the IO in 
`doStalecheck`, that code can probably all be deleted, and `StaleCheckCommand` 
can be renamed `ConnectionLeaseCommand` or something.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@hc.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@hc.apache.org
For additional commands, e-mail: dev-h...@hc.apache.org

Reply via email to