Skip to content
Ilya Korennoy edited this page Oct 15, 2022 · 11 revisions

Jasyncfio is a high-performance JVM library for file I/O. The library based on new Linux API - io_uring.

The main goal of the library design was to provide a minimalistic asynchronous API for file I/O. The library is not dependent on liburing.

A brief look at io_uring

This is a relatively new family of Linux Kernel system calls that allows other system calls to be executed asynchronously and with minimal syscall overhead.

io_uring is based on a circular buffer that is divided into a submission queue (SQ) and a completion queue (CQ), which are used to send queries to the kernel and receive results accordingly.

This design allows you to minimize the number of syscalls, and in certain configurations to make I/O without a single syscall. This became especially relevant after the discovery of the Spectre and Meltdown vulnerabilities.