Introduce I/O URing to netty4 remoting
What is the purpose of the change
Support I/O Uring
Brief changelog
Verifying this change
Checklist
- [x] Make sure there is a GitHub_issue field for the change (usually before you start working on it). Trivial changes like typos do not require a GitHub issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
- [ ] Each commit in the pull request should have a meaningful subject line and body.
- [ ] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
- [ ] Check if is necessary to patch to Dubbo 3 if you are work on Dubbo 2.7
- [ ] Write necessary unit-test to verify your logic correction, more mock a little better when cross module dependency exist. If the new feature or significant change is committed, please remember to add sample in dubbo samples project.
- [ ] Add some description to dubbo-website project if you are requesting to add a feature.
- [ ] GitHub Actions works fine on your own branch.
- [ ] If this contribution is large, please follow the Software Donation Guide.
What are the advantages of I/O URing?
What are the advantages of I/O URing?
Please see: https://man.archlinux.org/man/io_uring.7.en
What are the advantages of I/O URing?
Please see: https://man.archlinux.org/man/io_uring.7.en
This is a comparison from the kernel level. I wonder what benefit it would bring to Dubbo?
What are the advantages of I/O URing?
Please see: https://man.archlinux.org/man/io_uring.7.en
This is a comparison from the kernel level. I wonder what benefit it would bring to Dubbo?
Generally speaking, it provides higher-performance, I/O uring is an async I/O mechanism, unlike select/poll/epoll_wait, it reduces the number of system calls.
cq in I/O uring is user mode memory, so reading to cq will not cause the current thread to trapped into kernel mode.
What are the advantages of I/O URing?
Please see: https://man.archlinux.org/man/io_uring.7.en
This is a comparison from the kernel level. I wonder what benefit it would bring to Dubbo?
Generally speaking, it provides higher-performance, I/O uring is an async I/O mechanism, unlike select/poll/epoll_wait, it reduces the number of system calls.
cqin I/O uring is user mode memory, so reading tocqwill not cause the current thread to trapped into kernel mode.
Can you pls provide a benchmark result of it?
@AlbumenJ I don't have a linux machine, but I found this: https://github.com/netty/netty/issues/10622#issuecomment-701241587