Atomicity vs Multithreading

I remember reading somewhere that (please correct me if this is wrong) that KeyDB multithreads the networking and command parsing… but what about command execution? Is that still single threaded, or parallelized about key? I’m concerned about module commands operating on keys unknown to the outer server layers.

I know the Alibaba work suggested multithreading everything but the command processing.

Hi @victorstewart

For modules KeyDB synchronizes with a “module lock”. This lock prevents KeyDB from executing commands while the module is running. As a result we provide the same guarantees to modules as Redis does. We run the same module tests as Redis to ensure compatibility but if you find a scenario where we behave differently that’s a bug.

1 Like