eleme / corvus

A fast and lightweight Redis Cluster Proxy for Redis 3.0
MIT License
790 stars 142 forks source link

Corvus key distribution algorithm #143

Open inigoml opened 6 years ago

inigoml commented 6 years ago

Hi. We are currently working with nutcracker (twemproxy) in order to create our own redis cluster. However we are experiencing some scaling problems due to twemproxy is not multithreaded. In order to start testing with Corvus using the same existing cluster, we would like to know which key distribution algorithm is being used currently in order to know if we can use the same existing cluster to test in parallel both solutions. If corvus use ketama as algorithm we would use is without any complex migration procedure for our persistent keys.

Thanks in advance.

maralla commented 6 years ago

Corvus is a proxy for cluster mode Redis(>=3.0). So the key distribution algorithm is determined by the sharding mechanism of Redis. And I think you have to prepare a migration process as the ketama algorithm is not used by Redis.

inigoml commented 6 years ago

OK, totally understood. Twemproxy does not use redis cluster and so distribution is done by proxy. If we want to migrate to Corvus we should take care of non-persistent keys currently inside our twmproxied redis cluster.