Yes, that’s exactly how Ignite SQL works by default.

Stan

From: Prasad Bhalerao
Sent: 25 июля 2018 г. 15:35
To: user@ignite.apache.org
Subject: Re: ***UNCHECKED*** Executing SQL on cache using affinnity key


I want to get the data from multiple caches using SELECT query from client 
node. The affinity key for all the caches is same. 

Since I know that the data in all caches is collocated, I just want make sure 
that sql gets executed only on one of the node(which is primary or secondary 
for that data) and not on all nodes.

The way we submit the tasks using affinity key, can we submit the sql using a 
affinity key so that it gets executed only on a node which owns that data?

Thanks,
Prasad


On Wed, Jul 25, 2018 at 3:01 PM Stanislav Lukyanov <stanlukya...@gmail.com> 
wrote:
What do you mean by “execute select query on cache using affinity key”
and what is the problem you’re trying to solve?
 
Stan
 
From: Prasad Bhalerao
Sent: 25 июля 2018 г. 10:03
To: user@ignite.apache.org
Subject: ***UNCHECKED*** Executing SQL on cache using affinnity key
 
Hi,
 
Is there any way to execute select query on cache using affinity key?
 
As per this link: 
https://apacheignite.readme.io/docs/collocate-compute-and-data#section-affinity-call-and-run-methods
 
It can be done as follows: 
 
compute.affinityCall(CACHE_NAME, affinityKey, () -> {
  SqlFieldsQuery sqlFieldsQuery = new 
SqlFieldsQuery(SELECT_STATEMENT).setArgs(args);
  sqlFieldsQuery.setDistributedJoins(false);
  sqlFieldsQuery.setLocal(true);
  sqlFieldsQuery.setCollocated(true);
  return cache().query(sqlFieldsQuery);
});
Is there any other way to do it?
 
Thanks,
Prasad
 

Reply via email to