4 ms·
Being faster (in throughput) than Redis doesn't seem that difficult, Redis is mostly single core. But with that restriction comes the magical constraint that yo
by nicpottier 9y ago
Being faster (in throughput) than Redis doesn't seem that difficult, Redis is mostly single core. But with that restriction comes the magical constraint that you can run Lua on that single core without having to think about race conditions or concurrency. For many complicated systems this is an incredible property and can provide incredible power. Yes, you may eventually outgrow Redis, but if you do then you are entering pretty crazy territory where you will likely need something custom anyways.
All that to say, that particular comparison feels a bit Apples and Oranges to me.
- ricardobeat 9y agoThe comparison with Redis is on page 10, and (obviously) takes into account the number of threads. It is a bit presumptuous to post a comment like this without minimal effort, please don’t. Regarding embedded processing, it’s very easy to embed whatever single-threaded language you’d like into C: Lua, Javascript or something new like Gravity. This is orthogonal to the storage / network architecture. A better argument would be on the extra operations and data structures that Redis offers, not being a simple key-value store.
- nicpottier 9y agoThe comparison to Redis is in the 4th paragraph of the linked article. "The paper includes numbers showing it beating Redis by over 10x on a single AWS instance" I'm sorry I didn't go read the original paper, but I thought reading the article qualified me to comment. Sorry dad. I think you also misunderstood my point about Lua. Embedded Lua in Redis is so powerful BECAUSE it is single threaded, not because it is just snazzy to have an embedded language. That with the primitives Redis provides allows you to build your own domain specific data structures with their own custom semantics that just aren't possible in other systems without rolling your own. And you can do it simply. That Anna is faster is great, but it comes with its own set of constraints, I don't think I would be wrong in saying that includes you not having exclusive access to the data while you are in an embedded script running on the store.
- naasking 9y ago> "The paper includes numbers showing it beating Redis by over 10x on a single AWS instance" Right single core against single core,the best scenario for Redis, and Anna's an order of magnitude faster. I'm not sure what you don't find impressive about this.
- nicpottier 9y agoAhem. Single AWS instance does not equal single core. See my earlier note, it is a bit apples to oranges. Redis is not optimized for throughput on a machine, it is optimized for throughput on a single core. And that property allows lots of interesting things due not having any parallelism. They are different tools and they have different performance characteristics. My only point was that comparing against Redis is somewhat misguided due to those differing goals.
- ricardobeat 9y agoThe article is comparing the [new] underlying architecture of a key-value store, which Redis also is (and one of the fastest). The other features are irrelevant for the comparison. “Anna” is a proof of concept, not a competing product.
- deleted 9y ago[deleted]