KBIO, add some experimental features to tokio. Currently, kbio is just used in KuiBaDB, it is only a prototype and has not been tested fully. Our experience using C++20 coroutines in Hologres tells us that Worker Steal is very necessary. So we build kbio based on tokio.
-
We run one IO-Uring instance per Worker. Before that, all Workers in Tokio used an Epoll instance, mainly because once a file descriptor is bound to an Epoll instance in Tokio, then the file descriptor will never switch to other Epoll instances, which will affect the effect of Worker Steal.
-
Add sysmon
Most of them are fully compatible with tokio. See integrate kbio into memc for another example.
We use monoio-benchmark to do the benchmark, See integrate kbio into memc for another example.