Skip to content
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

Merged
merged 7 commits into from
Mar 8, 2021

Conversation

mikeb01
Copy link
Contributor

@mikeb01 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.

@mjpt777 mjpt777 merged commit fe744dd into real-logic:master Mar 8, 2021
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,
Copy link
Contributor

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.

Copy link
Contributor Author

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.

@mikeb01 mikeb01 deleted the channel_uri_socket_params branch March 8, 2021 20:43
mikeb01 added a commit to mikeb01/Aeron that referenced this pull request Mar 14, 2021
* [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.
mjpt777 added a commit that referenced this pull request Mar 16, 2021
* [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 <mjpt777@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants