Return-Path: X-Original-To: apmail-ignite-commits-archive@minotaur.apache.org Delivered-To: apmail-ignite-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 8490F18B79 for ; Tue, 9 Jun 2015 06:33:20 +0000 (UTC) Received: (qmail 11581 invoked by uid 500); 9 Jun 2015 06:33:20 -0000 Delivered-To: apmail-ignite-commits-archive@ignite.apache.org Received: (qmail 11549 invoked by uid 500); 9 Jun 2015 06:33:20 -0000 Mailing-List: contact commits-help@ignite.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@ignite.incubator.apache.org Delivered-To: mailing list commits@ignite.incubator.apache.org Received: (qmail 11540 invoked by uid 99); 9 Jun 2015 06:33:20 -0000 Received: from Unknown (HELO spamd3-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 09 Jun 2015 06:33:20 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd3-us-west.apache.org (ASF Mail Server at spamd3-us-west.apache.org) with ESMTP id CF1F2183996 for ; Tue, 9 Jun 2015 06:33:19 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd3-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 1.77 X-Spam-Level: * X-Spam-Status: No, score=1.77 tagged_above=-999 required=6.31 tests=[KAM_ASCII_DIVIDERS=0.8, KAM_LAZY_DOMAIN_SECURITY=1, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, T_RP_MATCHES_RCVD=-0.01] autolearn=disabled Received: from mx1-eu-west.apache.org ([10.40.0.8]) by localhost (spamd3-us-west.apache.org [10.40.0.10]) (amavisd-new, port 10024) with ESMTP id F086qD946wH4 for ; Tue, 9 Jun 2015 06:33:02 +0000 (UTC) Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx1-eu-west.apache.org (ASF Mail Server at mx1-eu-west.apache.org) with SMTP id 1EFA125727 for ; Tue, 9 Jun 2015 06:32:52 +0000 (UTC) Received: (qmail 9606 invoked by uid 99); 9 Jun 2015 06:32:50 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 09 Jun 2015 06:32:50 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id DA184DFFD5; Tue, 9 Jun 2015 06:32:50 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: sboikov@apache.org To: commits@ignite.incubator.apache.org Date: Tue, 09 Jun 2015 06:32:58 -0000 Message-Id: <3acbc83521df46c1bfb11763a9b7a3db@git.apache.org> In-Reply-To: <6a6589822f314fb9a3e26167e2f43a93@git.apache.org> References: <6a6589822f314fb9a3e26167e2f43a93@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [09/24] incubator-ignite git commit: ignite-545: merge from ignite-sprint-6 http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/96f0956d/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheAbstractNodeRestartSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheAbstractNodeRestartSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheAbstractNodeRestartSelfTest.java index 17d6e42..7e65f23 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheAbstractNodeRestartSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheAbstractNodeRestartSelfTest.java @@ -19,7 +19,6 @@ package org.apache.ignite.internal.processors.cache.distributed; import org.apache.ignite.*; import org.apache.ignite.cache.*; -import org.apache.ignite.cluster.*; import org.apache.ignite.configuration.*; import org.apache.ignite.spi.discovery.tcp.*; import org.apache.ignite.spi.discovery.tcp.ipfinder.*; @@ -77,10 +76,10 @@ public abstract class GridCacheAbstractNodeRestartSelfTest extends GridCommonAbs private static volatile int idx = -1; /** Preload mode. */ - protected CacheRebalanceMode preloadMode = ASYNC; + protected CacheRebalanceMode rebalancMode = ASYNC; /** */ - protected int preloadBatchSize = DFLT_BATCH_SIZE; + protected int rebalancBatchSize = DFLT_BATCH_SIZE; /** Number of partitions. */ protected int partitions = DFLT_PARTITIONS; @@ -106,6 +105,10 @@ public abstract class GridCacheAbstractNodeRestartSelfTest extends GridCommonAbs disco.setIpFinder(ipFinder); + disco.setSocketTimeout(30_000); + disco.setAckTimeout(30_000); + disco.setNetworkTimeout(30_000); + c.setDiscoverySpi(disco); return c; @@ -124,8 +127,8 @@ public abstract class GridCacheAbstractNodeRestartSelfTest extends GridCommonAbs @Override protected void beforeTest() throws Exception { backups = DFLT_BACKUPS; partitions = DFLT_PARTITIONS; - preloadMode = ASYNC; - preloadBatchSize = DFLT_BATCH_SIZE; + rebalancMode = ASYNC; + rebalancBatchSize = DFLT_BATCH_SIZE; nodeCnt = DFLT_NODE_CNT; keyCnt = DFLT_KEY_CNT; retries = DFLT_RETRIES; @@ -160,7 +163,7 @@ public abstract class GridCacheAbstractNodeRestartSelfTest extends GridCommonAbs * @throws Exception If failed. */ public void testRestart() throws Exception { - preloadMode = SYNC; + rebalancMode = SYNC; partitions = 3; nodeCnt = 2; keyCnt = 10; @@ -240,7 +243,7 @@ public abstract class GridCacheAbstractNodeRestartSelfTest extends GridCommonAbs nodeCnt = 2; keyCnt = 10; partitions = 29; - preloadMode = ASYNC; + rebalancMode = ASYNC; long duration = 30000; @@ -255,7 +258,7 @@ public abstract class GridCacheAbstractNodeRestartSelfTest extends GridCommonAbs nodeCnt = 2; keyCnt = 10; partitions = 29; - preloadMode = ASYNC; + rebalancMode = ASYNC; long duration = 30000; @@ -270,7 +273,7 @@ public abstract class GridCacheAbstractNodeRestartSelfTest extends GridCommonAbs nodeCnt = 2; keyCnt = 10; partitions = 29; - preloadMode = ASYNC; + rebalancMode = ASYNC; long duration = 30000; @@ -285,7 +288,7 @@ public abstract class GridCacheAbstractNodeRestartSelfTest extends GridCommonAbs nodeCnt = 2; keyCnt = 10; partitions = 29; - preloadMode = ASYNC; + rebalancMode = ASYNC; long duration = 30000; @@ -300,7 +303,7 @@ public abstract class GridCacheAbstractNodeRestartSelfTest extends GridCommonAbs nodeCnt = 4; keyCnt = 10; partitions = 29; - preloadMode = ASYNC; + rebalancMode = ASYNC; long duration = 60000; @@ -315,7 +318,7 @@ public abstract class GridCacheAbstractNodeRestartSelfTest extends GridCommonAbs nodeCnt = 4; keyCnt = 10; partitions = 29; - preloadMode = ASYNC; + rebalancMode = ASYNC; long duration = 60000; @@ -330,7 +333,7 @@ public abstract class GridCacheAbstractNodeRestartSelfTest extends GridCommonAbs nodeCnt = 4; keyCnt = 10; partitions = 29; - preloadMode = ASYNC; + rebalancMode = ASYNC; long duration = 60000; @@ -345,7 +348,7 @@ public abstract class GridCacheAbstractNodeRestartSelfTest extends GridCommonAbs nodeCnt = 4; keyCnt = 10; partitions = 29; - preloadMode = ASYNC; + rebalancMode = ASYNC; long duration = 60000; @@ -360,7 +363,7 @@ public abstract class GridCacheAbstractNodeRestartSelfTest extends GridCommonAbs nodeCnt = 6; keyCnt = 10; partitions = 29; - preloadMode = ASYNC; + rebalancMode = ASYNC; long duration = 90000; @@ -375,7 +378,7 @@ public abstract class GridCacheAbstractNodeRestartSelfTest extends GridCommonAbs nodeCnt = 6; keyCnt = 10; partitions = 29; - preloadMode = ASYNC; + rebalancMode = ASYNC; long duration = 90000; @@ -390,7 +393,7 @@ public abstract class GridCacheAbstractNodeRestartSelfTest extends GridCommonAbs nodeCnt = 8; keyCnt = 10; partitions = 29; - preloadMode = ASYNC; + rebalancMode = ASYNC; long duration = 90000; @@ -405,7 +408,7 @@ public abstract class GridCacheAbstractNodeRestartSelfTest extends GridCommonAbs nodeCnt = 8; keyCnt = 10; partitions = 29; - preloadMode = ASYNC; + rebalancMode = ASYNC; long duration = 90000; @@ -420,7 +423,7 @@ public abstract class GridCacheAbstractNodeRestartSelfTest extends GridCommonAbs nodeCnt = 10; keyCnt = 10; partitions = 29; - preloadMode = ASYNC; + rebalancMode = ASYNC; long duration = 90000; @@ -435,7 +438,7 @@ public abstract class GridCacheAbstractNodeRestartSelfTest extends GridCommonAbs nodeCnt = 10; keyCnt = 10; partitions = 29; - preloadMode = ASYNC; + rebalancMode = ASYNC; long duration = 90000; @@ -450,7 +453,7 @@ public abstract class GridCacheAbstractNodeRestartSelfTest extends GridCommonAbs nodeCnt = 10; keyCnt = 10; partitions = 29; - preloadMode = ASYNC; + rebalancMode = ASYNC; long duration = 90000; @@ -465,7 +468,7 @@ public abstract class GridCacheAbstractNodeRestartSelfTest extends GridCommonAbs nodeCnt = 4; keyCnt = 10; partitions = 29; - preloadMode = ASYNC; + rebalancMode = ASYNC; long duration = 90000; @@ -512,7 +515,7 @@ public abstract class GridCacheAbstractNodeRestartSelfTest extends GridCommonAbs try { cache.put(key, Integer.toString(key)); } - catch (TransactionRollbackException | ClusterTopologyException | CacheException ignored) { + catch (IgniteException | CacheException ignored) { // It is ok if primary node leaves grid. } @@ -525,7 +528,7 @@ public abstract class GridCacheAbstractNodeRestartSelfTest extends GridCommonAbs catch (Exception e) { err.compareAndSet(null, e); - error("Failed to put value in cache.", e); + error("Unexpected exception in put-worker.", e); } } }, "put-worker-" + i); @@ -565,7 +568,7 @@ public abstract class GridCacheAbstractNodeRestartSelfTest extends GridCommonAbs catch (Exception e) { err.compareAndSet(null, e); - error("Failed to restart grid node.", e); + error("Unexpected exception in restart-worker.", e); } } }, "restart-worker-" + i); @@ -643,12 +646,16 @@ public abstract class GridCacheAbstractNodeRestartSelfTest extends GridCommonAbs int c = 0; try { - try (Transaction tx = ignite.transactions().txStart(txConcurrency(), REPEATABLE_READ)) { + IgniteTransactions txs = ignite.transactions(); + + try (Transaction tx = txs.txStart(txConcurrency(), REPEATABLE_READ)) { c = txCntr.incrementAndGet(); - if (c % logFreq == 0) - info(">>> Tx iteration started [cnt=" + c + ", keys=" + keys + ", " + - "locNodeId=" + locNodeId + ']'); + if (c % logFreq == 0) { + info(">>> Tx iteration started [cnt=" + c + + ", keys=" + keys + + ", locNodeId=" + locNodeId + ']'); + } for (int key : keys) { int op = cacheOp(); @@ -664,17 +671,15 @@ public abstract class GridCacheAbstractNodeRestartSelfTest extends GridCommonAbs tx.commit(); } } - catch (ClusterTopologyException | CacheException e) { - if (e instanceof CacheException - && !(e.getCause() instanceof ClusterTopologyException)) - throw e; - + catch (IgniteException | CacheException ignored) { // It is ok if primary node leaves grid. } - if (c % logFreq == 0) - info(">>> Tx iteration finished [cnt=" + c + ", keys=" + keys + ", " + - "locNodeId=" + locNodeId + ']'); + if (c % logFreq == 0) { + info(">>> Tx iteration finished [cnt=" + c + + ", keys=" + keys + + ", locNodeId=" + locNodeId + ']'); + } } info(">>> " + Thread.currentThread().getName() + " finished."); @@ -682,7 +687,7 @@ public abstract class GridCacheAbstractNodeRestartSelfTest extends GridCommonAbs catch (Exception e) { err.compareAndSet(null, e); - error("Failed to put value in cache.", e); + error("Unexpected exception in put-worker.", e); } } }, "put-worker-" + i); @@ -719,7 +724,7 @@ public abstract class GridCacheAbstractNodeRestartSelfTest extends GridCommonAbs catch (Exception e) { err.compareAndSet(null, e); - error("Failed to restart grid node.", e); + error("Unexpected exception in restart-worker.", e); } } }, "restart-worker-" + i); @@ -812,19 +817,21 @@ public abstract class GridCacheAbstractNodeRestartSelfTest extends GridCommonAbs tx.commit(); } - catch (ClusterTopologyException ignored) { + catch (IgniteException | CacheException ignored) { // It is ok if primary node leaves grid. } - if (c % logFreq == 0) - info(">>> Tx iteration finished [cnt=" + c + ", keys=" + keys + ", " + + if (c % logFreq == 0) { + info(">>> Tx iteration finished [cnt=" + c + + ", keys=" + keys + ", " + "locNodeId=" + locNodeId + ']'); + } } } catch (Exception e) { err.compareAndSet(null, e); - error("Failed to put value in cache.", e); + error("Unexpected exception in put-worker.", e); } } }, "put-worker-" + i); @@ -859,7 +866,7 @@ public abstract class GridCacheAbstractNodeRestartSelfTest extends GridCommonAbs catch (Exception e) { err.compareAndSet(null, e); - error("Failed to restart grid node.", e); + error("Unexpected exception in restart-worker.", e); } } }, "restart-worker-" + i); @@ -893,10 +900,12 @@ public abstract class GridCacheAbstractNodeRestartSelfTest extends GridCommonAbs * @param attempt Attempt. */ private void printFailureDetails(IgniteCache c, int key, int attempt) { + Ignite ignite = c.unwrap(Ignite.class); + error("*** Failure details ***"); error("Key: " + key); - error("Partition: " + c.getConfiguration(CacheConfiguration.class).getAffinity().partition(key)); + error("Partition: " + ignite.affinity(c.getName()).partition(key)); error("Attempt: " + attempt); - error("Node: " + c.unwrap(Ignite.class).cluster().localNode().id()); + error("Node: " + ignite.cluster().localNode().id()); } } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/96f0956d/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheLoadingConcurrentGridStartTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheLoadingConcurrentGridStartTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheLoadingConcurrentGridStartTest.java deleted file mode 100644 index 2f9bb96..0000000 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheLoadingConcurrentGridStartTest.java +++ /dev/null @@ -1,154 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.ignite.internal.processors.cache.distributed; - -import org.apache.ignite.*; -import org.apache.ignite.cache.*; -import org.apache.ignite.cache.store.*; -import org.apache.ignite.configuration.*; -import org.apache.ignite.internal.*; -import org.apache.ignite.lang.*; -import org.apache.ignite.testframework.*; -import org.apache.ignite.testframework.junits.common.*; -import org.jetbrains.annotations.*; - -import javax.cache.*; -import javax.cache.configuration.*; -import javax.cache.integration.*; -import java.util.concurrent.*; - -import static org.apache.ignite.cache.CacheMode.*; - -/** - * Tests for cache data loading during simultaneous grids start. - */ -public class GridCacheLoadingConcurrentGridStartTest extends GridCommonAbstractTest { - /** Grids count */ - private static int GRIDS_CNT = 5; - - /** Keys count */ - private static int KEYS_CNT = 1_000_000; - - /** {@inheritDoc} */ - @SuppressWarnings("unchecked") - @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception { - IgniteConfiguration cfg = super.getConfiguration(gridName); - - CacheConfiguration ccfg = new CacheConfiguration(); - - ccfg.setCacheMode(PARTITIONED); - - ccfg.setBackups(1); - - CacheStore store = new CacheStoreAdapter() { - @Override public void loadCache(IgniteBiInClosure f, Object... args) { - for (int i = 0; i < KEYS_CNT; i++) - f.apply(i, Integer.toString(i)); - } - - @Nullable @Override public String load(Integer i) throws CacheLoaderException { - return null; - } - - @Override public void write(Cache.Entry entry) throws CacheWriterException { - // No-op. - } - - @Override public void delete(Object o) throws CacheWriterException { - // No-op. - } - }; - - ccfg.setCacheStoreFactory(new FactoryBuilder.SingletonFactory(store)); - - cfg.setCacheConfiguration(ccfg); - - return cfg; - } - - /** {@inheritDoc} */ - @Override protected void afterTest() throws Exception { - stopAllGrids(); - } - - /** - * @throws Exception if failed - */ - public void testLoadCacheWithDataStreamer() throws Exception { - IgniteInClosure f = new IgniteInClosure() { - @Override public void apply(Ignite grid) { - try (IgniteDataStreamer dataStreamer = grid.dataStreamer(null)) { - for (int i = 0; i < KEYS_CNT; i++) - dataStreamer.addData(i, Integer.toString(i)); - } - } - }; - - loadCache(f); - } - - /** - * @throws Exception if failed - */ - public void testLoadCacheFromStore() throws Exception { - loadCache(new IgniteInClosure() { - @Override public void apply(Ignite grid) { - grid.cache(null).loadCache(null); - } - }); - } - - /** - * Loads cache using closure and asserts cache size. - * - * @param f cache loading closure - * @throws Exception if failed - */ - private void loadCache(IgniteInClosure f) throws Exception { - Ignite g0 = startGrid(0); - - IgniteInternalFuture fut = GridTestUtils.runAsync(new Callable() { - @Override public Ignite call() throws Exception { - return startGridsMultiThreaded(1, GRIDS_CNT - 1); - } - }); - - try { - f.apply(g0); - } - finally { - fut.get(); - } - - assertCacheSize(); - } - - /** Asserts cache size. */ - private void assertCacheSize() { - IgniteCache cache = grid(0).cache(null); - - assertEquals(KEYS_CNT, cache.size(CachePeekMode.PRIMARY)); - - int total = 0; - - for (int i = 0; i < GRIDS_CNT; i++) - total += grid(i).cache(null).localSize(CachePeekMode.PRIMARY); - - assertEquals(KEYS_CNT, total); - } -} http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/96f0956d/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheLockAbstractTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheLockAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheLockAbstractTest.java index ab0f7d0..2fe76e7 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheLockAbstractTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheLockAbstractTest.java @@ -501,8 +501,6 @@ public abstract class GridCacheLockAbstractTest extends GridCommonAbstractTest { * @throws Throwable If failed. */ public void testLockReentrancy() throws Throwable { - fail("https://issues.apache.org/jira/browse/IGNITE-835"); - Affinity aff = ignite1.affinity(null); for (int i = 10; i < 100; i++) { http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/96f0956d/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteTxGetAfterStopTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteTxGetAfterStopTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteTxGetAfterStopTest.java new file mode 100644 index 0000000..469f513 --- /dev/null +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteTxGetAfterStopTest.java @@ -0,0 +1,131 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.ignite.internal.processors.cache.distributed; + +import org.apache.ignite.*; +import org.apache.ignite.cache.*; +import org.apache.ignite.configuration.*; +import org.apache.ignite.internal.processors.cache.*; +import org.apache.ignite.transactions.*; +import org.jetbrains.annotations.*; + +import static org.apache.ignite.cache.CacheAtomicityMode.*; +import static org.apache.ignite.cache.CacheMode.*; + +/** + * + */ +public class IgniteTxGetAfterStopTest extends IgniteCacheAbstractTest { + /** */ + private CacheMode cacheMode; + + /** */ + private NearCacheConfiguration nearCfg; + + /** {@inheritDoc} */ + @Override protected int gridCount() { + return 4; + } + + /** {@inheritDoc} */ + @Override protected CacheMode cacheMode() { + return cacheMode; + } + + /** {@inheritDoc} */ + @Override protected CacheAtomicityMode atomicityMode() { + return TRANSACTIONAL; + } + + /** {@inheritDoc} */ + @Override protected NearCacheConfiguration nearConfiguration() { + return nearCfg; + } + + /** {@inheritDoc} */ + @Override protected void beforeTestsStarted() throws Exception { + // No-op. + } + + /** {@inheritDoc} */ + @Override protected void afterTest() throws Exception { + super.afterTest(); + + stopAllGrids(); + } + + /** + * @throws Exception If failed. + */ + public void testReplicated() throws Exception { + getAfterStop(REPLICATED, null); + } + + /** + * @throws Exception If failed. + */ + public void testPartitioned() throws Exception { + getAfterStop(PARTITIONED, new NearCacheConfiguration()); + } + + /** + * @throws Exception If failed. + */ + public void testPartitionedNearDisabled() throws Exception { + getAfterStop(PARTITIONED, null); + } + + /** + * @param cacheMode Cache mode. + * @param nearCfg Near cache configuration. + * @throws Exception If failed. + */ + private void getAfterStop(CacheMode cacheMode, @Nullable NearCacheConfiguration nearCfg) throws Exception { + this.cacheMode = cacheMode; + this.nearCfg = nearCfg; + + startGrids(); + + IgniteCache cache0 = jcache(0); + IgniteCache cache1 = jcache(1); + + Integer key0 = primaryKey(cache0); + Integer key1 = primaryKey(cache1); + + try (Transaction tx = ignite(0).transactions().txStart()) { + log.info("Put: " + key0); + + cache0.put(key0, key0); + + log.info("Stop node."); + + stopGrid(3); + + log.info("Get: " + key1); + + cache0.get(key1); + + log.info("Commit."); + + tx.commit(); + } + + assertEquals(key0, cache0.get(key0)); + assertNull(cache1.get(key1)); + } +} http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/96f0956d/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteTxOriginatingNodeFailureAbstractSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteTxOriginatingNodeFailureAbstractSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteTxOriginatingNodeFailureAbstractSelfTest.java index 00bd43f..d664aa8 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteTxOriginatingNodeFailureAbstractSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteTxOriginatingNodeFailureAbstractSelfTest.java @@ -156,7 +156,7 @@ public abstract class IgniteTxOriginatingNodeFailureAbstractSelfTest extends Gri TransactionProxyImpl tx = (TransactionProxyImpl)txIgniteNode.transactions().txStart(); - IgniteInternalTx txEx = GridTestUtils.getFieldValue(tx, "tx"); + IgniteInternalTx txEx = tx.tx(); assertTrue(txEx.optimistic()); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/96f0956d/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCacheDhtPreloadSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCacheDhtPreloadSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCacheDhtPreloadSelfTest.java index f04b87f..5b63c6a 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCacheDhtPreloadSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCacheDhtPreloadSelfTest.java @@ -266,7 +266,7 @@ public class GridCacheDhtPreloadSelfTest extends GridCommonAbstractTest { ClusterNode node = evt.discoveryNode(); return evt.type() == EVT_CACHE_REBALANCE_STOPPED && node.id().equals(nodeId) && - evt.discoveryEventType() == EVT_NODE_LEFT; + (evt.discoveryEventType() == EVT_NODE_LEFT || evt.discoveryEventType() == EVT_NODE_FAILED); } }, EVT_CACHE_REBALANCE_STOPPED)); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/96f0956d/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCachePartitionedNearDisabledAtomicOffHeapTieredMultiNodeFullApiSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCachePartitionedNearDisabledAtomicOffHeapTieredMultiNodeFullApiSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCachePartitionedNearDisabledAtomicOffHeapTieredMultiNodeFullApiSelfTest.java new file mode 100644 index 0000000..686cc31 --- /dev/null +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCachePartitionedNearDisabledAtomicOffHeapTieredMultiNodeFullApiSelfTest.java @@ -0,0 +1,43 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.ignite.internal.processors.cache.distributed.dht; + +import org.apache.ignite.cache.*; + +import static org.apache.ignite.cache.CacheAtomicityMode.*; + +/** + * Tests colocated cache with off-heap tiered mode. + */ +public class GridCachePartitionedNearDisabledAtomicOffHeapTieredMultiNodeFullApiSelfTest extends + GridCachePartitionedNearDisabledOffHeapTieredMultiNodeFullApiSelfTest { + /** {@inheritDoc} */ + @Override protected CacheAtomicityMode atomicityMode() { + return ATOMIC; + } + + /** {@inheritDoc} */ + @Override protected boolean txEnabled() { + return false; + } + + /** {@inheritDoc} */ + @Override protected boolean lockingEnabled() { + return false; + } +} http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/96f0956d/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCachePartitionedNearDisabledLockSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCachePartitionedNearDisabledLockSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCachePartitionedNearDisabledLockSelfTest.java new file mode 100644 index 0000000..69c7909 --- /dev/null +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCachePartitionedNearDisabledLockSelfTest.java @@ -0,0 +1,47 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.ignite.internal.processors.cache.distributed.dht; + +import org.apache.ignite.configuration.*; +import org.apache.ignite.internal.processors.cache.distributed.near.*; + +/** + * + */ +public class GridCachePartitionedNearDisabledLockSelfTest extends GridCachePartitionedLockSelfTest { + /** {@inheritDoc} */ + @Override protected CacheConfiguration cacheConfiguration() { + CacheConfiguration ccfg = super.cacheConfiguration(); + + assertNotNull(ccfg.getNearConfiguration()); + + ccfg.setNearConfiguration(null); + + return ccfg; + } + + /** {@inheritDoc} */ + @Override protected boolean isPartitioned() { + return false; + } + + /** {@inheritDoc} */ + @Override public void testLockReentrancy() throws Throwable { + fail("https://issues.apache.org/jira/browse/IGNITE-835"); + } +} http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/96f0956d/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCachePartitionedNearDisabledOffHeapFullApiSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCachePartitionedNearDisabledOffHeapFullApiSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCachePartitionedNearDisabledOffHeapFullApiSelfTest.java index c3a69e2..2dd07ff 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCachePartitionedNearDisabledOffHeapFullApiSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCachePartitionedNearDisabledOffHeapFullApiSelfTest.java @@ -17,13 +17,17 @@ package org.apache.ignite.internal.processors.cache.distributed.dht; +import org.apache.ignite.cache.*; + +import static org.apache.ignite.cache.CacheMemoryMode.*; + /** * Tests colocated cache with values being stored off-heap. */ public class GridCachePartitionedNearDisabledOffHeapFullApiSelfTest extends GridCachePartitionedNearDisabledFullApiSelfTest { /** {@inheritDoc} */ - @Override protected boolean offHeapValues() { - return true; + @Override protected CacheMemoryMode memoryMode() { + return OFFHEAP_VALUES; } } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/96f0956d/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCachePartitionedNearDisabledOffHeapMultiNodeFullApiSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCachePartitionedNearDisabledOffHeapMultiNodeFullApiSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCachePartitionedNearDisabledOffHeapMultiNodeFullApiSelfTest.java index 62e4452..216832c 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCachePartitionedNearDisabledOffHeapMultiNodeFullApiSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCachePartitionedNearDisabledOffHeapMultiNodeFullApiSelfTest.java @@ -17,13 +17,17 @@ package org.apache.ignite.internal.processors.cache.distributed.dht; +import org.apache.ignite.cache.*; + +import static org.apache.ignite.cache.CacheMemoryMode.*; + /** * Tests colocated cache with values being stored off-heap. */ public class GridCachePartitionedNearDisabledOffHeapMultiNodeFullApiSelfTest extends GridCachePartitionedNearDisabledMultiNodeFullApiSelfTest { /** {@inheritDoc} */ - @Override protected boolean offHeapValues() { - return true; + @Override protected CacheMemoryMode memoryMode() { + return OFFHEAP_VALUES; } } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/96f0956d/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCachePartitionedNearDisabledOffHeapTieredAtomicFullApiSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCachePartitionedNearDisabledOffHeapTieredAtomicFullApiSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCachePartitionedNearDisabledOffHeapTieredAtomicFullApiSelfTest.java new file mode 100644 index 0000000..875a913 --- /dev/null +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCachePartitionedNearDisabledOffHeapTieredAtomicFullApiSelfTest.java @@ -0,0 +1,56 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.ignite.internal.processors.cache.distributed.dht; + +import org.apache.ignite.cache.*; +import org.apache.ignite.configuration.*; +import org.apache.ignite.internal.processors.cache.distributed.near.*; + +import static org.apache.ignite.cache.CacheAtomicityMode.*; +import static org.apache.ignite.cache.CacheMemoryMode.*; + +/** + * Tests colocated cache with off-heap tiered mode. + */ +public class GridCachePartitionedNearDisabledOffHeapTieredAtomicFullApiSelfTest extends + GridCachePartitionedFullApiSelfTest { + /** {@inheritDoc} */ + @Override protected CacheAtomicityMode atomicityMode() { + return ATOMIC; + } + + /** {@inheritDoc} */ + @Override protected boolean txEnabled() { + return false; + } + + /** {@inheritDoc} */ + @Override protected boolean lockingEnabled() { + return false; + } + + /** {@inheritDoc} */ + @Override protected NearCacheConfiguration nearConfiguration() { + return null; + } + + /** {@inheritDoc} */ + @Override protected CacheMemoryMode memoryMode() { + return OFFHEAP_TIERED; + } +} http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/96f0956d/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCachePartitionedNearDisabledOffHeapTieredFullApiSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCachePartitionedNearDisabledOffHeapTieredFullApiSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCachePartitionedNearDisabledOffHeapTieredFullApiSelfTest.java new file mode 100644 index 0000000..bab26f7 --- /dev/null +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCachePartitionedNearDisabledOffHeapTieredFullApiSelfTest.java @@ -0,0 +1,33 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.ignite.internal.processors.cache.distributed.dht; + +import org.apache.ignite.cache.*; + +import static org.apache.ignite.cache.CacheMemoryMode.*; + +/** + * Tests colocated cache with off-heap tiered mode. + */ +public class GridCachePartitionedNearDisabledOffHeapTieredFullApiSelfTest extends + GridCachePartitionedNearDisabledOffHeapFullApiSelfTest { + /** {@inheritDoc} */ + @Override protected CacheMemoryMode memoryMode() { + return OFFHEAP_TIERED; + } +} http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/96f0956d/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCachePartitionedNearDisabledOffHeapTieredMultiNodeFullApiSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCachePartitionedNearDisabledOffHeapTieredMultiNodeFullApiSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCachePartitionedNearDisabledOffHeapTieredMultiNodeFullApiSelfTest.java new file mode 100644 index 0000000..022f26b --- /dev/null +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCachePartitionedNearDisabledOffHeapTieredMultiNodeFullApiSelfTest.java @@ -0,0 +1,33 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.ignite.internal.processors.cache.distributed.dht; + +import org.apache.ignite.cache.*; + +import static org.apache.ignite.cache.CacheMemoryMode.*; + +/** + * Tests colocated cache with off-heap tiered mode. + */ +public class GridCachePartitionedNearDisabledOffHeapTieredMultiNodeFullApiSelfTest extends + GridCachePartitionedNearDisabledOffHeapMultiNodeFullApiSelfTest { + /** {@inheritDoc} */ + @Override protected CacheMemoryMode memoryMode() { + return OFFHEAP_TIERED; + } +} http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/96f0956d/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCachePartitionedNearDisabledPrimaryNodeFailureRecoveryTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCachePartitionedNearDisabledPrimaryNodeFailureRecoveryTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCachePartitionedNearDisabledPrimaryNodeFailureRecoveryTest.java new file mode 100644 index 0000000..62d9b79 --- /dev/null +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCachePartitionedNearDisabledPrimaryNodeFailureRecoveryTest.java @@ -0,0 +1,31 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.ignite.internal.processors.cache.distributed.dht; + +import org.apache.ignite.configuration.*; + +/** + * + */ +public class IgniteCachePartitionedNearDisabledPrimaryNodeFailureRecoveryTest + extends IgniteCachePrimaryNodeFailureRecoveryAbstractTest { + /** {@inheritDoc} */ + @Override protected NearCacheConfiguration nearConfiguration() { + return null; + } +} http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/96f0956d/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCachePartitionedPrimaryNodeFailureRecoveryTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCachePartitionedPrimaryNodeFailureRecoveryTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCachePartitionedPrimaryNodeFailureRecoveryTest.java new file mode 100644 index 0000000..a40c989 --- /dev/null +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCachePartitionedPrimaryNodeFailureRecoveryTest.java @@ -0,0 +1,31 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.ignite.internal.processors.cache.distributed.dht; + +import org.apache.ignite.configuration.*; + +/** + * + */ +public class IgniteCachePartitionedPrimaryNodeFailureRecoveryTest + extends IgniteCachePrimaryNodeFailureRecoveryAbstractTest { + /** {@inheritDoc} */ + @Override protected NearCacheConfiguration nearConfiguration() { + return new NearCacheConfiguration(); + } +} http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/96f0956d/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCachePartitionedTwoBackupsPrimaryNodeFailureRecoveryTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCachePartitionedTwoBackupsPrimaryNodeFailureRecoveryTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCachePartitionedTwoBackupsPrimaryNodeFailureRecoveryTest.java new file mode 100644 index 0000000..70eef1d --- /dev/null +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCachePartitionedTwoBackupsPrimaryNodeFailureRecoveryTest.java @@ -0,0 +1,37 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.ignite.internal.processors.cache.distributed.dht; + +import org.apache.ignite.configuration.*; + +/** + * + */ +public class IgniteCachePartitionedTwoBackupsPrimaryNodeFailureRecoveryTest + extends IgniteCachePartitionedPrimaryNodeFailureRecoveryTest { + /** {@inheritDoc} */ + @Override protected CacheConfiguration cacheConfiguration(String gridName) throws Exception { + CacheConfiguration ccfg = super.cacheConfiguration(gridName); + + assertEquals(1, ccfg.getBackups()); + + ccfg.setBackups(2); + + return ccfg; + } +} http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/96f0956d/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCachePrimaryNodeFailureRecoveryAbstractTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCachePrimaryNodeFailureRecoveryAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCachePrimaryNodeFailureRecoveryAbstractTest.java new file mode 100644 index 0000000..f996877 --- /dev/null +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCachePrimaryNodeFailureRecoveryAbstractTest.java @@ -0,0 +1,533 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.ignite.internal.processors.cache.distributed.dht; + +import org.apache.ignite.*; +import org.apache.ignite.cache.*; +import org.apache.ignite.cache.affinity.*; +import org.apache.ignite.cluster.*; +import org.apache.ignite.configuration.*; +import org.apache.ignite.internal.*; +import org.apache.ignite.internal.managers.communication.*; +import org.apache.ignite.internal.processors.cache.*; +import org.apache.ignite.internal.processors.cache.distributed.near.*; +import org.apache.ignite.internal.processors.cache.transactions.*; +import org.apache.ignite.internal.util.lang.*; +import org.apache.ignite.internal.util.typedef.*; +import org.apache.ignite.internal.util.typedef.internal.*; +import org.apache.ignite.plugin.extensions.communication.*; +import org.apache.ignite.resources.*; +import org.apache.ignite.spi.*; +import org.apache.ignite.spi.communication.tcp.*; +import org.apache.ignite.testframework.*; +import org.apache.ignite.transactions.*; + +import java.util.*; + +import static org.apache.ignite.cache.CacheAtomicityMode.*; +import static org.apache.ignite.cache.CacheMode.*; +import static org.apache.ignite.transactions.TransactionConcurrency.*; +import static org.apache.ignite.transactions.TransactionIsolation.*; +import static org.apache.ignite.transactions.TransactionState.*; + +/** + * + */ +public abstract class IgniteCachePrimaryNodeFailureRecoveryAbstractTest extends IgniteCacheAbstractTest { + /** {@inheritDoc} */ + @Override protected int gridCount() { + return 4; + } + + /** {@inheritDoc} */ + @Override protected CacheMode cacheMode() { + return PARTITIONED; + } + + /** {@inheritDoc} */ + @Override protected CacheAtomicityMode atomicityMode() { + return TRANSACTIONAL; + } + + /** {@inheritDoc} */ + @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception { + IgniteConfiguration cfg = super.getConfiguration(gridName); + + cfg.setCommunicationSpi(new TestCommunicationSpi()); + + return cfg; + } + + /** {@inheritDoc} */ + @Override protected void beforeTestsStarted() throws Exception { + // No-op. + } + + /** {@inheritDoc} */ + @Override protected void beforeTest() throws Exception { + startGrids(); + } + + /** {@inheritDoc} */ + @Override protected void afterTestsStopped() throws Exception { + // No-op + } + + /** {@inheritDoc} */ + @Override protected void afterTest() throws Exception { + stopAllGrids(); + } + + /** + * @throws Exception If failed. + */ + public void testOptimisticPrimaryNodeFailureRecovery1() throws Exception { + primaryNodeFailure(false, false, true); + } + + /** + * @throws Exception If failed. + */ + public void testOptimisticPrimaryNodeFailureRecovery2() throws Exception { + primaryNodeFailure(true, false, true); + } + + /** + * @throws Exception If failed. + */ + public void testOptimisticPrimaryNodeFailureRollback1() throws Exception { + primaryNodeFailure(false, true, true); + } + + /** + * @throws Exception If failed. + */ + public void testOptimisticPrimaryNodeFailureRollback2() throws Exception { + primaryNodeFailure(true, true, true); + } + /** + * @throws Exception If failed. + */ + public void testPessimisticPrimaryNodeFailureRecovery1() throws Exception { + primaryNodeFailure(false, false, false); + } + + /** + * @throws Exception If failed. + */ + public void testPessimisticPrimaryNodeFailureRecovery2() throws Exception { + primaryNodeFailure(true, false, false); + } + + /** + * @throws Exception If failed. + */ + public void testPessimisticPrimaryNodeFailureRollback1() throws Exception { + primaryNodeFailure(false, true, false); + } + + /** + * @throws Exception If failed. + */ + public void testPessimisticPrimaryNodeFailureRollback2() throws Exception { + primaryNodeFailure(true, true, false); + } + + /** + * @param locBackupKey If {@code true} uses one key which is backup for originating node. + * @param rollback If {@code true} tests rollback after primary node failure. + * @param optimistic If {@code true} tests optimistic transaction. + * @throws Exception If failed. + */ + private void primaryNodeFailure(boolean locBackupKey, final boolean rollback, boolean optimistic) throws Exception { + IgniteCache cache0 = jcache(0); + IgniteCache cache2 = jcache(2); + + Affinity aff = ignite(0).affinity(null); + + Integer key0 = null; + + for (int key = 0; key < 10_000; key++) { + if (aff.isPrimary(ignite(1).cluster().localNode(), key)) { + if (locBackupKey == aff.isBackup(ignite(0).cluster().localNode(), key)) { + key0 = key; + + break; + } + } + } + + assertNotNull(key0); + + final Integer key1 = key0; + final Integer key2 = primaryKey(cache2); + + final Collection key1Nodes = aff.mapKeyToPrimaryAndBackups(key1); + final Collection key2Nodes = aff.mapKeyToPrimaryAndBackups(key2); + + TestCommunicationSpi commSpi = (TestCommunicationSpi)ignite(0).configuration().getCommunicationSpi(); + + IgniteTransactions txs = ignite(0).transactions(); + + try (Transaction tx = txs.txStart(optimistic ? OPTIMISTIC : PESSIMISTIC, REPEATABLE_READ)) { + log.info("Put key1: " + key1); + + cache0.put(key1, key1); + + log.info("Put key2: " + key2); + + cache0.put(key2, key2); + + log.info("Start prepare."); + + IgniteInternalTx txEx = ((TransactionProxyImpl)tx).tx(); + + commSpi.blockMessages(ignite(2).cluster().localNode().id()); // Do not allow to finish prepare for key2. + + IgniteInternalFuture prepFut = txEx.prepareAsync(); + + waitPrepared(ignite(1)); + + log.info("Stop one primary node."); + + stopGrid(1); + + U.sleep(1000); // Wait some time to catch possible issues in tx recovery. + + commSpi.stopBlock(); + + prepFut.get(10_000); + + if (rollback) { + log.info("Rollback."); + + tx.rollback(); + } + else { + log.info("Commit."); + + tx.commit(); + } + } + + GridTestUtils.waitForCondition(new GridAbsPredicate() { + @Override public boolean apply() { + try { + checkKey(key1, rollback ? null : key1Nodes); + checkKey(key2, rollback ? null : key2Nodes); + + return true; + } + catch (AssertionError e) { + log.info("Check failed: " + e); + + return false; + } + } + }, 5000); + + checkKey(key1, rollback ? null : key1Nodes); + checkKey(key2, rollback ? null : key2Nodes); + } + + /** + * @throws Exception If failed. + */ + public void testOptimisticPrimaryAndOriginatingNodeFailureRecovery1() throws Exception { + primaryAndOriginatingNodeFailure(false, false, true); + } + + /** + * @throws Exception If failed. + */ + public void testOptimisticPrimaryAndOriginatingNodeFailureRecovery2() throws Exception { + primaryAndOriginatingNodeFailure(true, false, true); + } + + /** + * @throws Exception If failed. + */ + public void testOptimisticPrimaryAndOriginatingNodeFailureRollback1() throws Exception { + primaryAndOriginatingNodeFailure(false, true, true); + } + + /** + * @throws Exception If failed. + */ + public void testOptimisticPrimaryAndOriginatingNodeFailureRollback2() throws Exception { + primaryAndOriginatingNodeFailure(true, true, true); + } + + /** + * @throws Exception If failed. + */ + public void testPessimisticPrimaryAndOriginatingNodeFailureRecovery1() throws Exception { + primaryAndOriginatingNodeFailure(false, false, false); + } + + /** + * @throws Exception If failed. + */ + public void testPessimisticPrimaryAndOriginatingNodeFailureRecovery2() throws Exception { + primaryAndOriginatingNodeFailure(true, false, false); + } + + /** + * @throws Exception If failed. + */ + public void testPessimisticPrimaryAndOriginatingNodeFailureRollback1() throws Exception { + primaryAndOriginatingNodeFailure(false, true, false); + } + + /** + * @throws Exception If failed. + */ + public void testPessimisticPrimaryAndOriginatingNodeFailureRollback2() throws Exception { + primaryAndOriginatingNodeFailure(true, true, false); + } + + /** + * @param locBackupKey If {@code true} uses one key which is backup for originating node. + * @param rollback If {@code true} tests rollback after primary node failure. + * @param optimistic If {@code true} tests optimistic transaction. + * @throws Exception If failed. + */ + private void primaryAndOriginatingNodeFailure(final boolean locBackupKey, + final boolean rollback, + boolean optimistic) + throws Exception + { + IgniteCache cache0 = jcache(0); + IgniteCache cache2 = jcache(2); + + Affinity aff = ignite(0).affinity(null); + + Integer key0 = null; + + for (int key = 0; key < 10_000; key++) { + if (aff.isPrimary(ignite(1).cluster().localNode(), key)) { + if (locBackupKey == aff.isBackup(ignite(0).cluster().localNode(), key)) { + key0 = key; + + break; + } + } + } + + assertNotNull(key0); + + final Integer key1 = key0; + final Integer key2 = primaryKey(cache2); + + int backups = cache0.getConfiguration(CacheConfiguration.class).getBackups(); + + final Collection key1Nodes = + (locBackupKey && backups < 2) ? null : aff.mapKeyToPrimaryAndBackups(key1); + final Collection key2Nodes = aff.mapKeyToPrimaryAndBackups(key2); + + TestCommunicationSpi commSpi = (TestCommunicationSpi)ignite(0).configuration().getCommunicationSpi(); + + IgniteTransactions txs = ignite(0).transactions(); + + Transaction tx = txs.txStart(optimistic ? OPTIMISTIC : PESSIMISTIC, REPEATABLE_READ); + + log.info("Put key1: " + key1); + + cache0.put(key1, key1); + + log.info("Put key2: " + key2); + + cache0.put(key2, key2); + + log.info("Start prepare."); + + IgniteInternalTx txEx = ((TransactionProxyImpl)tx).tx(); + + commSpi.blockMessages(ignite(2).cluster().localNode().id()); // Do not allow to finish prepare for key2. + + IgniteInternalFuture prepFut = txEx.prepareAsync(); + + waitPrepared(ignite(1)); + + log.info("Stop one primary node."); + + stopGrid(1); + + U.sleep(1000); // Wait some time to catch possible issues in tx recovery. + + if (!rollback) { + commSpi.stopBlock(); + + prepFut.get(10_000); + } + + log.info("Stop originating node."); + + stopGrid(0); + + GridTestUtils.waitForCondition(new GridAbsPredicate() { + @Override public boolean apply() { + try { + checkKey(key1, rollback ? null : key1Nodes); + checkKey(key2, rollback ? null : key2Nodes); + + return true; + } catch (AssertionError e) { + log.info("Check failed: " + e); + + return false; + } + } + }, 5000); + + checkKey(key1, rollback ? null : key1Nodes); + checkKey(key2, rollback ? null : key2Nodes); + } + + /** + * @param key Key. + * @param keyNodes Key nodes. + */ + private void checkKey(Integer key, Collection keyNodes) { + if (keyNodes == null) { + for (Ignite ignite : G.allGrids()) { + IgniteCache cache = ignite.cache(null); + + assertNull("Unexpected value for: " + ignite.name(), cache.localPeek(key)); + } + + for (Ignite ignite : G.allGrids()) { + IgniteCache cache = ignite.cache(null); + + assertNull("Unexpected value for: " + ignite.name(), cache.get(key)); + } + } + else { + boolean found = false; + + for (ClusterNode node : keyNodes) { + try { + Ignite ignite = grid(node); + + found = true; + + IgniteCache cache = ignite.cache(null); + + assertEquals("Unexpected value for: " + ignite.name(), key, key); + } + catch (IgniteIllegalStateException ignore) { + // No-op. + } + } + + assertTrue("Failed to find key node.", found); + + for (Ignite ignite : G.allGrids()) { + IgniteCache cache = ignite.cache(null); + + assertEquals("Unexpected value for: " + ignite.name(), key, cache.get(key)); + } + } + } + + /** + * @param ignite Node. + * @throws Exception If failed. + */ + private void waitPrepared(Ignite ignite) throws Exception { + final IgniteTxManager tm = ((IgniteKernal)ignite).context().cache().context().tm(); + + boolean wait = GridTestUtils.waitForCondition(new GridAbsPredicate() { + @Override public boolean apply() { + GridDhtTxLocal locTx = null; + + for (IgniteInternalTx tx : tm.txs()) { + if (tx instanceof GridDhtTxLocal) { + assertNull("Only one tx is expected.", locTx); + + locTx = (GridDhtTxLocal)tx; + } + } + + log.info("Wait for tx, state: " + (locTx != null ? locTx.state() : null)); + + return locTx != null && locTx.state() == PREPARED; + } + }, 5000); + + assertTrue("Failed to wait for tx.", wait); + } + + /** + * + */ + private static class TestCommunicationSpi extends TcpCommunicationSpi { + /** Logger. */ + @LoggerResource + private IgniteLogger log; + + /** */ + private UUID blockNodeId; + + /** */ + private List> blockedMsgs = new ArrayList<>(); + + /** {@inheritDoc} */ + @Override public void sendMessage(ClusterNode node, Message msg) throws IgniteSpiException { + if (msg instanceof GridIoMessage) { + Object msg0 = ((GridIoMessage)msg).message(); + + if (msg0 instanceof GridNearTxPrepareRequest) { + synchronized (this) { + if (blockNodeId != null && blockNodeId.equals(node.id())) { + log.info("Block message: " + msg0); + + blockedMsgs.add(new T2<>(node, (GridIoMessage)msg)); + + return; + } + } + } + } + + super.sendMessage(node, msg); + } + + /** + * @param nodeId Node ID. + */ + void blockMessages(UUID nodeId) { + blockNodeId = nodeId; + } + + /** + * + */ + void stopBlock() { + synchronized (this) { + blockNodeId = null; + + for (T2 msg : blockedMsgs) { + log.info("Send blocked message: " + msg.get2().message()); + + super.sendMessage(msg.get1(), msg.get2()); + } + } + } + } +} http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/96f0956d/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridCacheAtomicReplicatedFailoverSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridCacheAtomicReplicatedFailoverSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridCacheAtomicReplicatedFailoverSelfTest.java index 0a2781b..1e57c09 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridCacheAtomicReplicatedFailoverSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridCacheAtomicReplicatedFailoverSelfTest.java @@ -18,6 +18,7 @@ package org.apache.ignite.internal.processors.cache.distributed.dht.atomic; import org.apache.ignite.cache.*; +import org.apache.ignite.configuration.*; import static org.apache.ignite.cache.CacheMode.*; @@ -29,4 +30,9 @@ public class GridCacheAtomicReplicatedFailoverSelfTest extends GridCacheAtomicFa @Override protected CacheMode cacheMode() { return REPLICATED; } + + /** {@inheritDoc} */ + @Override protected NearCacheConfiguration nearConfiguration() { + return null; + } } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/96f0956d/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheAtomicOffHeapTieredFullApiSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheAtomicOffHeapTieredFullApiSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheAtomicOffHeapTieredFullApiSelfTest.java new file mode 100644 index 0000000..b0d13e0 --- /dev/null +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheAtomicOffHeapTieredFullApiSelfTest.java @@ -0,0 +1,32 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.ignite.internal.processors.cache.distributed.near; + +import org.apache.ignite.cache.*; + +import static org.apache.ignite.cache.CacheMemoryMode.*; + +/** + * Tests partitioned cache with off-heap tiered mode. + */ +public class GridCacheAtomicOffHeapTieredFullApiSelfTest extends GridCacheAtomicOffHeapFullApiSelfTest { + /** {@inheritDoc} */ + @Override protected CacheMemoryMode memoryMode() { + return OFFHEAP_TIERED; + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/96f0956d/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheAtomicOffHeapTieredMultiNodeFullApiSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheAtomicOffHeapTieredMultiNodeFullApiSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheAtomicOffHeapTieredMultiNodeFullApiSelfTest.java new file mode 100644 index 0000000..b3adf14 --- /dev/null +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheAtomicOffHeapTieredMultiNodeFullApiSelfTest.java @@ -0,0 +1,33 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.ignite.internal.processors.cache.distributed.near; + +import org.apache.ignite.cache.*; + +import static org.apache.ignite.cache.CacheMemoryMode.*; + +/** + * Tests partitioned cache with off-heap tiered mode. + */ +public class GridCacheAtomicOffHeapTieredMultiNodeFullApiSelfTest extends + GridCacheAtomicOffHeapMultiNodeFullApiSelfTest { + /** {@inheritDoc} */ + @Override protected CacheMemoryMode memoryMode() { + return OFFHEAP_TIERED; + } +} http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/96f0956d/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheAtomicPrimaryWriteOrderOffHeapTieredFullApiSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheAtomicPrimaryWriteOrderOffHeapTieredFullApiSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheAtomicPrimaryWriteOrderOffHeapTieredFullApiSelfTest.java new file mode 100644 index 0000000..41e98b2 --- /dev/null +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheAtomicPrimaryWriteOrderOffHeapTieredFullApiSelfTest.java @@ -0,0 +1,33 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.ignite.internal.processors.cache.distributed.near; + +import org.apache.ignite.cache.*; + +import static org.apache.ignite.cache.CacheMemoryMode.*; + +/** + * Tests partitioned cache with off-heap tiered mode. + */ +public class GridCacheAtomicPrimaryWriteOrderOffHeapTieredFullApiSelfTest extends + GridCacheAtomicPrimaryWriteOrderOffHeapFullApiSelfTest { + /** {@inheritDoc} */ + @Override protected CacheMemoryMode memoryMode() { + return OFFHEAP_TIERED; + } +} http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/96f0956d/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheAtomicPrimaryWrityOrderOffHeapTieredMultiNodeFullApiSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheAtomicPrimaryWrityOrderOffHeapTieredMultiNodeFullApiSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheAtomicPrimaryWrityOrderOffHeapTieredMultiNodeFullApiSelfTest.java new file mode 100644 index 0000000..f29cdd0 --- /dev/null +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheAtomicPrimaryWrityOrderOffHeapTieredMultiNodeFullApiSelfTest.java @@ -0,0 +1,33 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.ignite.internal.processors.cache.distributed.near; + +import org.apache.ignite.cache.*; + +import static org.apache.ignite.cache.CacheMemoryMode.*; + +/** + * Tests partitioned cache with off-heap tiered mode. + */ +public class GridCacheAtomicPrimaryWrityOrderOffHeapTieredMultiNodeFullApiSelfTest extends + GridCacheAtomicPrimaryWrityOrderOffHeapMultiNodeFullApiSelfTest { + /** {@inheritDoc} */ + @Override protected CacheMemoryMode memoryMode() { + return OFFHEAP_TIERED; + } +} http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/96f0956d/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedMultiNodeFullApiSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedMultiNodeFullApiSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedMultiNodeFullApiSelfTest.java index caacc2b..84594a2 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedMultiNodeFullApiSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedMultiNodeFullApiSelfTest.java @@ -27,7 +27,6 @@ import org.apache.ignite.internal.*; import org.apache.ignite.internal.util.typedef.*; import org.apache.ignite.lang.*; -import javax.cache.*; import java.util.*; import java.util.concurrent.atomic.*; @@ -138,12 +137,12 @@ public class GridCachePartitionedMultiNodeFullApiSelfTest extends GridCacheParti int size = 10; - IgniteCache prj0 = grid(0).cache(null); + IgniteCache chache0 = grid(0).cache(null); for (int i = 0; i < size; i++) { info("Putting value [i=" + i + ']'); - prj0.put(i, i); + chache0.put(i, i); info("Finished putting value [i=" + i + ']'); } @@ -156,26 +155,30 @@ public class GridCachePartitionedMultiNodeFullApiSelfTest extends GridCacheParti for (int k = 0; k < size; k++) { if (affinity(cache).isPrimaryOrBackup(node, k)) - assertEquals("Check failed for node: " + node.id(), k, cache.localPeek(k, ONHEAP)); + assertEquals("Check failed for node: " + node.id(), k, + cache.localPeek(k, CachePeekMode.ONHEAP, CachePeekMode.OFFHEAP)); } } for (int i = 0; i < size; i++) { info("Putting value 2 [i=" + i + ']'); - assertEquals(i, prj0.getAndPutIfAbsent(i, i * i)); + assertEquals(i, chache0.getAndPutIfAbsent(i, i * i)); info("Finished putting value 2 [i=" + i + ']'); } for (int i = 0; i < size; i++) - assertEquals(i, prj0.get(i)); + assertEquals(i, chache0.get(i)); } /** * @throws Exception If failed. */ public void testUnswapShort() throws Exception { + if (memoryMode() == CacheMemoryMode.OFFHEAP_TIERED) + return; + final AtomicInteger swapEvts = new AtomicInteger(0); final AtomicInteger unswapEvts = new AtomicInteger(0); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/96f0956d/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedNodeRestartTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedNodeRestartTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedNodeRestartTest.java index 8a2b19a..2096836 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedNodeRestartTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedNodeRestartTest.java @@ -43,8 +43,8 @@ public class GridCachePartitionedNodeRestartTest extends GridCacheAbstractNodeRe cc.setWriteSynchronizationMode(FULL_ASYNC); cc.setNearConfiguration(null); cc.setStartSize(20); - cc.setRebalanceMode(preloadMode); - cc.setRebalanceBatchSize(preloadBatchSize); + cc.setRebalanceMode(rebalancMode); + cc.setRebalanceBatchSize(rebalancBatchSize); cc.setAffinity(new RendezvousAffinityFunction(false, partitions)); cc.setBackups(backups); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/96f0956d/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedOffHeapFullApiSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedOffHeapFullApiSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedOffHeapFullApiSelfTest.java index d77efcf..78c8ab7 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedOffHeapFullApiSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedOffHeapFullApiSelfTest.java @@ -17,12 +17,16 @@ package org.apache.ignite.internal.processors.cache.distributed.near; +import org.apache.ignite.cache.*; + +import static org.apache.ignite.cache.CacheMemoryMode.*; + /** * Tests partitioned cache with values being stored off-heap. */ public class GridCachePartitionedOffHeapFullApiSelfTest extends GridCachePartitionedFullApiSelfTest { /** {@inheritDoc} */ - @Override protected boolean offHeapValues() { - return true; + @Override protected CacheMemoryMode memoryMode() { + return OFFHEAP_VALUES; } } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/96f0956d/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedOffHeapMultiNodeFullApiSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedOffHeapMultiNodeFullApiSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedOffHeapMultiNodeFullApiSelfTest.java index c7a04fc..4724d9d 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedOffHeapMultiNodeFullApiSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedOffHeapMultiNodeFullApiSelfTest.java @@ -17,12 +17,16 @@ package org.apache.ignite.internal.processors.cache.distributed.near; +import org.apache.ignite.cache.*; + +import static org.apache.ignite.cache.CacheMemoryMode.*; + /** * Tests partitioned cache with values being stored off-heap. */ public class GridCachePartitionedOffHeapMultiNodeFullApiSelfTest extends GridCachePartitionedMultiNodeFullApiSelfTest { /** {@inheritDoc} */ - @Override protected boolean offHeapValues() { - return true; + @Override protected CacheMemoryMode memoryMode() { + return OFFHEAP_VALUES; } } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/96f0956d/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedOffHeapTieredFullApiSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedOffHeapTieredFullApiSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedOffHeapTieredFullApiSelfTest.java new file mode 100644 index 0000000..365e9aa --- /dev/null +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedOffHeapTieredFullApiSelfTest.java @@ -0,0 +1,32 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.ignite.internal.processors.cache.distributed.near; + +import org.apache.ignite.cache.*; + +import static org.apache.ignite.cache.CacheMemoryMode.*; + +/** + * Tests partitioned cache with off-heap tiered mode. + */ +public class GridCachePartitionedOffHeapTieredFullApiSelfTest extends GridCachePartitionedOffHeapFullApiSelfTest { + /** {@inheritDoc} */ + @Override protected CacheMemoryMode memoryMode() { + return OFFHEAP_TIERED; + } +} \ No newline at end of file