-
Notifications
You must be signed in to change notification settings - Fork 905
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Channel uri socket params #1143
Conversation
mikeb01
commented
Mar 8, 2021
- Allow for channels to configure SO_RCVBUF and SO_SNDBUF via the channel uri.
- Add support for the parameters to the builder in the Java client and C++ wrapper client.
…ngBuilder (currently only in the wrapper).
if (context->udp_channel_transport_bindings->init_func( | ||
&_destination->transport, | ||
&channel->remote_data, | ||
&channel->local_data, | ||
channel->interface_index, | ||
0 != channel->multicast_ttl ? channel->multicast_ttl : context->multicast_ttl, | ||
context->socket_rcvbuf, | ||
context->socket_sndbuf, | ||
socket_rcvbuf, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe we should pass the channel to be more efficient and future proof.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Probably is a good clean up. I think I will come back to it later as the current PR hasn't required a change there yet. I am changing the congestion control supplier in a similar way that to pass through the aeron_udp_channel_t
instead of the string value to avoid re-parsing.
* [Java] Parse socket parameters in channel URI. * [Java] Make naming consistent. Use snd/rcv buf lengths for URI if specified. * [Java] Add socket rcv/snd buffer lengths to ChannelUriStringBuilder. * [C] Add channel parameters for socket snd/rcv buf. * [C++] Add channel parameters for socket snd/rcv buf to ChannelUriStringBuilder (currently only in the wrapper). * [C++] New line * [Java] New line.
* [Java] Add REQUEST_VOTE and CANVAS_POSITION to Cluster debug logging. * [Java] Implement Archive replicate with a specified stop position. * [Java] Implement LogReplication to replication logs from leader to follower. * [Java] Use log replication to recover the log before doing replay. Reconstruct the recovery plan once log replication is complete on the follower. Use a fake log entry to begin replay if there is a valid leaderRecordingId, but no entries in the RecordingLog. Create entries in the RecordingLog on FOLLOWER_REPLAY if not already present. * [Java] Javadoc. Remove asserts. Remove semantic version change. Use different sleep API. * [Java] Use NULL_VALUE constant. * Channel uri socket params (#1143) * [Java] Parse socket parameters in channel URI. * [Java] Make naming consistent. Use snd/rcv buf lengths for URI if specified. * [Java] Add socket rcv/snd buffer lengths to ChannelUriStringBuilder. * [C] Add channel parameters for socket snd/rcv buf. * [C++] Add channel parameters for socket snd/rcv buf to ChannelUriStringBuilder (currently only in the wrapper). * [C++] New line * [Java] New line. * [Java] Param naming for socket buffer lengths and make use of human friendly length parsing. * [C/C++] Consistent naming of SO params and fix missing methods in C++ classes for socket buffers. * [C/C++] Support human friendly socket buffer lengths config in URI params. * [Java] Remove the need for sending leadershipTermId with log replay and joining the log in a service. * [Java] Allow the setting of send and receive socket buffer length on archive channels plus MTU for response channel. * [Java] Use deadlines in name resolver to simplify checks. * [C] Use deadlines and cached clock in name resolver to simplify checks and make code more efficient. * [C] Fix init warning. * [Java] Naming. * [Java] Increase minor version. * [Java] Create driver resolver in onStart method so that the transport says within the thread. * [Java] Handle race in awaiting counters in DriverNameResolverTest. * [Java] Sleep for 1ms rather than yield when awaiting counter in DriverNameResolverTest. * [Java] Update resolution change label in onStart() method of driver conductor. * [Java] Upgrade to ByteBuddy 1.10.22. * [Java] Naming and tidy up. * [Java] Use log replication to recover the log before doing replay. Reconstruct the recovery plan once log replication is complete on the follower. Use a fake log entry to begin replay if there is a valid leaderRecordingId, but no entries in the RecordingLog. Create entries in the RecordingLog on FOLLOWER_REPLAY if not already present. * [Java] Clean up planRecovery method. * [Java] Remove the forced prepare for new leadership at the end of log replication. * [Java] Collapse branches on the onNewLeadershipTerm method for the Election. * [Java] Always pass in the logRecordingId when constructing a recovery plan. * Post merge cleanup and test fixes. Co-authored-by: mjpt777 <[email protected]>