java - 使用 Apache Ignite 一些过期数据保留在内存中,启用 TTL 并在线程执行后
问题描述
问题
创建一个 ignite 客户端(在客户端模式下为 false)并将一些数据(10k 个条目/值)放入其中,到期时间非常短(~20 秒)并启用 TTL。每次线程运行时,它都会删除所有过期的条目,但是经过几次尝试后,这个线程并没有删除所有过期的条目,其中一些保留在内存中并且不会被这个线程执行删除。这意味着我们在内存中有一些过期的数据,这是我们想要避免的。
请您确认这是一个真正的问题还是只是滥用/配置我的设置?
感谢您的反馈意见。
测试
我尝试了三种不同的设置:MacOS 上的完全本地模式(嵌入式服务器),在 Docker 中使用一个节点的远程服务器,以及在 kubernetes 中使用 3 个节点的远程集群。
重现
Git 仓库:https ://github.com/panes/ignite-sample
运行 MyIgniteLoadRunnerTest.run() 以重现上面描述的问题。
(全局设置:写入 10k 个 64 字节的条目,每个条目的 TTL 为 10 秒)
解决方案
这似乎是一个已知问题。这是跟踪它的链接https://issues.apache.org/jira/browse/IGNITE-11438。它将被包含在Ignite 2.8
发布中。据我所知,它已经作为GridGain Community Edition的一部分发布。
推荐阅读
- windows - 如何记录CMD输出?
- android - Android Studio Portable 设置中的 Flutter Doctor 问题“未找到 Android Studio”
- python-3.x - BayesSearchCV 在 SGDClassifier 参数调整期间不起作用
- java - 我如何访问paintcomponent graphics g 变量以从其他方法中绘制东西?
- javascript - 如何更有效地将这些任务分配到批次中?
- css - 前端 - 当我们减小缩放大小时,为什么某些网站会改变它们的外观
- typescript - Vue - 在工作区和独立中转到定义
- android - 解决了依赖配置“:app:myappDebugApiElements”后无法创建变体“android-manifest-metadata”
- pycharm - 如何设置plaidml?
- javascript - 单击复选框时防止自动回发