Also not that the benchmarks shown seem to be an apples and oranges comparison. If you want to compare the performance if redis vs a multithreaded fork the proper comparison involves running a redis cluster (one node per core) versus the multithreaded single node.
All else being equal I'd prefer a multithreaded approach as KeyDB is pursuing but that's just because it makes it easier to more easily utilise system resources of a single (virtual) machine.
It’s offloading complexity from the developers to the users which I don’t think is the right approach.
Also clusters have limitations over single instance redis. You’ll also get more Queries/GB with a Multithreaded approach.
Have you benchmarked cluster VS locks and threads approach?
Redis's codebase is a little too readable compared to the complexity of the things it does. This isn't.
This is a lock free key value store in a single file - it doesn't have the network protocol, but any threads dealing with the network IO could use it without doing anything differently.
https://github.com/LiveAsynchronousVisualizedArchitecture/si...
"Well, that’s the plan: I/O threading is not going to happen in Redis AFAIK, because after much consideration I think it’s a lot of complexity without a good reason. Many Redis setups are network or memory bound actually. Additionally I really believe in a share-nothing setup, so the way I want to scale Redis is by improving the support for multiple Redis instances to be executed in the same host, especially via Redis Cluster."
The RAM would have to be a multiple of the dataset, because its shared-nothing, running right into one of the two common limits, right?