Live data from Hacker News

Redis cluster, no longer vaporware

antirez.com

41–50 of 52 posts

Re: Redis cluster, no longer vaporware

#41
I am going to be honest, I am somewhat disappointed.

I was hoping for a CP system with sharding + replication.

Without which we can't have things like multi-key atomic operations etc...

Will wait and see though, maybe things are better than they seem.

Re: Redis cluster, no longer vaporware

#43
> From the point of view of distributed databases, Redis Cluster provides a limited amount of availability during partitions, and a weak form of consistency. Basically it is neither a CP nor an AP system. In other words, Redis Cluster does not achieve the theoretical limits of what is possible with distributed systems, in order to gain certain real world properties.

@antirez Could you elaborate on what these properties are and your thinking behind why they're more important than AP?

Re: Redis cluster, no longer vaporware

#45
post #5
post #3

Anyone know how AWS clusters Redis? I had alwas just assumed Redis released this a while ago and that is why AWS started to support Redis along with Memcache in their clustered ElastiCache product http://aws.amazon.com/about-aws/whats-new/2013/09/04/amazon-...

That's failover -- essentially Redis Sentinel. Redis Cluster on the other hand orchestrates multiple redis instances to function as one, thereby preventing the need for redis servers that are very large and preventing the need for presharding[1]. [1] http://blog.zawodny.com/2011/02/26/redis-sharding-at-craigsl...

Redis Cluster appears to be similar to using memcached with Facebook's mcrouter [1].

[1] https://github.com/facebook/mcrouter

Re: Redis cluster, no longer vaporware

#46
post #32

@antirez, what would you say is the most useful lesson you've learned throughout this process?

Argument with people just with technical arguments, don't get into Twitter fights, and at the end of the day, use the feedbacks as a learning process, but do what you believe makes sense. So a social lesson, more than technological.

Thanks for this lesson! As much as I love using Redis, this learning will help me way more than Redis has done.

Re: Redis cluster, no longer vaporware

#47

Earlier quoted context omitted.

It won't do well, but at least Antirez is up front about the shortcomings. The article itself states that Redis Cluster will lose acknowledged writes during partitions (no P), will be eventually consistent (no C), and won't be available during partitions (no A).

Seems like given the above problems you would only want to use this with non-critical data of which you didn't care a great deal about its integrity. This doesn't describe a lot of use cases. It's not too hard to get memcached running for cluster of machines, nor is it really all that difficult to get started with cassandra for basic applications, although I haven't done it. I've heard ReThinkDB wants to be a serious…

> . This doesn't describe a lot of use cases.

It describes a huge proportion of the data I've ever worked with, because there are massive amount of use cases where what you are working with does not have to be (and as the systems scale: rarely is) the single source of truth for that data.

Redis beats memcached the moment you need more than a bunch of blobs.

E.g. our in-house capacity monitoring uses Redis for a ~1 hour time series view of our systems. We don't care about data loss - the odds of losing the data within an hour of an outage we need to care about is small enough to be justified and if that ever becomes a concern we can run two and split our updates between them. For long term storage, we migrate rolled up data to couchdb at the moment (doesn't matter what - we could use anything really; it's rarely queried and basically to let us get an occasional longer historical view to budget for resources etc).

We don't particularly care about integrity as long as it's "right most of the time" because the data gets constantly corrected, and precision in the averaged longer term numbers is not particularly important either (I want to be able to project when we run out of disk, for example - I don't care if disk usage is at 96% or 98%, as both are way too close for comfort).

Yet memcached is less attractive because it means far more book-keeping in the app. With Redis we encode part of the information in the keys (keys indicate which level of roll-up the data is at, the name of the data item, and the starting timestamp of the period the data is for) in a way that lets us easily retrieve a list of keys to do the roll-up. With Redis' Lua support we could probably do even more of the roll-up process in Redis itself, but I haven't looked at that yet.

There are a lot of apps like this, where your data volume makes hitting disk annoying (this replaced a Graphite based system - Graphite was thoroughly trashing an expensive disk array and still regularly getting too slow to us; the Redis based system uses ~10% of a much slower machine) and where the cost of losing some time window worth of data is low enough not to matter because it just means a blip in a data stream that is rapidly obsoleting itself.

Re: Redis cluster, no longer vaporware

#50

Wonder is Antirez is considering starting a commercial Redis alternative providing commercial support a la Nginx.

The world if full of possibilities... for now to be honest I focused a lot in the technical / community side, and the sponsorship model helped a lot with that. However for 10 years before starting this project I was self-employed and started two companies. So yes, doing companies is generally tempting for me, just in the case of Redis so far it was more an evolution of an hacking session, lasting 6 years.
Post reply on HN