example.com/path/to/article
000 points · username · 0 hours ago
example.com0 points · 0 comments · 7 years ago · antirez
1. Tooling to make it simpler to start a Redis Cluster in a single host if all you want is to leverage all the cores.
2. Smartness in the AOF rewriting so that instances on the same host will do a better use of the disk.
3. A caching mode for Redis Cluster. This is useful for deployments where most accesses are idempotent and you have for instance a cluster of 10 physical hosts running, for instance, 32 Redis instances each. When an host is no longer reachable we don't want failover in that case, but just reassignment of hash slots to the other masters. Think at consistent hashing but on the server side.
Two years ago I had this private branch that I wrote in a few days that threaded Redis, with N event loops on N threads. After realizing that it worked and scaled, I considered how many bugs such Redis would have, how harder it would be to add features, and how incompatible is to have a single huge instance with Redis persistence method. In that moment and after consulting with other engineers I decided that for a few years our strategy will be Redis Cluster. Maybe I'll change idea in the future? Maybe, but first let's explore what can be done with a shared-nothing architecture that keeps the promise of continuing to deliver software that hardly crashes ever.
EDIT: Obviously the proxy itself is multithreaded :-D
EDIT2: Btw jdsully already sent a PR to the original Redis project, so I guess a smart developer exposed to the Redis core is great anyway!
jdsully
sagichmal
DrJosiah
What I did a year ago was just make Redis cluster able to do Lua scripting transactions on arbitrary keys across the cluster. With rollbacks, like my 2015 patch.
https://smackernews.com/item/16294627 HN
Instead of reinventing a bad wheel, you could have something better.
e12e
rainhacker
xfalcox
ohnoesjmr
One of my main reasons for doing multithreading, and FLASH in the first place was to make Redis work well for much larger value sizes.
I really think we have different use cases in mind.