-
Notifications
You must be signed in to change notification settings - Fork 180
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Attempt parallel connections to all addrs when connecting (#1068)
* Attempt parallel connections to all addrs when connecting Part of the "happy eyeballs" recommendations. Note I attempted to preserve the exception throwing behavior we had previously. i.e. if I'm the last task running and errors, I'll close the `Channel{TCPSocket}` with my exception which will then propagate up. We could possibly accumulate all the exceptions into a CompositeException, but meh, I'm not sure if that adds much value. In addition to the new parallel connecting, we're also adjusting how the `connect_timeout` is implemented. Instead of only applying to the tcp connection, we now wrap the entire `newconnection` call, which means any ssl handshake timing will also count towards the timeout. We saw a case at RelationalAI where we had a reasonable connect_timeout (10s), yet then saw long requests (>50s) where all the time was reported in the connection layer. It would seem to suggest that the ssl layer is somehow getting stuck or slow, so the proposal here is that if the ssl operations also count, then we'll more aggressively cancel/restart the connection process in the case of slow ssl handshaking. * Ensure we don't have hanging tasks once our channel has been filled w/ connection
- Loading branch information
Showing
2 changed files
with
29 additions
and
25 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters