ApacheIgnite中大量关联调用的有效组合

ApacheIgnite中大量关联调用的有效组合,ignite,Ignite,我们希望在Ignite中的大型可分区数据集或“产品”上进行计算(100.000多个产品,每个产品都链接到不同缓存中的大量额外数据)。我们需要几个用例: 1) 启动一个计算作业,仅限于大量(100个)产品,重点关注响应性(关联作业只不过是在键/值所在的数据节点上执行的作业。 有几种方法可以将作业发送到特定节点,而不仅仅是关联密钥。例如,您可以基于consistentID发送,在2.4.10中(如果我没记错的话),它们添加了显式查询备份的方法。 关于您的情况,我可以想到以下解决方案- SqlFie

我们希望在Ignite中的大型可分区数据集或“产品”上进行计算(100.000多个产品,每个产品都链接到不同缓存中的大量额外数据)。我们需要几个用例:


1) 启动一个计算作业,仅限于大量(100个)产品,重点关注响应性(关联作业只不过是在键/值所在的数据节点上执行的作业。
有几种方法可以将作业发送到特定节点,而不仅仅是关联密钥。例如,您可以基于consistentID发送,在2.4.10中(如果我没记错的话),它们添加了显式查询备份的方法。
关于您的情况,我可以想到以下解决方案-

 SqlFieldsQuery query = new SqlFieldsQuery("select productID from CacheTable").setLocal(true);

您可以使用上述SQL准备关联作业,从中选择所有产品(仅从该节点)然后对它们进行迭代,并在本地执行所有查询,以获取所有产品信息。将该作业发送到所需的节点并进行计算,减少结果并返回给客户端。

有一个版本的
affinityRun
需要一段时间。将任务分配到每个分区,接收端的每个节点都将被处理正在处理驻留在该分区号中的数据(只需对该分区运行扫描查询)。如果失败,您只需重新启动该分区的进程,并可以使用自定义逻辑筛选出已处理的项