/** @throws Exception If failed. */ @Test public void testOneNearAndPrimary() throws Exception { // resetLog4j(Level.INFO, true, GridCacheTxManager.class.getName()); backups = 1; int gridCnt = 2; int priThreads = 5; int nearThreads = 5; startGridsMultiThreaded(gridCnt, true); checkNearAndPrimary(gridCnt, priThreads, nearThreads); }
/** @throws Exception If failed. */ @Test public void testMultiNearAndPrimaryMultiNode() throws Exception { int gridCnt = 4; startGridsMultiThreaded(gridCnt, true); checkNearAndPrimaryMultiNode(gridCnt); }
/** * @param max Maximum index of grid nodes. * @param exclude Exlude array. * @return List of grids. */ public List<Ignite> grids(int max, Ignite... exclude) { List<Ignite> ignites = new ArrayList<>(); for (int i = 0; i < max; i++) { Ignite g = grid(i); if (!U.containsObjectArray(exclude, g)) ignites.add(g); } return ignites; }
Affinity<String> aff = affinity(grid(0).<String, Integer>cache(DEFAULT_CACHE_NAME)); assertEquals(1 + backups, affNodes.size()); assertNull(near(pri).peekEx(CNTR_KEY)); GridCacheEntryEx dhtEntry = dht(pri).entryEx(CNTR_KEY); assertNotNull(dhtEntry); assertEquals(Integer.valueOf(0), dhtEntry.rawGet().value(dhtEntry.context().cacheObjectContext(), false)); info("*** "); Ignite g = grid(i); IgniteCache<String, Integer> cache = grid(i).cache(DEFAULT_CACHE_NAME); info("*** Cache counter [igniteInstanceName=" + g.name() + ", cntr=" + cntr + ']'); assertEquals(RETRIES * gridCnt, cntr); info("*** ");
/** * @param msg Error message. * @param g Grid. * @param primary Primary flag. * @param v1 V1. * @param v2 V2. * @return String for assertion. */ private static String invalid(String msg, Ignite g, boolean primary, int v1, int v2) { return msg + " [igniteInstanceName=" + g.name() + ", primary=" + primary + ", v1=" + v1 + ", v2=" + v2 + (!primary ? ", nearEntry=" + near(g).peekEx(CNTR_KEY) : ", dhtEntry=" + dht(g).peekEx(CNTR_KEY) + ", dhtNear=" + near(g).peekEx(CNTR_KEY)) + ']'; }
/** {@inheritDoc} */ @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception { IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName); // Default cache configuration. CacheConfiguration cacheCfg = defaultCacheConfiguration(); cacheCfg.setRebalanceMode(NONE); cacheCfg.setCacheMode(PARTITIONED); cacheCfg.setNearConfiguration(new NearCacheConfiguration()); cacheCfg.setAtomicityMode(TRANSACTIONAL); cacheCfg.setWriteSynchronizationMode(CacheWriteSynchronizationMode.FULL_SYNC); cacheCfg.setBackups(backups); cfg.setCacheConfiguration(cacheCfg); return cfg; }
Affinity<String> aff = affinity(grid(0).<String, Integer>cache(DEFAULT_CACHE_NAME)); igniteInstanceNames(U.nodeIds(affNodes)) + ']'); assertEquals(1 + backups, affNodes.size()); List<Ignite> nears = grids(gridCnt, pri); assertNull(near(pri).peekEx(CNTR_KEY)); final GridCacheEntryEx dhtEntry = dht(pri).entryEx(CNTR_KEY); assertNotNull(dhtEntry); assertEquals(Integer.valueOf(0), dhtEntry.rawGet().value(dhtEntry.context().cacheObjectContext(), false)); info("*** Starting primary thread: " + i); info("*** Starting near thread: " + i); Ignite g = grid(i); dht(g).context().tm().printMemoryStats(); near(g).context().tm().printMemoryStats(); IgniteCache<String, Integer> cache = grid(i).cache(DEFAULT_CACHE_NAME); assertEquals("Counter check failed on grid [igniteInstanceName=" + e.getKey() + ", dhtEntry=" + dht(G.ignite(e.getKey())).peekEx(CNTR_KEY) +
/** @throws Exception If failed. */ @Test public void testOneNearAndPrimaryMultiNode() throws Exception { int gridCnt = 2; startGridsMultiThreaded(gridCnt, true); checkNearAndPrimaryMultiNode(gridCnt); }
/** @throws Exception If failed. */ @Test public void testMultiNearAndPrimary() throws Exception { // resetLog4j(Level.INFO, true, GridCacheTxManager.class.getName()); backups = 1; int gridCnt = 4; int priThreads = 2; int nearThreads = 2; startGridsMultiThreaded(gridCnt, true); checkNearAndPrimary(gridCnt, priThreads, nearThreads); }