Refactor Redis commands and connection pool#6055
Refactor Redis commands and connection pool#6055FAYiEKcbD0XFqF2QK2E4viAHg8rMm2VbjYKdjTg wants to merge 6 commits intoenvoyproxy:masterfrom
Conversation
f4ebf88 to
ca8ab1a
Compare
|
🔨 |
|
@FAYiEKcbD0XFqF2QK2E4viAHg8rMm2VbjYKdjTg generally LGTM. Please merge master and I will take a look. /wait |
|
@FAYiEKcbD0XFqF2QK2E4viAHg8rMm2VbjYKdjTg apologies but you will need to fix DCO. Sorry for the trouble. It might be worth getting a few tips from @HenryYYang if you are sitting next to him. /wait |
|
Yeah, I'm looking at it :| |
8df7a0e to
069d0f8
Compare
|
Coverage has a (new) failure with a test unrelated to my changes. @mattklein123 I'll take a look at this after lunch. |
|
@FAYiEKcbD0XFqF2QK2E4viAHg8rMm2VbjYKdjTg merge master again, I just fixed that flake. |
069d0f8 to
3c27d28
Compare
wqupdate redis_proxy so that it builds, but tests will fail Signed-off-by: Nicolas Flacco <nflacco@lyft.com>
…hcheck or proxy Signed-off-by: Nicolas Flacco <nflacco@lyft.com>
Signed-off-by: Nicolas Flacco <nflacco@lyft.com>
Signed-off-by: Nicolas Flacco <nflacco@lyft.com>
Signed-off-by: Nicolas Flacco <nflacco@lyft.com>
Signed-off-by: Nicolas Flacco <nflacco@lyft.com>
3c27d28 to
3354f9c
Compare
|
The implementation of InstanceImpl in conn_pool_impl.h and conn_pool_impl.cc are specific to redis proxy and it incompatible with redis cluster, we should leave them in the redis proxy filter. |
|
@HenryYYang per offline convo please review first and then I will take a final pass. /wait |
|
I believe we are going with the other opened PR so closing this one. |
This is part of the effort to build a proxy for Redis Cluster (#5697).
The new proxy will live in a folder next to the old Redis proxy, as opposed to simply being a config change or flag. The rationale for creating two separate proxies is as follows. Redis Cluster has additional commands which will be internal to this proxy, which essentially functions as a smart client. It needs to maintain the cluster topology as well as sending commands to nodes to go from readonly to readwrite mode on change from replica to master. As we develop the new proxy we prefer to keep the changes separate from the old one so as not to affect other users. We can always merge the two later on.
In this PR, we move common Redis code (connection pools, command splitting, etc.) to a common folder, and change the related dependencies in redis_proxy, healthcheck and tests. In future PRs we will reuse the common code in the new proxy.
FYI @HenryYYang @mattklein123 @danielhochman