ignite-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "tuco.ramirez" <rahul.babb...@gmail.com>
Subject Affinity key does not seem to be working
Date Thu, 22 Jun 2017 11:15:48 GMT
Hi, 

I have a simple use case, but affinity key does not seem to be working.
AffinityKey is placed on clientId which is same for everyone. So all the
data should go to one node.
However ignite visor shows that the data is different on each nodes, with
each node having 3000+ entries.
using 1.9.0 also leads to the same behavior.

Below is the code.

*TestItem Class*


import java.io.Serializable;

import org.apache.ignite.cache.affinity.AffinityKeyMapped;

public class TestItem implements Serializable {

  private static final long serialVersionUID = 1L;

  	@AffinityKeyMapped
    private String clientId;
  	
  	private int counter;
    
    public String getClientId() {
		return clientId;
	}

	public void setClientId(String clientId) {
		this.clientId = clientId;
	}

	public int getCounter() {
		return counter;
	}

	public void setCounter(int counter) {
		this.counter = counter;
	}

	
  	
	public TestItem(String clientId, int counter) {
		super();
		this.clientId = clientId;
		this.counter = counter;
	}

}


import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;

import org.apache.ignite.Ignite;
import org.apache.ignite.IgniteCache;
import org.apache.ignite.Ignition;
import org.apache.ignite.cache.CacheMode;
import org.apache.ignite.configuration.CacheConfiguration;
import org.apache.ignite.configuration.IgniteConfiguration;
import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
import
org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;

public class CreateCache {
	public static void main(String[] args) throws Exception {
		Ignition.setClientMode(true);

		IgniteConfiguration conf = new IgniteConfiguration();
		conf.setPeerClassLoadingEnabled(true);
		TcpDiscoverySpi discovery = new TcpDiscoverySpi();

		TcpDiscoveryVmIpFinder ipFinder = new TcpDiscoveryVmIpFinder();

		ipFinder.setAddresses(Arrays.asList("ip1", "ip2", "ip3"));

		discovery.setIpFinder(ipFinder);

		conf.setDiscoverySpi(discovery);
		Ignite ignite = Ignition.start(conf);
		
		ignite.getOrCreateCache("TESTITEMCACHE").destroy();
		pushItems(ignite);
		
		Ignition.stop(true);
	}

	private static void pushItems(Ignite ignite) {
		CacheConfiguration<Integer, TestItem> itemCfg = new
CacheConfiguration<>("TESTITEMCACHE");
		itemCfg.setCacheMode(CacheMode.PARTITIONED);
		itemCfg.setIndexedTypes(Integer.class, TestItem.class);
		
		IgniteCache<Integer, TestItem> skuCache = ignite.createCache(itemCfg);

		System.out.println("putting data");
		long t1 = System.currentTimeMillis();
		Map<Integer, TestItem> skuMap = new HashMap<>();

		for(int i = 0 ; i < 10000 ; i++){
			TestItem item = new TestItem("testId", i);
			skuMap.put(i, item);
		}
		System.out.println(" sku map size " + skuMap.size());
		skuCache.putAll(skuMap);
		
		long t2 = System.currentTimeMillis();
		System.out.println("put data in ms " + (t2 - t1));

		Ignition.stop(false);
	}
}



Output of ignite visor


visor> cache -a
Time of the snapshot: 06/22/17, 16:42:16
+==========================================================================================================================+
|      Name(@)       |    Mode     | Nodes |   Entries (Heap / Off-heap)   |  
Hits    |  Misses   |   Reads   |  Writes   |
+==========================================================================================================================+
| TESTITEMCACHE(@c0) | PARTITIONED | 3     | min: 3096 (3096 / 0)          |
min: 0    | min: 0    | min: 0    | min: 0    |
|                    |             |       | avg: 3333.33 (3333.33 / 0.00) |
avg: 0.00 | avg: 0.00 | avg: 0.00 | avg: 0.00 |
|                    |             |       | max: 3496 (3496 / 0)          |
max: 0    | max: 0    | max: 0    | max: 0    |
+--------------------------------------------------------------------------------------------------------------------------+

Cache 'TESTITEMCACHE(@c0)':
+-----------------------------------------------------+
| Name(@)                     | TESTITEMCACHE(@c0)    |
| Nodes                       | 3                     |
| Total size Min/Avg/Max      | 3096 / 3333.33 / 3496 |
|   Heap size Min/Avg/Max     | 3096 / 3333.33 / 3496 |
|   Off-heap size Min/Avg/Max | 0 / 0.00 / 0          |
+-----------------------------------------------------+

Nodes for: TESTITEMCACHE(@c0)
+================================================================================================================+
|       Node ID8(@), IP        | CPUs | Heap Used | CPU Load |   Up Time   
|         Size         | Hi/Mi/Rd/Wr |
+================================================================================================================+
| 88C3570D(@n0), ip1 | 8    | 1.91 %    | 0.27 %   | 00:07:46:108 | Total:
3496          | Hi: 0       |
|                              |      |           |          |             
|   Heap: 3496         | Mi: 0       |
|                              |      |           |          |             
|   Off-Heap: 0        | Rd: 0       |
|                              |      |           |          |             
|   Off-Heap Memory: 0 | Wr: 0       |
+------------------------------+------+-----------+----------+--------------+----------------------+-------------+
| D5DF19FC(@n2), ip3 | 8    | 1.84 %    | 0.23 %   | 00:07:33:386 | Total:
3096          | Hi: 0       |
|                              |      |           |          |             
|   Heap: 3096         | Mi: 0       |
|                              |      |           |          |             
|   Off-Heap: 0        | Rd: 0       |
|                              |      |           |          |             
|   Off-Heap Memory: 0 | Wr: 0       |
+------------------------------+------+-----------+----------+--------------+----------------------+-------------+
| E5A391F6(@n1), ip2 | 8    | 0.97 %    | 0.80 %   | 00:07:42:393 | Total:
3408          | Hi: 0       |
|                              |      |           |          |             
|   Heap: 3408         | Mi: 0       |
|                              |      |           |          |             
|   Off-Heap: 0        | Rd: 0       |
|                              |      |           |          |             
|   Off-Heap Memory: 0 | Wr: 0       |
+----------------------------------------------------------------------------------------------------------------+
'Hi' - Number of cache hits.
'Mi' - Number of cache misses.
'Rd' - number of cache reads.
'Wr' - Number of cache writes.

Aggregated queries metrics:
  Minimum execution time: 00:00:00:000
  Maximum execution time: 00:00:00:000
  Average execution time: 00:00:00:000
  Total number of executions: 0
  Total number of failures:   0
visor> 



What am i doing wrong?
Tuco




--
View this message in context: http://apache-ignite-users.70518.x6.nabble.com/Affinity-key-does-not-seem-to-be-working-tp14043.html
Sent from the Apache Ignite Users mailing list archive at Nabble.com.

Mime
View raw message