Last week PostgreSQL merged support for IO_uring that can provide for “considerably faster” performance of this popular open-source database server. Over the weekend some additional improvements were merged to the asynchronous I/O “AIO” code to PostgreSQL, including introducing a new batch mode that can also provide a performance win.
Merged on Sunday were several more I/O improvements for PostgreSQL following the IO_uring support merged days prior. The latest activity includes AIO read support for the buffer manager to perform asynchronous reads into the buffer pool. There were then additional commits to actual begin making use of that AIO read support.
That was followed by a commit to introduce and use optional batch mode support. This batch mode support allows submitting I/O in larger batches to provide for better efficiency than just one-by-one submission. This can help with PostgreSQL performance for many small reads. Due to the semantics around it, the batch mode support is an opt-in feature.
Rounding out the I/O improvements for Postgres this weekend was enabling I/O concurrency on all systems due to overcoming prior limitations.
These I/O improvements for the PostgreSQL database server are building up for the PostgreSQL 18 release due out in September.