Repository: incubator-ignite Updated Branches: refs/heads/ignite-459 5030b16f4 -> 1921e75a2
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/aa989909/modules/core/src/test/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManagerAliveCacheSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManagerAliveCacheSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManagerAliveCacheSelfTest.java index 7de6405..5b9b11b 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManagerAliveCacheSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManagerAliveCacheSelfTest.java @@ -22,6 +22,7 @@ import org.apache.ignite.cluster.*; import org.apache.ignite.configuration.*; import org.apache.ignite.events.*; import org.apache.ignite.internal.*; +import org.apache.ignite.internal.processors.affinity.*; import org.apache.ignite.internal.processors.cache.*; import org.apache.ignite.internal.util.typedef.*; import org.apache.ignite.lang.*; @@ -172,14 +173,14 @@ public class GridDiscoveryManagerAliveCacheSelfTest extends GridCommonAbstractTe long currVer = discoMgr.topologyVersion(); for (long v = currVer; v > currVer - GridDiscoveryManager.DISCOVERY_HISTORY_SIZE && v > 0; v--) { - F.forAll(discoMgr.aliveCacheNodes(null, v), + F.forAll(discoMgr.aliveCacheNodes(null, new AffinityTopologyVersion(v)), new IgnitePredicate<ClusterNode>() { @Override public boolean apply(ClusterNode e) { return currTop.contains(e); } }); - F.forAll(discoMgr.aliveRemoteCacheNodes(null, v), + F.forAll(discoMgr.aliveRemoteCacheNodes(null, new AffinityTopologyVersion(v)), new IgnitePredicate<ClusterNode>() { @Override public boolean apply(ClusterNode e) { return currTop.contains(e) || g.cluster().localNode().equals(e); @@ -187,7 +188,7 @@ public class GridDiscoveryManagerAliveCacheSelfTest extends GridCommonAbstractTe }); assertTrue( - currTop.contains(GridCacheUtils.oldest(k.internalCache().context(), currVer))); + currTop.contains(GridCacheUtils.oldest(k.internalCache().context(), new AffinityTopologyVersion(currVer)))); } } } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/aa989909/modules/core/src/test/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManagerSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManagerSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManagerSelfTest.java index b3da9fc..2fd4b29 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManagerSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManagerSelfTest.java @@ -21,6 +21,7 @@ import org.apache.ignite.*; import org.apache.ignite.cache.*; import org.apache.ignite.configuration.*; import org.apache.ignite.internal.*; +import org.apache.ignite.internal.processors.affinity.*; import org.apache.ignite.internal.util.typedef.*; import org.apache.ignite.lang.*; import org.apache.ignite.spi.discovery.tcp.*; @@ -92,38 +93,45 @@ public class GridDiscoveryManagerSelfTest extends GridCommonAbstractTest { public void testHasNearCache() throws Exception { IgniteKernal g0 = (IgniteKernal)startGrid(0); // PARTITIONED_ONLY cache. - assertFalse(g0.context().discovery().hasNearCache(CACHE_NAME, 0)); - assertFalse(g0.context().discovery().hasNearCache(null, 0)); + AffinityTopologyVersion zero = new AffinityTopologyVersion(0); + AffinityTopologyVersion one = new AffinityTopologyVersion(1); + AffinityTopologyVersion two = new AffinityTopologyVersion(2); + AffinityTopologyVersion three = new AffinityTopologyVersion(3); + AffinityTopologyVersion four = new AffinityTopologyVersion(4); + AffinityTopologyVersion five = new AffinityTopologyVersion(5); - assertFalse(g0.context().discovery().hasNearCache(CACHE_NAME, 1)); - assertFalse(g0.context().discovery().hasNearCache(null, 1)); + assertFalse(g0.context().discovery().hasNearCache(CACHE_NAME, zero)); + assertFalse(g0.context().discovery().hasNearCache(null, zero)); + + assertFalse(g0.context().discovery().hasNearCache(CACHE_NAME, one)); + assertFalse(g0.context().discovery().hasNearCache(null, one)); IgniteKernal g1 = (IgniteKernal)startGrid(1); // NEAR_ONLY cache. - assertFalse(g0.context().discovery().hasNearCache(CACHE_NAME, 1)); - assertTrue(g0.context().discovery().hasNearCache(CACHE_NAME, 2)); - assertFalse(g0.context().discovery().hasNearCache(null, 1)); - assertTrue(g0.context().discovery().hasNearCache(null, 2)); + assertFalse(g0.context().discovery().hasNearCache(CACHE_NAME, one)); + assertTrue(g0.context().discovery().hasNearCache(CACHE_NAME, two)); + assertFalse(g0.context().discovery().hasNearCache(null, one)); + assertTrue(g0.context().discovery().hasNearCache(null, two)); - assertTrue(g1.context().discovery().hasNearCache(CACHE_NAME, 2)); - assertTrue(g1.context().discovery().hasNearCache(null, 2)); + assertTrue(g1.context().discovery().hasNearCache(CACHE_NAME, two)); + assertTrue(g1.context().discovery().hasNearCache(null, two)); IgniteKernal g2 = (IgniteKernal)startGrid(2); // NEAR_PARTITIONED cache. - assertFalse(g0.context().discovery().hasNearCache(CACHE_NAME, 1)); - assertTrue(g0.context().discovery().hasNearCache(CACHE_NAME, 2)); - assertTrue(g0.context().discovery().hasNearCache(CACHE_NAME, 3)); - assertFalse(g0.context().discovery().hasNearCache(null, 1)); - assertTrue(g0.context().discovery().hasNearCache(null, 2)); - assertTrue(g0.context().discovery().hasNearCache(null, 3)); + assertFalse(g0.context().discovery().hasNearCache(CACHE_NAME, one)); + assertTrue(g0.context().discovery().hasNearCache(CACHE_NAME, two)); + assertTrue(g0.context().discovery().hasNearCache(CACHE_NAME, three)); + assertFalse(g0.context().discovery().hasNearCache(null, one)); + assertTrue(g0.context().discovery().hasNearCache(null, two)); + assertTrue(g0.context().discovery().hasNearCache(null, three)); - assertTrue(g1.context().discovery().hasNearCache(CACHE_NAME, 2)); - assertTrue(g1.context().discovery().hasNearCache(CACHE_NAME, 3)); - assertTrue(g1.context().discovery().hasNearCache(null, 2)); - assertTrue(g1.context().discovery().hasNearCache(null, 3)); + assertTrue(g1.context().discovery().hasNearCache(CACHE_NAME, two)); + assertTrue(g1.context().discovery().hasNearCache(CACHE_NAME, three)); + assertTrue(g1.context().discovery().hasNearCache(null, two)); + assertTrue(g1.context().discovery().hasNearCache(null, three)); - assertTrue(g2.context().discovery().hasNearCache(CACHE_NAME, 3)); - assertTrue(g2.context().discovery().hasNearCache(null, 3)); + assertTrue(g2.context().discovery().hasNearCache(CACHE_NAME, three)); + assertTrue(g2.context().discovery().hasNearCache(null, three)); stopGrid(1); @@ -141,19 +149,19 @@ public class GridDiscoveryManagerSelfTest extends GridCommonAbstractTest { Thread.sleep(1000); } - assertFalse(g0.context().discovery().hasNearCache(CACHE_NAME, 1)); - assertTrue(g0.context().discovery().hasNearCache(CACHE_NAME, 2)); - assertTrue(g0.context().discovery().hasNearCache(CACHE_NAME, 3)); - assertTrue(g0.context().discovery().hasNearCache(CACHE_NAME, 4)); - assertFalse(g0.context().discovery().hasNearCache(null, 1)); - assertTrue(g0.context().discovery().hasNearCache(null, 2)); - assertTrue(g0.context().discovery().hasNearCache(null, 3)); - assertTrue(g0.context().discovery().hasNearCache(null, 4)); + assertFalse(g0.context().discovery().hasNearCache(CACHE_NAME, one)); + assertTrue(g0.context().discovery().hasNearCache(CACHE_NAME, two)); + assertTrue(g0.context().discovery().hasNearCache(CACHE_NAME, three)); + assertTrue(g0.context().discovery().hasNearCache(CACHE_NAME, four)); + assertFalse(g0.context().discovery().hasNearCache(null, one)); + assertTrue(g0.context().discovery().hasNearCache(null, two)); + assertTrue(g0.context().discovery().hasNearCache(null, three)); + assertTrue(g0.context().discovery().hasNearCache(null, four)); - assertTrue(g2.context().discovery().hasNearCache(CACHE_NAME, 3)); - assertTrue(g2.context().discovery().hasNearCache(CACHE_NAME, 4)); - assertTrue(g2.context().discovery().hasNearCache(null, 3)); - assertTrue(g2.context().discovery().hasNearCache(null, 4)); + assertTrue(g2.context().discovery().hasNearCache(CACHE_NAME, three)); + assertTrue(g2.context().discovery().hasNearCache(CACHE_NAME, four)); + assertTrue(g2.context().discovery().hasNearCache(null, three)); + assertTrue(g2.context().discovery().hasNearCache(null, four)); stopGrid(2); @@ -171,16 +179,16 @@ public class GridDiscoveryManagerSelfTest extends GridCommonAbstractTest { Thread.sleep(1000); } - assertFalse(g0.context().discovery().hasNearCache(CACHE_NAME, 1)); - assertTrue(g0.context().discovery().hasNearCache(CACHE_NAME, 2)); - assertTrue(g0.context().discovery().hasNearCache(CACHE_NAME, 3)); - assertTrue(g0.context().discovery().hasNearCache(CACHE_NAME, 4)); - assertFalse(g0.context().discovery().hasNearCache(CACHE_NAME, 5)); - - assertFalse(g0.context().discovery().hasNearCache(null, 1)); - assertTrue(g0.context().discovery().hasNearCache(null, 2)); - assertTrue(g0.context().discovery().hasNearCache(null, 3)); - assertTrue(g0.context().discovery().hasNearCache(null, 4)); - assertFalse(g0.context().discovery().hasNearCache(null, 5)); + assertFalse(g0.context().discovery().hasNearCache(CACHE_NAME, one)); + assertTrue(g0.context().discovery().hasNearCache(CACHE_NAME, two)); + assertTrue(g0.context().discovery().hasNearCache(CACHE_NAME, three)); + assertTrue(g0.context().discovery().hasNearCache(CACHE_NAME, four)); + assertFalse(g0.context().discovery().hasNearCache(CACHE_NAME, five)); + + assertFalse(g0.context().discovery().hasNearCache(null, one)); + assertTrue(g0.context().discovery().hasNearCache(null, two)); + assertTrue(g0.context().discovery().hasNearCache(null, three)); + assertTrue(g0.context().discovery().hasNearCache(null, four)); + assertFalse(g0.context().discovery().hasNearCache(null, five)); } } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/aa989909/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/HadoopContext.java ---------------------------------------------------------------------- diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/HadoopContext.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/HadoopContext.java index 68f0baf..a7d0225 100644 --- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/HadoopContext.java +++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/HadoopContext.java @@ -20,6 +20,7 @@ package org.apache.ignite.internal.processors.hadoop; import org.apache.ignite.cluster.*; import org.apache.ignite.configuration.*; import org.apache.ignite.internal.*; +import org.apache.ignite.internal.processors.affinity.*; import org.apache.ignite.internal.processors.hadoop.jobtracker.*; import org.apache.ignite.internal.processors.hadoop.shuffle.*; import org.apache.ignite.internal.processors.hadoop.taskexecutor.*; @@ -118,7 +119,8 @@ public class HadoopContext { * @return Hadoop-enabled nodes. */ public Collection<ClusterNode> nodes() { - return ctx.discovery().cacheNodes(CU.SYS_CACHE_HADOOP_MR, ctx.discovery().topologyVersion()); + return ctx.discovery().cacheNodes(CU.SYS_CACHE_HADOOP_MR, + new AffinityTopologyVersion(ctx.discovery().topologyVersion())); } /** http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/aa989909/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java index 62c84f0..ffe0b1a 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java @@ -293,6 +293,19 @@ public class IgniteH2Indexing implements GridQueryIndexing { } /** + * Creates DB schema if it has not been created yet. + * + * @param schema Schema name. + * @throws IgniteCheckedException If failed to create db schema. + */ + private void dropSchemaIfExists(String schema) throws IgniteCheckedException { + executeStatement("DROP SCHEMA IF EXISTS \"" + schema + '"'); + + if (log.isDebugEnabled()) + log.debug("Dropped H2 schema for index database: " + schema); + } + + /** * @param sql SQL statement. * @throws IgniteCheckedException If failed. */ @@ -1287,6 +1300,21 @@ public class IgniteH2Indexing implements GridQueryIndexing { }; } + /** {@inheritDoc} */ + @Override public void onCacheStarted(GridCacheContext ctx) throws IgniteCheckedException { + if (registerSpace(ctx.name())) + createSchemaIfAbsent(schema(ctx.name())); + } + + /** {@inheritDoc} */ + @Override public void onCacheStopped(GridCacheContext ctx) throws IgniteCheckedException { + if (unregisterSpace(ctx.name())) { + dropSchemaIfExists(schema(ctx.name())); + + schemas.remove(schema(ctx.name())); + } + } + /** * Runs initial script. * @@ -1476,9 +1504,18 @@ public class IgniteH2Indexing implements GridQueryIndexing { /** * @param spaceName Space name. + * @return {@code True} if space was added by this call. + */ + public boolean registerSpace(String spaceName) { + return schemaNames.add(schema(spaceName)); + } + + /** + * @param spaceName Space name. + * @return {@code True} if space was removed by this call. */ - public void registerSpace(String spaceName) { - schemaNames.add(schema(spaceName)); + public boolean unregisterSpace(String spaceName) { + return schemaNames.remove(schema(spaceName)); } /**