如何在cache2k中定义持久化存储?
How to define persistence storage in cache2k?
Cache
apidoc 中提到,purge()
或 flush()
等几种方法的运行取决于配置的持久性存储。
很遗憾,我找不到,如何配置一个?
真的可以吗?
旧版本的 cache2k 内置了持久性支持。它正在运行,但是,它从未达到我完全信任的生产水平。
实际问题是 clear()
操作,它的实现相当复杂。清除应该很快,不管存储实现是否需要一些时间来删除数据。所以,我的想法是切换到回写方案,当存储再次可用时,操作会被排队并执行。为清楚起见而实施部分回写方案,是相当多的工程...
目前我从功能集中删除了持久性,因为我不想要一个具有稳定 API 并且已经提供了很多有用功能的 1.0 版本。
从 cache2k 主页上的路线图可以看出,目前的计划是首先添加批量和异步功能,然后再回到存储。完成异步功能后,存储界面可能需要看起来完全不同。
在当前的 cache2k 实现中,仍然有连接存储的接口,所以我不会完全放弃已经实现的东西。 flush()
和 purge()
仍然是一些残余。所以我最好在 1.0 版本中删除这两个方法,以避免混淆。
顺便说一句:自从我在 Guava 上看到你的问题后,cache2k 支持 CacheWriter
,它与 CacheLoader
对应。使用缓存加载器和写入器,您可以自己读取和写入存储,但这与缓存本身内部的存储支持不同。例如 cache.contains(...)
会检查存储,但至少根据 JSR107 和我所知道的每个缓存实现,它不会检查缓存加载器。
Cache
apidoc 中提到,purge()
或 flush()
等几种方法的运行取决于配置的持久性存储。
很遗憾,我找不到,如何配置一个?
真的可以吗?
旧版本的 cache2k 内置了持久性支持。它正在运行,但是,它从未达到我完全信任的生产水平。
实际问题是 clear()
操作,它的实现相当复杂。清除应该很快,不管存储实现是否需要一些时间来删除数据。所以,我的想法是切换到回写方案,当存储再次可用时,操作会被排队并执行。为清楚起见而实施部分回写方案,是相当多的工程...
目前我从功能集中删除了持久性,因为我不想要一个具有稳定 API 并且已经提供了很多有用功能的 1.0 版本。
从 cache2k 主页上的路线图可以看出,目前的计划是首先添加批量和异步功能,然后再回到存储。完成异步功能后,存储界面可能需要看起来完全不同。
在当前的 cache2k 实现中,仍然有连接存储的接口,所以我不会完全放弃已经实现的东西。 flush()
和 purge()
仍然是一些残余。所以我最好在 1.0 版本中删除这两个方法,以避免混淆。
顺便说一句:自从我在 Guava 上看到你的问题后,cache2k 支持 CacheWriter
,它与 CacheLoader
对应。使用缓存加载器和写入器,您可以自己读取和写入存储,但这与缓存本身内部的存储支持不同。例如 cache.contains(...)
会检查存储,但至少根据 JSR107 和我所知道的每个缓存实现,它不会检查缓存加载器。