uSockets icon indicating copy to clipboard operation
uSockets copied to clipboard

Liburing, HTTP/2, KTLS Support (FORK) Created

Open Gibgoyt opened this issue 2 months ago • 4 comments

Please look at my fork

https://github.com/Gibgoyt/dump/tree/master/unit_testing/kernel_io/uring/framework

Please tell me how bad this implementation is, it did take me 2/3 days and it very kak

Gibgoyt avatar Oct 28 '25 21:10 Gibgoyt

Vertical Scalability of A Single HTTP Server

https://pravin.dev/database-engineering-fundamental-part-5/postgresql-process-architecture/ https://levelup.gitconnected.com/you-dont-need-an-entire-course-to-understand-postgres-wal-write-ahead-log-cfcee7f09c4a https://youtu.be/qX50xrHwQa4?si=HIXG2iU1pgjOmjHo

Do something similar to Postgres 18. Each liburing can get its own process with private IO Uring to eliminate connection pool contention issues

Gibgoyt avatar Oct 29 '25 20:10 Gibgoyt

Each liburing can get its own process with private IO Uring to eliminate connection pool contention issues

This is already the architecture of uSockets. It has nothing with DB to do, it is rather following the idea of NUMA. One thread (or process) has its own isolated event-loop. In the case of liburing, the event-loop = the IO_ring. One thread (or process) has no contention with any other process or thread. This has always been the architecture of uSockets going back 10 years

uNetworkingAB avatar Oct 30 '25 15:10 uNetworkingAB

Yea i was looking at the code earlier and thought that was happening

Is it implemented in epoll and uring?

And i mentioned Postgres 18 because that’s how they run async now took them like 8 years to build

Gibgoyt avatar Oct 30 '25 15:10 Gibgoyt

io_uring is not implemented more than as an experiment.

There is nothing "implemented" about the 1 event-loop per thread. This is just the indented use. You the developer need to follow this design.

uNetworkingAB avatar Oct 30 '25 15:10 uNetworkingAB