Guest
Welcome login
Share/Save
Share/Save
TIBCOmmunity > Blogs > ActiveSpaces > Tags
Home   Members Communities

ActiveSpaces

1 Posts tagged with the distributed_cache tag
4

One of the first things I want to address on the subject of datagrids is a mistake that I have heard way too many people make: a distributed cache is NOT a Datagrid!

 

Many people use the two terms interchangeably because I believe they focus only on the 'distributed' part which both types of systems have in common but doing so, they totally forget about the implications of the 'cache' part:

 

A cache can not be used as a System Of Record.

 

One of the properties of a cache is that it can evict entries that have been previously put in it, in order to make room for newer entries. And when a cache evicts an entry, it does it quietly and without telling any of it's clients about it. This means that you can not 'trust your data' to a cache as it could disappear from it at any time, but rather you have to use it in a 'cache-aside' architecture to cache a proper System Of Record. Querying a cache does not give you an authoritative answer like a System Of Record would: if there is nothing in the cache that matches your query you do not know if that is because matching data was never put in it, or because there was something but it was evicted and you therefore need to perform the same query again in the System Of Record (thereby negating the performance advantage of using a cache) to get it.

 

ActiveSpaces however can be used as a System Of Record because it will not evict entries from the Spaces, even if this means that a new call to insert data into a Space can fail if there is not enough memory currently available in the cluster to store a new tuple in the Space. Fortunately, ActiveSpaces makes it very easy to increase the amount of memory available to a Space: just launch another instance of your application or an agent process, no reconfiguration needed, no down-time required.

4 Comments Permalink