“nonstrict-read-write” 和 “read-write” 之间的真正区别是什么?我可以阅读 ehcache 和 Hibernate 文档,但据我所见,它们只是说“如果您执行更新,则 read-write 更好”。我认为这并不令人满意。
我可能会遇到这样的问题,即长时间缓存的集合配置如下:
<cache name="trx.domain.Parent.children" maxElementsInMemory="5000"
eternal="false" overflowToDisk="false" timeToIdleSeconds="1200"
timeToLiveSeconds="1800">
<cacheEventListenerFactory
class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"
properties="replicateAsynchronously=true, replicatePuts=true, replicateUpdates=true, replicateUpdatesViaCopy=false, replicateRemovals=true" />
<set name="children" lazy="false" inverse="true">
<cache usage="nonstrict-read-write"/>
<key column="callout_id" />
<one-to-many class="Child" />
</set>
当集合被更新时,在发生更新的节点和其他节点上会发生什么?在此处nonstrict-read-write
和read-write
之间有何区别?某个节点是否可能使用其缓存中已过期的10分钟版本?
请注意,超长的超时时间和异步复制。