Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/KuiBaDB/kbio

Another Async IO Framework based on io_uring
https://github.com/KuiBaDB/kbio

async async-await asyncio await io-uring kuibadb rust rust-async

Last synced: about 2 months ago
JSON representation

Another Async IO Framework based on io_uring

Awesome Lists containing this project

README

        

KBIO, add some experimental features to tokio. Currently, kbio is just used in [KuiBaDB](https://hidva.com/g?u=https://github.com/KuiBaDB/KuiBaDB), it is only a prototype and has not been tested fully. Our experience using C++20 coroutines in [Hologres](https://hidva.com/g?u=https://www.aliyun.com/product/bigdata/hologram) 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](https://github.com/tokio-rs/tokio/pull/4407)

# Usage

Most of them are fully compatible with tokio. See [integrate kbio into memc](https://hidva.com/g?u=https://github.com/memc-rs/memc-rs/discussions/7) for another example.

# Benchmark

We use [monoio-benchmark](https://hidva.com/g?u=https://github.com/hidva/monoio-benchmark) to do the benchmark, See [integrate kbio into memc](https://hidva.com/g?u=https://github.com/memc-rs/memc-rs/discussions/7) for another example.