it is my code to run affinityCall

IgniteConfiguration cfg = new IgniteConfiguration();
cfg.setClientMode(true);
cfg.setPeerClassLoadingEnabled(true);
TcpDiscoveryMulticastIpFinder ipFinder = new TcpDiscoveryMulticastIpFinder();
ipFinder.setAddresses(Collections.singletonList("127.0.0.1:47500..47509"));
cfg.setDiscoverySpi(new TcpDiscoverySpi().setIpFinder(ipFinder));
Ignite ignite = Ignition.start(igniteThickClientCfg);
int p =  ignite.affinity("vest_identity_99").partitions();
for( int i=0;i<p;i++) {
   ignite.compute().affinityCall(Arrays.asList("vest_identity_99"),i,new 
IdentityCountTask(99,i) );
}

but when i run code it report below exception:
Caused by: org.h2.jdbc.JdbcSQLNonTransientConnectionException: Unsupported 
connection setting "MULTI_THREADED" [90113-200]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:622)
at org.h2.message.DbException.getJdbcSQLException(DbException.java:429)
at org.h2.message.DbException.get(DbException.java:205)
at org.h2.message.DbException.get(DbException.java:181)
at org.h2.engine.ConnectionInfo.readSettingsFromURL(ConnectionInfo.java:269)

is there any solution? 


wkhapy...@gmail.com
 
From: Stephen Darlington
Date: 2022-08-25 20:58
To: user
Subject: Re: count cache key number
var p = ignite.affinity(“CACHENAME”).partitions();

On 25 Aug 2022, at 13:10, wkhapy...@gmail.com wrote:

affinityCallAsync need  PartitionId,how can i get all  PartitionIds?

Or the number of partitions is 1024



wkhapy...@gmail.com
 
From: wkhapy...@gmail.com
Date: 2022-08-25 19:11
To: user
Subject: Re: Re: count cache key number
affinityCallAsync need  PartitionId,how can i get all  PartitionIds



wkhapy...@gmail.com
 
From: Stephen Darlington
Date: 2022-08-25 18:55
To: user
Subject: Re: count cache key number
You’d need to use a thick client to call that API.

On 25 Aug 2022, at 10:39, wkhapy...@gmail.com wrote:

sorry,i find igniteClient.compute() has no affinityCallAsync method ,does 
igniteClient can call affinityCallAsync



wkhapy...@gmail.com
 
From: Stephen Darlington
Date: 2022-08-24 20:27
To: user
Subject: Re: count cache key number
There are a number of ways to tackle this. 

If your cache split the key into distinct fields rather that a concatenated 
string, you could SQL-enable your cache and get your count as a simple SELECT 
statement.

Alternatively, there’s an affinity compute task that takes a partition 
(affinityCallAsync). If you use that and a ScanQuery that fetches records from 
a specific partition (ScanQuery), you’ll get something like a map-reduce. (You 
could also use the map-reduce API, but an affinity call is probably easier.)

On 24 Aug 2022, at 11:59, wkhapy...@gmail.com wrote:

hi
do I pass cache in distribute compute than use cache scan ,that faster than I 
use a cache scan in client api.

---Original---
From: "wkhapy...@gmail.com"<wkhapy...@gmail.com>
Date: Wed, Aug 24, 2022 17:06 PM
To: "user"<user@ignite.apache.org>;
Subject: count cache key number

Hi,
    I have a cache ,it's key like 
   "mobile:140000"
   "mobile:140001",
    "address:test1",
    "address:test2",
    "address:test3"。
   I want to count mobile number and address number。
   address number is 3 and mobile number is 2。I see Ignite doc has mapreduce 
job,but it seem not example iterator cache key。 is there any method to iterator 
key in mapreduce job。Thank you very much



wkhapy...@gmail.com

Reply via email to