首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Caffeine中的替代缓存策略

Caffeine中的替代缓存策略
EN

Stack Overflow用户
提问于 2020-04-11 22:22:27
回答 1查看 320关注 0票数 0

在我的研究中,我跟踪并访问咖啡因的缓存,只访问其中的一些项目。因此,我收集自己的命中/未命中统计数据,这与咖啡因的内置统计数据不同。这对于咖啡因的默认策略- Window-TinyLFU非常有效。然而,我想对其他缓存策略做同样的事情。

事实上,咖啡因的模拟器建议了许多缓存策略,这些策略可以使用the application.conf进行选择。文件。然而,AFAIK,模拟器的行为就像一个黑盒-运行整个跟踪,进行自己的统计,等等。换句话说,虽然咖啡因的构建器允许定义一些参数(例如缓存的最大大小),但我没有找到任何方法来定义缓存策略。

有没有办法做到这一点?我只对准入/驱逐感兴趣-(目前)我不使用基于时间的到期策略。在此之前非常感谢。

EN

回答 1

Stack Overflow用户

发布于 2020-04-12 01:45:14

咖啡因的缓存库和它的模拟器应该分开处理。该库是为应用程序开发人员设计的,因此它是一个隐藏了大量复杂性并做出算法选择的黑匣子。模拟器用于研究,是一个可以直接修改的白盒。

只需派生存储库并按您认为合适的方式修改模拟器。如果可能,我们可以将您的改进合并到上游,但有时这需要更多的工作,因为我们必须在个人研究之外维护代码。通过保留一个分支,当我们在上游迭代它时,您的工作将不会被阻塞或延迟。这样,如果我们缺少对某个需求的支持,并且可以添加那些缺失的部分,您就不会觉得受到了限制。

由于模拟器只有少数人使用,你可以通过打开Github问题来提问,也可以发邮件给我。它的结构相当简单:

策略模拟器:编排流程以在parallel

  • Registry:中运行策略创建已配置的policies

  • TraceReader:用于跟踪的解析器format

  • PolicyActor:根据策略运行一批事件策略策略:跟踪其statistics

  • Reporter:的替换算法simulation.

  • reference.conf:

  • externalized configuration

的漂亮打印结果

一个简单的例子是CaffeinePolicy,它从咖啡因的缓存中适应模拟器的策略。直接算法,如SegmentedLruPolicy,包括一个可选的准入策略,与其逐出策略一起使用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61158264

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档