Hacker News new | ask | show | jobs
by hardwaresofton 336 days ago
Great article -- it's really subtle to see where the real perf gains came from but will try and summarize it for those who may come after:

The gains are from batching and doing work in-between. io_uring does "batching at a distance", and the DB can write to memory and perform operations in between. When io_uring checks the queues (intent/operation), it will find more than one operation, and do them all at once.

You don't lose durability with this setup -- you just do more speculative work (if you got the worst possible crash at the worst possible time), and if a bunch of things completed (because io_uring did them all at once) you get more confirmations you can send back faster.

Latency MIGHT suffer, but throughput would (and does) increase.