[...] in a thread https://groups.google.com/forum/#!searchin/golang-nuts/groupcache/golang-nuts/ITxRD9FLOoU/L1LalClpaHEJ on the group someone pointed out:[...]
If the cost of querying a remote server and fetching the result is higher than the cost of computing the result then groupcache isn't what you want.
Unlike memcached, groupcache:
... supports automatic mirroring of super-hot items to multiple processes. This prevents memcached hot spotting where a machine's CPU and/or NIC are overloaded by very popular keys/values.
It's a completely different usecase to memcache and I think that confuses people.
groupcache is a caching and cache-filling library, intended as a replacement for memcached in many cases.
I wanted to get some inputs from the group on suitable use cases for GroupCache, which problem does it solve well?
OTOH, groupcache has neither cache invalidation (one of the "three" hard problems in computer science) nor value updating, which keeps its implementation considerably simpler and enables a key feature. AFAICT, this is the main reason for it being said that it is "a replacement for memcached /in many cases/" (emphasis mine). In practice though, this isn't anything that can't be taken care of in application code by careful key formulation.
--
OTOH, groupcache has neither cache invalidation (one of the "three" hard problems in computer science) nor value updating, which keeps its implementation considerably simpler and enables a key feature. AFAICT, this is the main reason for it being said that it is "a replacement for memcached /in many cases/" (emphasis mine). In practice though, this isn't anything that can't be taken care of in application code by careful key formulation.