Hi, I'm looking for a caching solution that can do these things:
- it should work in a cluster, with a single database used for persistent storage
- initially, the caches will preload a specific set of data (different for each cache)
- whenever an object is requested from a cache, if it is not already available, it should
be retrieved from one of the other caches in the cluster; if it still can't be found,
then it should be retrieved from the database
- whenever an object is modified, the current cache should keep the new value, and it
should invalidate it in all the other caches
- whenever an object is loaded from the database or newly inserted in a cache, it should
not be immediately replicated to the other caches, but only on demand
- each cache should drop (evict?) objects as needed (because of memory constraints), and
that should not directly affect other caches in the cluster
- each cache should flush its modifications to the database at (configurable) regular
intervals, in batches
- if possible, each modification or insertion into a cache should be immediately
serialized to a local file before finishing the transaction; these files should be deleted
whenever the changes are flushed to the database
- if possible, each cache should be able to listen to updates or inserts into other
caches, based on certain conditions
Can TreeCache (probably used with Hibernate) do these things? If it can, then could you
briefly explain how to configure and use it to achieve these features?
If you have questions about any point, I can give more details and reasons, and you can
provide alternative solutions.
Thanks
Adrian
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4046023#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...