agroal / pgagroal

High-performance connection pool for PostgreSQL
https://agroal.github.io/pgagroal/
BSD 3-Clause "New" or "Revised" License
667 stars 59 forks source link

I/O: Replace libev with a native event loop (Linux Support) #449

Open decarv opened 1 month ago

decarv commented 1 month ago

This is the first part of the I/O layer replacement project (refer to discussion https://github.com/agroal/pgagroal/discussions/442).

This issue will contain our native I/O solution for pgagroal, which will replace libev.

As mentioned in the discussion, we will prioritize using io_uring, and if io_uring does not meet the performance requirements for pgagroal, we will fallback to an epoll implementation.

The relevant branch and pull request will be linked here as soon as I have something working.

If you would like to follow on early developments, I keep them here.

decarv commented 2 weeks ago

Updates.

The development of the Linux support is happening here https://github.com/decarv/pgagroal/tree/new-io-linux

What I currently have is the basic epoll and io_uring event loop.

I will be making tweaks to the libpgagroal_ev and replacing libev during this and the next two weeks.