completeio: thread-per-core runtime
RuntimeComments
Given the reliance on io_uring, how does this runtime handle completion queue overflow without falling back to a centralized coordinator? I'm curious if it uses a shared ring or strictly isolated queues per core.
We saw this same narrative during the early ScyllaDB days. The locality gains often get wiped out by the complexity of manual sharding in the application layer.
This looks like a companion piece to what rsmalloc is doing with RSEQ. Moving the runtime to thread-per-core is only half the battle if the allocator still treats threads as the primary unit of locality.
I've seen high-throughput gateways choke on work-stealing overhead during spikes. Fixing the allocator and the runtime together is the only way to actually stabilize tail latency in production.
Why settle for a runtime when we're basically just recreating a kernel in userspace? We're just moving the tax from the scheduler to the developer's cognitive load.