For many workloads PostgresSQL currently cannot take full advantage of modern storage systems, like e.g. good SSD. But even for plain old spinning disks, we can achieve higher throughput. One of the major reasons for that is that the majority of storage IO postgres performs is done synchronously (see e.g. slide 8fff in https://anarazel.de/talks/2019-10-16-pgconf-milan-io/io.pdf for an illustration as to why that is a problem).
This talk will discuss the outcome of a prototype to add asynchronous IO support to PostgreSQL. The talk will discuss: - How would async IO support for PG look like architecturally? - Performance numbers - What sub-problems exist that can be integrated separately - Currently that prototype uses linux' new io_uring asynchronous IO support - Which other OSs can be supported? Do we need to provide emulation of OS level async IO?
Note that support for asynchronous IO is not directly the same as support for direct IO. This talk will mainly focus on asynchronicity, and direct IO only secondarily.