Hacker News new | ask | show | jobs
by jdsully 1456 days ago
KeyDB author here. Lack of stable kernel support was a major reason we didn't do io_uring yet. The goal for KeyDB is good performance out of the box not in specific benchmarks on specific hardware/kernel versions. As io_uring becomes mainstream we will start to support it. In 6.2.3 we have async commands which permit reads to happen outside of the global lock. In some cases it can take extra time for writes from other clients to be visible which changes the consistency model so it is off by default but dramatically improves performance when enabled.

Doing a fresh rewrite would have enabled a nicer threading model, but it would make it harder to maintain compatibility. Plus at the time it was more to suggest to Redis multithreading was both desirable and possible which were disputed back then.