4 ms·
First, HyperDex is well-optimized C++ code. And second, they take issue with the standard benchmark we used to evaluate both systems. While we recognize that Re
by rescrv 14y ago
First, HyperDex is well-optimized C++ code. And second, they take issue with the standard benchmark we used to evaluate both systems. While we recognize that Redis may have an impedance mismatch with the benchmark, we were hesitant to create our own lest we inadvertently introduce bias toward our system. Thus the numbers reported are accurate, but the generic nature of the YCSB benchmark may not be exploiting all that Redis offers. We'd love to work with the Redis team on a standardized benchmark we both can get behind but that has not yet happened (and may never happen).
In the grander scheme of things, the two systems are very different. In my opinion, Redis is very well suited for inter-process communication where extremely low latency is necessary and data is ephemeral. HyperDex, on the other hand, is great at storing persistent data. The configurable fault tolerance setting makes it very clear how safe your data is, and the strong consistency is very convenient when building applications. Further, HyperDex is built from the ground up to operate in a clustered environment and does so quite well.
- gizzlon 14y agoI see.. I googled it and it seems like the comparison is multi-threaded (multi process? multi machine??) vs single-threaded, single process. It doesn't really seem like a fair comparison, and since you guys are obviously knowledgeable I bet you understand as much. Please don't let what seems like a cool project be tainted by marketing bullshit. (I really, really hate marketing bullshit :)
- rescrv 14y agoI bet you found the thread on their mailing list. I was the one who ran the benchmark and it was one core vs. one core. In the other benchmarks we had multiple machines, but not the Redis benchmark. We clarified after they speculated that a multi/single comparison was performed. The main issue they had was YCSB's method of storing multi-attribute objects as maps (from attribute names to their values) and the fact that Redis cannot support search across keys so YCSB searches within a single set.