Cache de hibernação em cluster com ehcache: leitura estrita vs. gravação estrita
Qual é a diferença real entrenonstrict-read-write
eread-write
? Eu posso ler os documentos do ehcache e do Hibernate, mas até onde eu vejo eles dizem apenas que "a leitura e gravação é melhor se você fizer atualizações". Eu acho isso insatisfatório.
Talvez eu tenha um problema com a coleção em cache de longa duração configurada da seguinte maneira:
<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>
O que exatamente acontece quando a coleção é atualizada, no nó em que a atualização ocorre e em outros? Qual é a diferença entrenonstrict-read-write
eread-write
aqui? É possível que um nó use sua versão antiga de 10 minutos do cache?
Observe os tempos limite longos e a replicação assíncrona.