Closed davidkarlsen closed 4 years ago
Thanks for reporting the issue. Yes, it seems to be Xmemcached related. Unfortunately, haven't used it with mcrouter. I will take a closer look if there is something we can do in the library to remedy the issue.
@davidkarlsen Until this issue is reproduced and resolved (as it appears the issue originating from XMemcached library), I am thinking into creating the patch version, where the default client would be switched back to AWS' spymemcached.
Do let me know if you would find the patch useful for you, until the issue is resolved?
See https://github.com/killme2008/xmemcached/issues/107 - I could get it working, however - it might be useful for clients to select implementation ("static", "aws" or "appengine") vs ("xmemcached", "spymemcached", "aws", "appengine") - is that what you were thinking about?
Another option is to let clients provide a bean themselves, and conditionally kick in the autoconfig?
See killme2008/xmemcached#107 - I could get it working,
So it does work with new mcrouter configuration. Although I'm not familiar with mcrouter and if the routing actually works without pools
definition. Strange thing is that it used to work with SpyMemcached, and not with XMemcached.
however - it might be useful for clients to select implementation ("static", "aws" or "appengine") vs ("xmemcached", "spymemcached", "aws", "appengine") - is that what you were thinking about?
Regarding the patch, you wouldn't really need to change anything with your config (if you are relying on the auto-configuration), updating the library version would opt to using SpyMemcached as the default client. The provider
option would remain the same e.g. static
where you provide your list of memcache server(s), aws
or appengine
.
Another option is to let clients provide a bean themselves, and conditionally kick in the autoconfig?
This is how it works from the first version of library. If you configure your own CacheManager
bean, auto-configuration will be skipped. So no changes regarding this functionality.
Could you also paste your Spring Boot configuration with the library properties you are using. I will try to find some time to debug it, and find out what might be causing the issue.
The difference lies in the libs, xmemcached does a touch as well.
The difference lies in the libs, xmemcached does a touch as well.
Yes, from the interface perspective XMemcached and SpyMemcached are quite similar, in the implementation they do differ.
If 2.0.0 works for you with mcrouter I would close this issue. I'll create a new issue for the patched version today, which would allow a user of the library to choose SpyMemcached and XMemcached client (if for some reason they prefer one over the other).
The old version used to work with mcrouter, there seems to be some snag, I get:
My mcrouter-config is:
it works fine if I point directly at the memcached-servers. I guess this is more of a question to the underlying memcached driver implementation - but thought I'd leave a mark here as well.
Do you have any experience using it with mcrouter?