Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Redis Cluster support #76

Closed
ptaoussanis opened this issue Mar 7, 2014 · 14 comments
Closed

Add Redis Cluster support #76

ptaoussanis opened this issue Mar 7, 2014 · 14 comments

Comments

@ptaoussanis
Copy link
Member

@bpoweski Hi Ben, just pinging you to reopen this - didn't realise GitHub had automatically closed the last PR (I wish they wouldn't close issues automatically).

Salvatore's just posted on multi-key Cluster support: https://groups.google.com/forum/#!msg/redis-db/R7hKYR5iBuo/8owvFFhm84sJ

Shouldn't require much (anything?) from our end.

If you're still interested in finishing up the implementation, just let me know if there's anything I can assist with.

Cheers! :-)

@ptaoussanis ptaoussanis added this to the v3.0.0 milestone Mar 7, 2014
@bpoweski
Copy link
Collaborator

bpoweski commented Mar 7, 2014

Definitely interested, just fighting the time constraints.

I'm tracking and rebasing against dev on my fork. So don't feel like you need to wait for me if want to make progress on it.

@ptaoussanis
Copy link
Member Author

Absolutely no rush or stress - please take your time!

I'm tracking and rebasing against dev on my fork.

Sure. You'll notice the old cluster branch is gone and merged into dev. It should be stable from here - all the protocol stuff that needed reworking for Cluster is done. The taoensso.carmine.cluster namespace is basically a skeleton with some notes. A lot of your code should be transplantable there.

So don't feel like you need to wait for me if want to make progress on it.

No, no - not at all. My attention's elsewhere atm and I'm not using Cluster myself so this isn't something I'll be hacking on. The initial burst in activity was just to get the protocol stuff in the right state for supporting Cluster pipelines.

@ptaoussanis
Copy link
Member Author

Quick update: discovered a minor bug with the new protocol, just pushed a fix to dev branch. The change is purely an implementation detail: won't interfere with the Cluster API at all.

@ptaoussanis
Copy link
Member Author

Update: going to be cutting a new stable release soon with all the changes in the dev branch so far.

@bpoweski
Copy link
Collaborator

Sounds great. I'll pull in the changes.

@shmish111
Copy link

@bpoweski did you get anywhere with this?

@bpoweski
Copy link
Collaborator

bpoweski commented May 7, 2015

@shmish111 I was able to get a proof of concept working but then we went a different route for the project where I planned to use it.

Coincidently, we're currently building out a twemproxy + docker + consul environment as it fits some of our goals better.

@shmish111
Copy link

@bpoweski how are you doing the sharding, your own consistent hashing?

@bpoweski
Copy link
Collaborator

bpoweski commented May 7, 2015

@shmish111 We plan to use the hashing mechanism provided in twemproxy along with pre-sharding our Redis instances. One of the biggest disadvantages to this approach is the management cost of the numerous shards and how to manage the migration to different hosts as you need more RAM. We think docker, with its ecosystem, along with consul provide much of what's needed to manage it without too much pain. Granted, this is all conjecture at this point.

@shmish111
Copy link

@bpoweski I have started to look into this again recently, how did it go with twemproxy and consul? I am investigating how we can get some sort of redis cluster going that is fast and has some failover capabilities. Using Redis Cluster is one option and I would be grateful if you could release your proof of concept somewhere? Twemproxy is the other major contender I think, could you tell me why you chose it over redis cluster and if you feel you made the right decision?

@bbsbb
Copy link

bbsbb commented Jul 19, 2016

Is there any plan on shipping this or is it looking for external help at this point?

@ptaoussanis
Copy link
Member Author

ptaoussanis commented Jul 20, 2016

Fully-baked PRs welcome, otherwise happy to implement if someone wants to fund my time on this. Otherwise don't need Cluster myself so unfortunately no other plans atm, sorry.

@lemonteaa
Copy link

Hey, just to let people know that I'm working on this in my forked repo. Since it's been so long (last updates on the order of year), with some non-trivially intertwined developments, I have first merged from the main branch into the dev branch for cluster, as well as combine codes from two different attempts. (Using rebase/cherrypick) (to take advantage of stuffs in main branch since then)

Things are actually already 70-80% completed before I started, from my first glance of the codes. I will mostly follow the plans included in the source code except for the keyslot cache data structure.

@ptaoussanis I've written a sketch of my planned design of said keyslot cache data structure in cluster.clj, could you take a look and see if it's okay? Thanks!

@ptaoussanis
Copy link
Member Author

Closing to focus on #274

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants