ignite-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dmitriy Setrakyan <dsetrak...@apache.org>
Subject Re: Re: When cache node switch between primary and backup any notification be received?
Date Tue, 12 Sep 2017 05:41:54 GMT
On Mon, Sep 11, 2017 at 6:54 PM, aaron@tophold.com <aaron@tophold.com>

> Thanks Alexey!   what we real want, we deploy service on each Cache Node.
>  those service will use data from its' local cache.
> Client will call those remote service, Client should only call  the
> service on primary node,  this make those nodes work like master-slave mode
> automatically.

In Ignite, a node is a primary node for a certain partition. A key belongs
to a partition and a partition belongs to a node. A node may be primary for
key1 (partition N)  and the same node may be a back up for key 2 (partition

I think you simply should invoke your service on each node and only check
or iterate through primary keys stored on that node. You can get a list of
primary keys by using org.apache.ignite.cache.affinity.Affinity API, for
example Affinty.primaryPartitions(ClusterNode) method.

*int[] primaryPartitions =
> Ignite.affinity("cacheName").primaryPartitions(Ignite.cluster().localNode());*

> *for (int primaryPartition : primaryPartitions) {    // Cursor over local
> entries for the given partition.    QueryCursor<Entry<K,V>> cur =
> cache.query(new ScanQuery(primaryPartition));*

> * for (Entry<K, V> entry : cur) { // Do something on local entries. }}*

Does this make sense?

View raw message