For those looking toward better I/O performance with Java, there is JUring for making use of IO_uring and the reported performance benefits are very enticing.
IO_uring lead developer and Linux block subsystem maintainer Jens Axboe shared on X that there is now an independent project JUring for bringing IO_uring to Java. David Vlijmincx has been working on JUring for file I/O with Java using the Linux kernel’s IO_uring interface. The I/O performance gains with JUring are pretty wild:
“JUring is a high-performance Java library that provides bindings to Linux’s io_uring asynchronous I/O interface using Java’s Foreign Function & Memory API. Doing Random reads JUring achieves 33% better performance than Java NIO FileChannel operations for local files and 78% better performance for remote files.”
And some of the raw JUring performance data:
JUring looks to be off to a nice start while support for sockets, better memory use, pooling of rings, and other features are still planned. Those wanting to learn more or try it out can find JUring on GitHub.