-
Notifications
You must be signed in to change notification settings - Fork 78
Conversation
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.
no readability changes. minimal diff
overall try to minimise the diff as much as possible |
I'd like to implement velocity's VelocityNettyThreadFactory and some minor formatting improvements before merge |
Hmm very interesting PR. |
chunks of code are still not commented out properly |
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.
I like these changes.
I am aware of channel factories for like ages but I'm just too afraid to touch anything with this code. Looks like you've done it.
@YatopiaMC/review-team I need 1 more person to review it.
Sorry
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.
- I cannot connect at all with IOUring enabled the first or current build
- I think we should port Velocity's VelocityNettyThreadFactory because it uses a netty thread pool which will probably work better with netty
- we need to drop the log level of trying to using different network types to info
um this pr also uses netty pool. the thread factory quite literally doesn't matter. velocity's is just changing the name. same for ours.
ill remove it |
No it uses com.google.common.util.concurrent.ThreadFactoryBuilder. VelocityNettyThreadFactory uses io.netty.util.concurrent.FastThreadLocalThread and java.util.concurrent.ThreadFactory and I frankly trust astei's judgement here more than yours. |
things left: |
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.
blocking cuz i want to do some changes before merge
c232045
to
ecf1662
Compare
538a94c
Crap, it seems I had old review pending, lmao. Seems they all still apply though xD |
656de35
to
372911f
Compare
0fe50f5
how do I check if IOUring is working, because i enabled it in the config and when i boot up it shows using EPOLL network type and showing that it's using velocity compression and chipher, and doesn't show any errors |
Actually you need to set network compression to -1 and bungee to false to make it works, after you can enable the debug that will tell you why io uring is not working after you did all that thing before |
ok i will try this |
Thanks, it works now |
Hello, I'm porting a new patch to yatopia about the network.
The network is a part of spigot that has never been too much modified and can be optimized with some kernel parameters (I may add TCP_FASTOPEN in the future or other params like this).
Actually this patch only enhanced the code readability of the ServerConnection and add a new beta feature:
IOUring, it's a new async interface for IO introduce in Kernel 5.4 in Linux (So only work on linux with kernel >= 5.4)
Netty is actually working on a project to port IOUring on it (https://github.com/netty/netty-incubator-transport-io_uring).
This is actually in beta so that's why there is a config to enable it or disable it, but can offer some performance on the network.
There is also a known issue with Zlib in Bungeecord that makes IOUring unusable cause it can decompress packet from it
(netty/netty-incubator-transport-io_uring#40).