This is a question, can caffeine be used as a distributed cache?
Not by itself. Caffeine is only a local cache, so it could be a building block.
For example, Infinispan 9.0 swapped out its internal cache for Caffeine. That's a good indicator that others could do the same, build new ones using this library, or adapt Caffeine's ideas. There are a lot of options out there and I don't have any recommendations.
Hope that helped.
Sorry for revisiting an old issue, but would you be so kind as to share the available options that you know out there, without making any specific recommendation, @ben-manes ? Thanks!
PS: Truly amazing work, btw. I'll be using Caffeine in the Grakn rewrite (2.0) @graknlabs. Thank you so much!
Typically distributed caching means that data is replicated and consistent across multiple nodes. So memcached and redis would be a remote cache, but not distributed. Redis clustering (sentinel, ElastiCache) might fit that, though. It is ill defined term and data consistency levels vary.
Unfortunately there isn't a jespen.io analysis for this area, with only one product below being evaluated and failing badly. These would be distributed with local, remote, replication of caches managed by the vendor.
I cannot make a recommendation due to a lack of familiarity. I would just advise that this choice is like that of a database, hype or brand doesn't mean it is high engienering quality.
Thanks, @ben-manes !
Redis 6 added some client-side caching, which could be interesting too.
https://redis.io/topics/client-side-caching
Hi @haikalpribadi,
Out of curiosity, can you describe a little what is your use case?
(I'm a Ph.D. student working occasionally with @ben-manes and my research topic is caching)
Hey @ohadeytan,
We're building a logical database (aka. knowledgebase) at @graknlabs (people call these days also call it "knowledge graph"). It has a formal knowledge representation system and it performs logical reasoning. One of the characteristics of the formal KR system is that the attribute values in the knowledge base are "globally unique" and immutable. To implement attributes being immutable, we need an in-memory cache as part of the strategy. And we're currently heavily refactoring and rewriting the underlying architecture for scalability so we need a performant in-memory caching system. :)
That's kind of the gist of it - in a nutshell. Hope that helps!
Sounds interesting! Thanks
Most helpful comment
Not by itself. Caffeine is only a local cache, so it could be a building block.
For example, Infinispan 9.0 swapped out its internal cache for Caffeine. That's a good indicator that others could do the same, build new ones using this library, or adapt Caffeine's ideas. There are a lot of options out there and I don't have any recommendations.
Hope that helped.