使用 IgniteSet 作为 Ignite 连续查询的动态远程过滤器的一部分
Using IgniteSet as part of dynamic remote filter for Ignite's Continuous Query
有没有人尝试过使用 IgniteSet 或类似的数据结构在连续查询中设置远程过滤器?关于 IgniteSet 如何工作以及这个问题的文档并不多。基本上我的用例如下:
我有一个使用 Ignite 实现的分布式缓存。用户根据某些条件对我的缓存中的实时更新感兴趣。我将有不止一个用户订阅这些更新。我不打算 运行 n 个连续查询,而是 运行 使用由某种分布式数据结构支持的远程过滤器对 n 个用户进行一次连续查询。
我认为 IgniteSet 可以为我工作。但我不确定这将如何影响我的应用服务器在生产环境中的性能,因为我不完全确定 IgniteSet 将如何工作(由于关于该主题的文档很少)。基本上,如果我需要更新 ignite set 数据结构,它是否也会为所有远程节点动态更新,这是否意味着我将开始接收可能在这些远程节点上评估(为真)的过滤器更新?
qry.setRemoteFilterFactory(new Factory<CacheEntryEventFilter<PersonKey, Person>>() {
@Override public CacheEntryEventFilter<PersonKey, Person> create() {
return new CacheEntryEventFilter<PersonKey, Person>() {
@Override public boolean evaluate(CacheEntryEvent<? extends PersonKey, ? extends Person> e) {
//IgniteSet maintained outside of filter
return igniteSet.contains(e.getKey().getCity());
}
};
}
});
抱歉,如果我在这里遗漏了一些明显的东西。
如有任何帮助,我们将不胜感激!
IgniteSet 由缓存支持,与所有 Ignite 缓存一样,旨在让所有节点在更新可用时立即看到更新。
请参阅:https://ignite.apache.org/docs/latest/data-structures/queue-and-set 了解配置设置。
您提出的设计受竞争条件的影响。连续查询的消费者可能会在适当的编写者有机会更新给定的 IgniteSet 之前进入。
使用适当的同步机制来解决所有边缘条件。 Examples/Descriptions 这里:https://ignite.apache.org/features/datastructures.html
有没有人尝试过使用 IgniteSet 或类似的数据结构在连续查询中设置远程过滤器?关于 IgniteSet 如何工作以及这个问题的文档并不多。基本上我的用例如下:
我有一个使用 Ignite 实现的分布式缓存。用户根据某些条件对我的缓存中的实时更新感兴趣。我将有不止一个用户订阅这些更新。我不打算 运行 n 个连续查询,而是 运行 使用由某种分布式数据结构支持的远程过滤器对 n 个用户进行一次连续查询。
我认为 IgniteSet 可以为我工作。但我不确定这将如何影响我的应用服务器在生产环境中的性能,因为我不完全确定 IgniteSet 将如何工作(由于关于该主题的文档很少)。基本上,如果我需要更新 ignite set 数据结构,它是否也会为所有远程节点动态更新,这是否意味着我将开始接收可能在这些远程节点上评估(为真)的过滤器更新?
qry.setRemoteFilterFactory(new Factory<CacheEntryEventFilter<PersonKey, Person>>() {
@Override public CacheEntryEventFilter<PersonKey, Person> create() {
return new CacheEntryEventFilter<PersonKey, Person>() {
@Override public boolean evaluate(CacheEntryEvent<? extends PersonKey, ? extends Person> e) {
//IgniteSet maintained outside of filter
return igniteSet.contains(e.getKey().getCity());
}
};
}
});
抱歉,如果我在这里遗漏了一些明显的东西。
如有任何帮助,我们将不胜感激!
IgniteSet 由缓存支持,与所有 Ignite 缓存一样,旨在让所有节点在更新可用时立即看到更新。
请参阅:https://ignite.apache.org/docs/latest/data-structures/queue-and-set 了解配置设置。
您提出的设计受竞争条件的影响。连续查询的消费者可能会在适当的编写者有机会更新给定的 IgniteSet 之前进入。
使用适当的同步机制来解决所有边缘条件。 Examples/Descriptions 这里:https://ignite.apache.org/features/datastructures.html