Skip to content

Instantly share code, notes, and snippets.

@1Jo1
Last active May 19, 2022 14:07
Show Gist options
  • Save 1Jo1/1e95d40094c3991e5eebcc352afbead9 to your computer and use it in GitHub Desktop.
Save 1Jo1/1e95d40094c3991e5eebcc352afbead9 to your computer and use it in GitHub Desktop.

Adding io_uring transport to Netty - Google Summer of Code 2020

  • Student: Josef Grieb
  • Github: @1Jo1

Aim

The new io_uring interface added to the Linux Kernel 5.1 is a high I/O performance scalable interface for fully asynchronous Linux syscalls. The goal of this project is to add io_uring based transport for Linux to make Netty more efficient in terms of throughput and latency by reducing the number of syscalls.

Implementation

io_uring consists of two ring buffers a submission queue and completion queue which are shared with the user application netty, we decided to use unsafe operations to access to the ring buffer information( like head & tail etc.) as JNI calls are quite slow

What still needs to be done

  • missing error handling in JNI
  • fixing bugs
  • adding more tests

Pull Request: netty/netty#10356

Reported io_uring bugs:

Additional Links:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment