Multi quic#634
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #634 +/- ##
========================================
Coverage 81.8% 81.9%
========================================
Files 851 851
Lines 230238 230365 +127
========================================
+ Hits 188520 188677 +157
+ Misses 41718 41688 -30 |
| }, | ||
| std::os::unix::io::AsRawFd, | ||
| }; | ||
| let SocketConfig { |
There was a problem hiding this comment.
We were creating multiple UDP Socket before with reuseaddr flag and seems to work. I forgot what makes it necessary for Quic's socket we need to explicitly do reuse port?
There was a problem hiding this comment.
SO_REUSEPORT is what signals the kernel to do 4-tuple hash load balancing across marked sockets. it's how UDP horizontal scaling works on linux. see socket(7) manpage
There was a problem hiding this comment.
What I meant is in the original code it was already does SO_REUSEPORT:
if reuseaddr {
// best effort, i.e. ignore errors here, we'll get the failure in caller
setsockopt(sock_fd, ReusePort, &true).ok();
setsockopt(sock_fd, ReuseAddr, &true).ok();
}
There was a problem hiding this comment.
The original code makes no sense at all. It was using reuseaddr for udp sockets, which aren't connected and don't need reuseaddr. And it was setting reuseport because of a WSL thing iirc? Just don't look at it let's pretend it never existed.
…er (#1452) * net-utils: support SO_REUSEPORT tpu: use multiple quic endpoints cluster-info: manage port range by hand... local-cluster: keep udp tpu socket around for tests * Missing cargo file * sort cargo.toml * divide the concurrent_connections among the endpoints for multiquic * Change default multiquic endpoint count to 1 * Missing Cargo.lock changes * revert reuseaddr changes * revert reuseaddr changes;fmt code * reverted port range changes * revert DEFAULT_TPU_ENABLE_UDP change in local_cluster * Turn tpu_enable_udp to true to prevent concurrent local cluster tests to use the same QUIC ports * changed QUIC_ENDPOINTS to 10 for testing * Turn QUIC_ENDPOINTS to 1 for now --------- Co-authored-by: Trent Nelson <trent@solana.com> Co-authored-by: Lijun Wang <lijun.wang@oracle.com>
…est master (anza-xyz#1452) * net-utils: support SO_REUSEPORT tpu: use multiple quic endpoints cluster-info: manage port range by hand... local-cluster: keep udp tpu socket around for tests * Missing cargo file * sort cargo.toml * divide the concurrent_connections among the endpoints for multiquic * Change default multiquic endpoint count to 1 * Missing Cargo.lock changes * revert reuseaddr changes * revert reuseaddr changes;fmt code * reverted port range changes * revert DEFAULT_TPU_ENABLE_UDP change in local_cluster * Turn tpu_enable_udp to true to prevent concurrent local cluster tests to use the same QUIC ports * changed QUIC_ENDPOINTS to 10 for testing * Turn QUIC_ENDPOINTS to 1 for now --------- Co-authored-by: Trent Nelson <trent@solana.com> Co-authored-by: Lijun Wang <lijun.wang@oracle.com>
|
this was merged |
Problem
#601 redux
Summary of Changes
Fixes #