Comments (3)
That's a lot of issues in one comment. I mostly agree with your requests.
Dalli SHOULD only try to connect once per second. When a production system is calling memcached 100s of times per second, you cannot afford to wait 10 minutes for what might have been a temporary network hiccup. Once per second is, in my view, a reasonable trade off as long as Dalli is not filling your logs with errors.
Could you give me the exact output of what you are seeing?
from dalli.
The problem seems to be that dalli tries to get the version only once when dalli/ the servers are setup (Server#initialize). If a server is down, dalli somehow messes up so thar the whole app fails on each request.
I think it'd be better to move the code to detect the version from initialize to up!. This would also make dalli to redetect the version in case a server was shutdown and back up again (ex after an upgrade of the server).
I saw the code for the once per second (it's not very accurate because you simple check the second and dont take into account at which time you are within this second), but it should be easy to enhance this.
I'll also try to move the main connect code out of #connection and out it into #connect.
I hope to submit pull requests shortly :)
from dalli.
Fixed now! :)
from dalli.
Related Issues (20)
- All servers are eagerly flushed at the end of a multi block
- Unable to connect to a dragonfly memcache instance HOT 2
- `cache_nils` is `true` by default HOT 1
- Question: Session cookies with Dalli HOT 1
- Meta protocol flush_all method is vulnerable to code injection (Lack of input type check) HOT 7
- Behavior around clear
- Hanging when performing read_multi against large number of keys HOT 4
- DalliError: Response error 6: Incr/decr on a non-numeric value HOT 2
- Dalli sometimes returns incorrect values HOT 18
- Loss of Connections after upgrading to dalli 3.2.3 HOT 3
- `cache_nils` vs `skip_nil` HOT 3
- No request in progress HOT 2
- IO::TimeoutError exceptions are not handled, breaking automatic retry HOT 4
- connection_pool gem is required HOT 11
- Ruby 3.3: warning related to base64 missing in the gemspec
- TypeError: no implicit conversion of Hash into String HOT 27
- Add TruffleRuby to CI? HOT 2
- 3.2.7 tagged logging issue HOT 1
- TypeError raised in latest Socksify when initializing Dalli client with version 3.2.7+ HOT 4
- Should I react to the "Fork detected, re-connecting child process" exception? HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dalli.