I've been trying to study distributed caching for some time and have not been to clarify certain concerns listed below:
- Does distributed caching means that the cache should be distributed or distributed applications making use of caching of persistent data in a consistent manner.
- In case the caches too are distributed do they need to be disjoint in terms of cache entries or they can share them or the cache entries in each cache should be the same.
- Where should the cache reside. Inside the application process or externalized and if both approaches are viable then which one should be preferred in what scenario.
- In case of in process distributed caches how does the coherence communication takes place.
- In case the cache sits outside the application instances, is there a benefit of distributing the caches and maintaining coherence between them in a non disjoint manner OR is it better to maintain one single cache(or multiple disjoints).
- In case of the cache instance(s) being externalized from the application instances how significant the network overheads could be. Or how concerned one should be about the network overheads(process to cache communication) while the trying to build a distributed caching solution.
I am a little novice on things so certain concerns listed above might even make no sense. Solutions/ Corrections are also suggested on this.