-
Notifications
You must be signed in to change notification settings - Fork 994
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
Introduce command replay filter to avoid command replaying after reconnect #1310
Comments
So basically you’re asking for exceptionally completing commands if the server goes down so that non-executed commands aren’t retried upon reconnect? |
Yes. That's what I want. What I want is Currently, In order to use Reliability = AT_MOST_ONCE, we have to set autoConnect = false. so, reconnection will not be established. |
At least once wouldn’t work with auto-reconnect disabled while at most once would (that’s the default). I’m rather considering a |
Looks like we're also experiencing this issue: during traffic spikes and resulting CPU load, Lettuce seems to amplify Redis calls, causing Redis to enter a failure state: Lettuce keeps reconnecting and resending commands, and Redis stays at 100% CPU and that results in more timeouts. |
@mp911de is this capability on your roadmap? |
It is, but I currently don't have the bandwidth to implement it. |
Feature Request
Is your feature request related to a problem? Please describe
For now, we are using lettuce to handle large scales of traffic. The traffic that comes to REDIS cluster per minute is more than 10 million per minute. In this situation, there are some cases where REDIS went down abruptly with various reasons(hardware failure, instance restart etc). The problem that we are facing is when the restarted REDIS instance is attached to REDIS cluster, there are a big CPU spikes causing latency spikes. It turns out that when REDIS instance goes back to REDIS cluster, lettuce client try to send the failed command to the recovered REDIS INSTANCE using AT LEAST ONCE mode of reliability. After changing auto reconnect mode to false,
the latency spike problem is gone. But, another problem that we have is we cannot reconnect that recovered REDIS instance. This is because only way to change reliability is to change auto connect mode. So, my suggestion/question is
why can't we set the only reliability level regardless of auto connect mode?
Is there any reason why reliability level should follow the auto reconnect mode?
A clear and concise description of what the problem is. Ex. I have an issue when [...]
Describe the solution you'd like
I want to suggest that if we can adjust the reliability level creating another option like RELIABILITY.
That can solve my problem.
A clear and concise description of what you want to happen. Add any considered drawbacks.
For now, I didn't understand why this RELIABILITY has to follow the auto reconnect mode.
The text was updated successfully, but these errors were encountered: