ALVES, G. D. F.; http://lattes.cnpq.br/0026624577091766; ALVES, Gustavo Daniel Farias.
Resumo:
In May 2019, at the release of version 5.1 of the Linux kernel, a new API called io_uring was
introduced. The interface came as a new option to perform asynchronous I/O operations, with
proposals for simplicity, better performance and coverage of use cases than its predecessors, like the
aio interface, did not support. Since the introduction of the API, some software projects have been
trying to introduce io_uring into their codebases. Of these, there have been some reports of
significant performance gains, reaching in some cases double the speed before the interface was
implemented. This article provides a brief introduction to the interface, the context in which it is
inserted and a comparative analysis between the performance in I/O operations of a real
data-intensive application before and after the use of io_uring. The results after the modification
indicate that the simple introduction of io_uring brought a considerable performance drop to the
application, which after analysis was shown to have a naturally synchronous and blocking behaviour,
nullifying the possible benefits of using asynchronous I/O while maintaining the overhead arising
from the management of the io_uring interface.