【发布时间】:2017-03-15 09:22:16
【问题描述】:
我们正在测试 Apache Ignite 连续查询,在测试期间,我们注意到一些连续查询错过了缓存的一些更新。 我们的用例如下:
- 我们有一个馈送器(它是服务器节点的一部分),它每秒向 1000 个缓存提供数据
- 我们有一个客户端程序(它是服务器节点的一部分),它打开 1000 个连续查询,每个缓存 1 个连续查询
因此,这些连续查询中的一些会不时错过缓存更新。我们想知道连续查询错过一些缓存更新的事实是否“正常”。
我们还对 500、250、100 个缓存进行了测试,结果相同。
此外,我们还想知道可以创建多少缓存和连续查询? Apache Ignite 是否支持创建数十万个缓存和连续查询?
【问题讨论】:
-
您是否发现任何异常情况?你使用远程过滤器吗?
-
不抛出异常。已使用远程过滤器,但在测试期间返回 true。
-
如何检查更新事件是否丢失?同一条目的多次更新是否有可能在同一批次中结束?
-
这个 feeder 可以同时更新相同的键吗?您使用哪种缓存原子性模式(ATOMIC 或 TRANSACTIONAL)?如果是 ATOMIC,你有什么类型的写排序模式(CLOCK 或 PRIMARY)?
-
@symbicator 基本上,缓存是由 json 对象提供的。一个新的 json 对象被放入缓存中,其中的键是插入顺序。所以,key 是 0, 1, 2, ... 在客户端,我们获取这些 json 对象并通过检查没有缺少键来检查我们是否收到了所有对象。