Page MenuHomePhabricator

Phase out nutcracker for connecting to redis
Open, MediumPublic

Description

Nutcracker is currently not maintained (has something like 6 commits over the last 4 years, all merging external pull requests) and is currently used only to proxy connections to the redises running on the memcached hosts.

I would like to simplify our stack by removing nutcracker from the path to redis. To substitute for it, we can:
1 - Use the sharding/failover functionality baked into RedisBagOfStuff, at the cost of slightly worse performance because we would do hash routing in PHP. The risk I see is that we'd have to enable persistent connections in php-redis
2 - Use envoy also to proxy to redis - the redis support in envoy is pretty advanced at this point and includes the ability to mirror writes, which is interesting to us. See https://www.envoyproxy.io/docs/envoy/v1.16.0/intro/arch_overview/other_protocols/redis.html. The only risk here is that some quirks in envoy's proxying cause problems.

Event Timeline

Joe triaged this task as Medium priority.Mar 11 2021, 3:27 PM
jijiki renamed this task from Get rid of nutcracker for connecting to redis to Phase out nutcracker for connecting to redis.Apr 19 2021, 7:09 PM