【问题标题】:infinispan hibernate cache evictioninfinispan休眠缓存驱逐
【发布时间】:2015-11-07 19:41:06
【问题描述】:

我正在使用 Infinispan 6.0.0 和 Hibernate 4.3.6。

我的配置是:

    <!-- Default configuration is appropriate for entity/collection caching. -->
   <namedCache name="entity">
      <clustering mode="invalidation">
         <stateTransfer fetchInMemoryState="false" timeout="20000"/>
         <sync replTimeout="20000"/>
      </clustering>
      <locking isolationLevel="READ_COMMITTED" concurrencyLevel="1000"
               lockAcquisitionTimeout="15000" useLockStriping="false"/>
      <!-- Eviction configuration.  WakeupInterval defines how often the eviction thread runs, in milliseconds.  
           0 means the eviction thread will never run.  A separate executor is used for eviction in each cache. -->
      <eviction maxEntries="${infinispan.maxEntries:10000}" strategy="LRU"/>
      <expiration maxIdle="${infinispan.maxIdle:-1}" wakeUpInterval="5000"/>
      <!-- <transaction transactionMode="TRANSACTIONAL" autoCommit="false"
                   lockingMode="OPTIMISTIC"/> -->
   </namedCache>

系统属性未设置,因此应用默认值 (10.000, -1)。

据我了解,当未达到 maxEntries 时,永远不会发生驱逐。

对于我的一些实体,缓存条目在添加到缓存后很快就会被删除。 add 只是一个返回很多这些对象(

那么是什么导致 infinispan 从缓存中删除对象呢?

谢谢

【问题讨论】:

    标签: java hibernate caching infinispan


    【解决方案1】:

    我怀疑您遇到的问题是 Infinispan 7.2.x 之前的版本,驱逐是在段级别完成的,所以如果段大小达到它的限制(这是 maxEntries 的一小部分),那么它就会启动驱逐。如here 所述,该问题已在 Infinispan 7.2.x 中解决。您应该尝试使用 Infinispan 7.2.x,它应该适用于 Hibernate 4.3。

    【讨论】:

      【解决方案2】:

      是的,除非您 explicitly provide that info,否则 Hibernate 不知道本机查询中更新了什么,因此它会清除整个二级缓存以防止保留陈旧数据。

      告诉Hibernate原生查询不影响二级缓存中的任何数据:

      SQLQuery sqlQuery = session.createSQLQuery(" ... ");
      sqlQuery.addSynchronizedQuerySpace("");  
      sqlQuery.executeUpdate();
      

      【讨论】:

        【解决方案3】:

        好的;明白了……

        在 Hibernate Query.executeUpdate() 中清除关联的实体缓存。

        其他 ORM 也这样做?

        【讨论】:

          猜你喜欢
          • 2015-10-23
          • 2019-03-17
          • 2023-03-03
          • 2014-11-23
          • 2016-09-12
          • 2014-05-10
          • 2021-02-18
          • 2017-05-20
          • 2013-12-14
          相关资源
          最近更新 更多