-
Notifications
You must be signed in to change notification settings - Fork 542
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
UDP based transport #90
Comments
some guic-go benchmark results generated by github.com/marten-seemann/quic-go-benchmarks
|
can you compare also kcp ? and what implementation of go-kcp used? |
I have a working Impl using https://github.com/lucas-clemente/quic-go (based on existing TCP implementation) do you fancy me doing a PR (I have no numbers yet to confirm if it really is or isn't in any way faster)? Should I add the impl under the plugins folder? |
@coufalja that sounds interesting any quick benchmark data on such quic based transport? I looked into that quic go package in 2019 and the RTT latency was not on par with TCP, see the quic-go-benchmark results posted above. wondering anything changed in the last two years. for the PR, yes, please put it in the plugin folder. |
Dragonboat currently uses TCP based transport for exchanging Raft messages between NodeHost instances. Such strictly ordered reliable transport is not actually required.
The existing TCP based transport is pretty straight forward, it is implemented in a single .go file with only a couple hundred lines of code -
https://github.com/lni/dragonboat/blob/master/internal/transport/tcp.go
It will be very interesting to experiment whether UDP can be somehow used to achieve better performance. It might be done by using the UDP support in Go's stdlib or build on top of some 3rd party libraries/protocols, e.g. quic-go without HTTP/3.
Note that I've tried the UDP based kcp-go, sadly I failed to get higher bandwidth or lower latency.
The text was updated successfully, but these errors were encountered: