【问题标题】:Infinispan singleFileStore cache restartabilityInfinispan singleFileStore 缓存可重启性
【发布时间】:2014-08-10 01:59:23
【问题描述】:

我正在使用 infinispan 6.0.1 版本,我已将其配置为使用 SingleFileStore 作为加载器

配置如下

<namedCache name="MyCache">
 <persistence passivation="true">
    <singleFile fetchPersistentState="true"
                 ignoreModifications="false"
                 purgeOnStartup="false" maxEntries="5000">
     </singleFile>
  </persistence>

我的问题是,这个缓存会在 JVM 重启后继续存在吗? 我的意思是说我的缓存正在保存 {n} 个条目并且我的 jvm 出现故障。 当 JVM 再次启动时,我的缓存会用 {n} 个条目初始化吗?

提前致谢!!

【问题讨论】:

    标签: java caching infinispan jboss-cache


    【解决方案1】:

    通过钝化,条目要么在内存中(激活),要么在缓存存储中(钝化)。因此,不,不会。

    【讨论】:

    • 所以它根本不可能从 jvm 重新启动中恢复?我们可以使用关机钩子吗?
    • 如果您谈论关闭挂钩,您可能会考虑感谢 - 在调用 cacheManager.stop() 等之后。在这种情况下,是的,条目被正确地钝化到磁盘中。我宁愿想到那些不感恩的事情,例如 JVM 崩溃或机器断电。
    【解决方案2】:

    启用钝化后,我的理解是,仅存在于内存中的所有内容都会在关机期间持续存在。但是,我现在无法在 InfiniSpan 文档中找到证据。

    无论如何,请记住,SingeFileStore 不是一个健壮的实现。只有正确关机,存储的值才会保留。

    【讨论】:

    • 证明只在源代码中,永远不要太相信文档:) 但你是对的。当缓存管理器停止时 PassivationManagerImpl.passivateAll() 被调用(因为这是由 @Stop 注释的)。
    猜你喜欢
    • 2020-12-29
    • 2015-12-13
    • 1970-01-01
    • 2016-05-18
    • 1970-01-01
    • 2018-02-03
    • 2014-05-09
    • 2016-06-08
    • 2020-03-16
    相关资源
    最近更新 更多