Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?

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