From: Christian M. <vc...@cl...> - 2002-09-23 04:18:35
|
Little more thought on this subject ;) Like i said in a previous mail, i understand fully now what Gavin is doing (and why he is doing it) with the ReadWriteCache implementation. However i believe such implementation which is 100% safe got some tradeoff ( each method are synchronized ), i am under the impression (Wrong ?) that for a web based application (only pretty short transaction / if a tx begin at t0 it will end before a tx that started at t1) that do not manage sensitive information like banking records such security level is a bit overkill. It could be usefull in such case to be able to use a lightweight version of the ReadWriteCache that does not need to synchronize each of its method. It will ensure the best performance and can be distributed with a jcs lateral caching. I am think about this: (1) Coarse grained approach : configure hibernate to use a custom CacheConcurrencyStrategy for every cached class: Something like this in the hibernate properties: hibernate.jcs_cache.read_only_concurrency_strategy cirrus.hibernate.cache.ReadOnlyCache hibernate.jcs_cache.read_write_concurrency_strategy cirrus.hibernate.cache.ReadWriteCache (2) Fine grained approach : enhance the <jcs-cache> to support a concurrency-strategy attribute: Something like this in the metadata info: <class name="eg.Foo"> .... <jcs-cache usage="read-write" concurrency-strategy="cirrus.hibernate.cache.ReadWriteCache"/> </class> What do you think about this ? Regards Chris |