Skip to content
This repository has been archived by the owner on Feb 21, 2023. It is now read-only.

Add cluster support #119

Closed
wants to merge 87 commits into from
Closed

Add cluster support #119

wants to merge 87 commits into from

Conversation

ghost
Copy link

@ghost ghost commented Apr 5, 2016

I have continued the work of trezorg to add cluster support. All the old tests now run against both a standard Redis and a Redis cluster (except those which test features that are not available or not yet supported on a cluster).

trezorg and others added 28 commits April 6, 2016 11:40
It is working only with masters nodes properly.
…ctionality is not implemented yet or doesn't make sense on a cluster.
…t it can be imported in application tests.
… anymore to download the redis-trib.rb file from Redis source.
… race conditions when accessing the cluster_pool
@m4ce
Copy link

m4ce commented Mar 23, 2018

👍

when is this functionality expected to be ready?

@rrueth
Copy link

rrueth commented Apr 6, 2018

I really appreciate everyone's efforts here. It looks like quite an undertaking. Given that everyone has limited amounts of time to spend on open source projects, it feels like this PR is moving in spurts, but then gets out of sync with the master branch.

Would it help to break this into lots of smaller PRs that we could start merging into master and continue to consider the cluster support a WIP during that time? For example, maybe a single PR that defines the Redis cluster commands. Then, a PR for how to establish a connection pool for Redis cluster.

I'm not sure what the best breakdown would be, but I might be able to offer some help if @The-Panda or @popravich (or anyone more knowledgable than me) had some ideas on the best way to break this into smaller chunks.

@SrujithPoondla
Copy link

@The-Panda does this fork support the full functionality of cluster? If not could you direct me to the working repo with cluster support.
Thanks!

@pedrokiefer
Copy link

@The-Panda do you have any ETA on rebasing this PR? I would be willing to finish it if you don't have the time.

@mmniaziqb
Copy link

Hi everyone, I have created a PR on ymap:master which brings this PR to state of latest master:
kialo#3

I will create a direct PR on this repo, if above does not get merged in a day or two (not sure if that's right way of doing this).
I am willing to actively extend or fix this pr as we are using aioredis in production and are waiting for this to get merged so we can add more shards in production.
Thanks

@ghost
Copy link
Author

ghost commented May 29, 2018

Thanks to the work of @lemurchik and @mmniaziqb this pull request is now again up-to-date with aioredis:master.

However, @popravich has stated above that he is not considering to merge this pull request and has his own plans for working towards a cluster commands implementation.

Until then, this PR provides almost all functionality of Redis cluster mode. My organization uses it successfully, but is not planning to do any work on it besides bugfixes and sometimes merging the original aioredis master.

@rrueth
Copy link

rrueth commented May 29, 2018

Thanks for all of your work @The-Panda! @popravich is there anything that we can help with to bring this in line with your expectations for cluster support in aioredis?

@popravich
Copy link
Contributor

Thank you guys for all the work!
Please give me some time to review this.

@pedrokiefer
Copy link

@popravich any updates on the review of this PR?

@asgoel
Copy link

asgoel commented Aug 23, 2018

@popravich any updates on this?

@asgoel
Copy link

asgoel commented Aug 30, 2018

Hi @The-Panda, do you have any plans to add support for the ASK/ASKED semantics? According to the redis cluster docs, no client is considered complete without support for this.

@asgoel
Copy link

asgoel commented Sep 12, 2018

@The-Panda @popravich I have made a bunch of improvements to this fork including better handling of error responses (MOVED/ASK/CLUSTERDOWN/etc), Connection Errors, as well as support for pipelines and transactions. Would there be any interest in merging those changes in as well? @popravich are you generally happy with the approach taken here or were you planning on making wholesale changes?

@rubik
Copy link

rubik commented Dec 23, 2019

@asgoel @The-Panda @popravich Any updates on this PR? The library is really lacking without this feature.

@eoghanmurray
Copy link

@asgoel have you published those improvements on github?

@asgoel
Copy link

asgoel commented Jan 17, 2020

@eoghanmurray yes they're on this branch here: https://github.com/ramjet-labs/aioredis. Note a lot of transaction stuff is quite hacky, but if you don't intend it using that too heavily it should be fine. Furthermore, there are probably some bugs around when nodes go down, but I think it generally works pretty well. We've been using this branch in production for over a year with minimal issues. Feel free to make any improvements you see fit!

@bsergean
Copy link

FYI there's a redis cluster proxy in the work, by the redis team -> https://github.com/artix75/redis-cluster-proxy

@seandstewart
Copy link
Collaborator

@ghost @The-Panda @asgoel

Maintenance for this project has finally resumed! This is a very long-running PR and it looks like attempting to merge in the existing request may not be fruitful, but I'd love to get Cluster support in with the next release!

I'm going to close out this PR for now, but if anyone is willing to take on the work of finalizing this feature and getting it into master, please let me know. I'm happy to invite you as an official contributor to ease the work and reduce the risk of it going stale again.

@DriverX
Copy link
Contributor

DriverX commented Dec 11, 2020

Advertising time =)

I finally released cluster support extension library for aioredis. Enjoy!

https://pypi.org/project/aioredis-cluster/

Library works in production for over a year now and work's great.

@bsergean
Copy link

bsergean commented Dec 11, 2020 via email

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

Successfully merging this pull request may close these issues.

None yet