-
-
Notifications
You must be signed in to change notification settings - Fork 132
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
Connection Recovery #201
Comments
@allen-servedio Just to get more context - Is this within a If yes, I have the same questions, have been trying to address it here - #207. Or if that is an overkill, have added some extra macros that address your questions here - https://github.com/aravindbaskaran/redis-pubsub Do let me know your thoughts on that? |
I'll pile on—we're also getting frequent EOFExceptions, including SocketTimeoutExceptions and "Carmine connection error"s. Our application is NOT using pub/sub, only blocking stuff, and we have a super basic setup. (def conn {:pool {} :spec {:uri (env :redis-url)}}) We are, however, on Heroku which has a default connection timeout of 300 (seconds). Is that possibly impacting the situation? We're trying to decide whether we need to simply wrap our |
Hi all- Haven't had an opportunity to look at this properly yet, but just checking in the meantime: has anyone tried tuning their connection pool config? Carmine doesn't have a built-in retry mechanism, but the pool's behaviour is fairly configurable (for example- you could setup test-before-use). |
Thanks for the speedy response. I'm seeing |
And I'm assuming they have a performance trade-off? |
For what it's worth, Heroku responded to my questions about dropped connections:
@ptaoussanis: Just making sure I understand correctly: When a connection in the pool goes bad, that's only discoverable by a failed query, right? I implemented a I can totally appreciate a case against a retry strategy too (given that retry strategy implies, well, a strategy, and apps might differ in how they want that set up); just curious what your thoughts are... |
I'm getting the The error only goes away when the repl has restarted. Is there a way to reset this? |
Apologies for the long-delayed reply!
Correct, that's exactly what I'm talking about 👍 "test" in this context just means to ping the server and confirm that it responds with a pong.
What data were you looking at specifically? If you're doing something with really exceptional latency requirements, you could consider
I'm not sure what you mean by "reset" here, sorry. I'd recommend trying with a connection pool, and enabling connection testing if you're seeing frequent restarts. Hope that helps! Again apologies everyone for the slow response. |
I am not sure if (or should) anything can be done here, but I am seeing this scenario and wonder if there is a way to have the system recover from this more quickly:
Is it possible (and is it a good idea?) for Carmine to try to refresh the connection and retry the call once, when this happens, before giving up and failing?
I have not tried this in a highly concurrent environment yet where I would have several connections in my pool so I don't know if this would also happen for each connection in the pool...
Here is the error that I see (truncated to knock out my code):
The text was updated successfully, but these errors were encountered: