如何在cache2k中定义持久性存储?

时间:2016-04-28 13:42:19

标签: java cache2k

Cache apidoc中说,purge()flush()等几种方法依赖于配置的持久性存储而运行。

不幸的是,我找不到,如何配置一个?

真的有可能吗?

1 个答案:

答案 0 :(得分:1)

旧版本的cache2k已经启动了持久性支持。它正在运行,但是,它从未达到我完全信任生产的水平。

实际问题是clear()操作,它的实现非常复杂。无论存储实现需要一些时间来删除数据,清除应该很快。因此,我的想法是切换到回写方案,其中操作排队并在存储再次可用时执行。实现部分回写方案仅仅是为了明确,是一些过度工程......

目前我从功能集中删除了持久性,因为我不想要一个具有稳定API的1.0版本并且已经提供了许多有用的功能。

正如您在cache2k主页上的路线图中所看到的,当前的计划是首先添加批量和异步功能,然后返回存储。在异步功能完成后,存储接口可能看起来完全不同。

在当前的cache2k实现中,仍然存在将连接存储的接口,因此我不会完全放弃已经实现的内容。 flush()purge()仍有一些残余。所以我最好为1.0版本删除这两种方法,以避免混淆。

顺便说一句:自从我在Guava上看到你的问题以来,cache2k支持CacheWriterCacheLoadercache.contains(...)的对应物。使用缓存加载器和编写器,您可以自己读取和写入存储,但它与缓存本身内的存储支持不同。例如.blink { -webkit-animation-name: blink; -webkit-animation-iteration-count: infinite; -webkit-animation-timing-function: cubic-bezier(1.0, 0, 0, 1.0); -webkit-animation-duration: 1s; } 将检查存储,但它至少根据JSR107以及我所知道的每个缓存实现都不检查缓存加载器。