You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2015/07/21 15:10:07 UTC

[1/8] incubator-ignite git commit: #ignite-1109: Add consistentId to IgniteConfiguration.

Repository: incubator-ignite
Updated Branches:
  refs/heads/ignite-752 ec1c76606 -> ed0422a4e


#ignite-1109: Add consistentId to IgniteConfiguration.


Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/fa21d8c0
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/fa21d8c0
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/fa21d8c0

Branch: refs/heads/ignite-752
Commit: fa21d8c0272887bf46a35b8ba333b90707e41d3c
Parents: 83bba05
Author: ivasilinets <iv...@gridgain.com>
Authored: Tue Jul 21 14:14:31 2015 +0300
Committer: ivasilinets <iv...@gridgain.com>
Committed: Tue Jul 21 14:14:31 2015 +0300

----------------------------------------------------------------------
 .../java/org/apache/ignite/IgniteCache.java     |   3 +-
 .../AffinityNodeAddressHashResolver.java        |   8 +-
 .../affinity/AffinityNodeHashResolver.java      |   5 +
 .../affinity/AffinityNodeIdHashResolver.java    |   6 +
 .../rendezvous/RendezvousAffinityFunction.java  |  22 +++-
 .../configuration/CacheConfiguration.java       |   4 +-
 .../configuration/IgniteConfiguration.java      |  26 +++++
 .../apache/ignite/internal/IgniteKernal.java    |   3 +
 .../ignite/internal/IgniteNodeAttributes.java   |   3 +
 .../processors/cache/GridCacheAttributes.java   |   8 +-
 .../processors/cache/GridCacheProcessor.java    | 113 ++++++++++++-------
 .../processors/cache/IgniteInternalCache.java   |   3 +-
 .../spi/discovery/tcp/TcpDiscoverySpi.java      |   3 +-
 .../tcp/internal/TcpDiscoveryNode.java          |  18 ++-
 ...DiscoveryNodeConfigConsistentIdSelfTest.java |  76 +++++++++++++
 .../IgniteSpiDiscoverySelfTestSuite.java        |   1 +
 16 files changed, 244 insertions(+), 58 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/fa21d8c0/modules/core/src/main/java/org/apache/ignite/IgniteCache.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/IgniteCache.java b/modules/core/src/main/java/org/apache/ignite/IgniteCache.java
index 4938ab1..fd0112c 100644
--- a/modules/core/src/main/java/org/apache/ignite/IgniteCache.java
+++ b/modules/core/src/main/java/org/apache/ignite/IgniteCache.java
@@ -34,6 +34,7 @@ import javax.cache.event.*;
 import javax.cache.expiry.*;
 import javax.cache.integration.*;
 import javax.cache.processor.*;
+import java.io.*;
 import java.util.*;
 import java.util.concurrent.*;
 import java.util.concurrent.locks.*;
@@ -571,7 +572,7 @@ public interface IgniteCache<K, V> extends javax.cache.Cache<K, V>, IgniteAsyncS
      * the left nodes, and that nodes are restarted before
      * {@link CacheConfiguration#getRebalanceDelay() rebalanceDelay} expires. To place nodes
      * on the same place in consistent hash ring, use
-     * {@link RendezvousAffinityFunction#setHashIdResolver(AffinityNodeHashResolver)} to make sure that
+     * {@link IgniteConfiguration#setConsistentId(Serializable)} to make sure that
      * a node maps to the same hash ID if re-started.
      * <p>
      * See {@link CacheConfiguration#getRebalanceDelay()} for more information on how to configure

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/fa21d8c0/modules/core/src/main/java/org/apache/ignite/cache/affinity/AffinityNodeAddressHashResolver.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/cache/affinity/AffinityNodeAddressHashResolver.java b/modules/core/src/main/java/org/apache/ignite/cache/affinity/AffinityNodeAddressHashResolver.java
index 7ce49ec..533174f 100644
--- a/modules/core/src/main/java/org/apache/ignite/cache/affinity/AffinityNodeAddressHashResolver.java
+++ b/modules/core/src/main/java/org/apache/ignite/cache/affinity/AffinityNodeAddressHashResolver.java
@@ -18,11 +18,17 @@
 package org.apache.ignite.cache.affinity;
 
 import org.apache.ignite.cluster.*;
+import org.apache.ignite.configuration.*;
 import org.apache.ignite.internal.util.typedef.internal.*;
 
+import java.io.*;
+
 /**
- * Node hash resolver which uses {@link org.apache.ignite.cluster.ClusterNode#consistentId()} as alternate hash value.
+ * Node hash resolver which uses {@link ClusterNode#consistentId()} as alternate hash value.
+ *
+ * @deprecated Use {@link IgniteConfiguration#setConsistentId(Serializable)} instead.
  */
+@Deprecated
 public class AffinityNodeAddressHashResolver implements AffinityNodeHashResolver {
     /** */
     private static final long serialVersionUID = 0L;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/fa21d8c0/modules/core/src/main/java/org/apache/ignite/cache/affinity/AffinityNodeHashResolver.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/cache/affinity/AffinityNodeHashResolver.java b/modules/core/src/main/java/org/apache/ignite/cache/affinity/AffinityNodeHashResolver.java
index d00b043..f990951 100644
--- a/modules/core/src/main/java/org/apache/ignite/cache/affinity/AffinityNodeHashResolver.java
+++ b/modules/core/src/main/java/org/apache/ignite/cache/affinity/AffinityNodeHashResolver.java
@@ -18,6 +18,7 @@
 package org.apache.ignite.cache.affinity;
 
 import org.apache.ignite.cluster.*;
+import org.apache.ignite.configuration.*;
 
 import java.io.*;
 
@@ -31,7 +32,10 @@ import java.io.*;
  * Note that on case clients exist they will query this object from the server and use it for affinity calculation.
  * Therefore you must ensure that server and clients can marshal and unmarshal this object in portable format,
  * i.e. all parties have object class(es) configured as portable.
+ *
+ * @deprecated Use {@link IgniteConfiguration#setConsistentId(Serializable)} instead.
  */
+@Deprecated
 public interface AffinityNodeHashResolver extends Serializable {
     /**
      * Resolve alternate hash value for the given Grid node.
@@ -39,5 +43,6 @@ public interface AffinityNodeHashResolver extends Serializable {
      * @param node Grid node.
      * @return Resolved hash ID.
      */
+    @Deprecated
     public Object resolve(ClusterNode node);
 }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/fa21d8c0/modules/core/src/main/java/org/apache/ignite/cache/affinity/AffinityNodeIdHashResolver.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/cache/affinity/AffinityNodeIdHashResolver.java b/modules/core/src/main/java/org/apache/ignite/cache/affinity/AffinityNodeIdHashResolver.java
index 65c6f13..2580c69 100644
--- a/modules/core/src/main/java/org/apache/ignite/cache/affinity/AffinityNodeIdHashResolver.java
+++ b/modules/core/src/main/java/org/apache/ignite/cache/affinity/AffinityNodeIdHashResolver.java
@@ -18,12 +18,18 @@
 package org.apache.ignite.cache.affinity;
 
 import org.apache.ignite.cluster.*;
+import org.apache.ignite.configuration.*;
 import org.apache.ignite.internal.util.typedef.internal.*;
 
+import java.io.*;
+
 /**
  * Node hash resolver which uses generated node ID as node hash value. As new node ID is generated
  * on each node start, this resolver do not provide ability to map keys to the same nodes after restart.
+ *
+ * @deprecated Use {@link IgniteConfiguration#setConsistentId(Serializable)} instead.
  */
+@Deprecated
 public class AffinityNodeIdHashResolver implements AffinityNodeHashResolver {
     /** */
     private static final long serialVersionUID = 0L;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/fa21d8c0/modules/core/src/main/java/org/apache/ignite/cache/affinity/rendezvous/RendezvousAffinityFunction.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/cache/affinity/rendezvous/RendezvousAffinityFunction.java b/modules/core/src/main/java/org/apache/ignite/cache/affinity/rendezvous/RendezvousAffinityFunction.java
index 2b26630..6736c4e 100644
--- a/modules/core/src/main/java/org/apache/ignite/cache/affinity/rendezvous/RendezvousAffinityFunction.java
+++ b/modules/core/src/main/java/org/apache/ignite/cache/affinity/rendezvous/RendezvousAffinityFunction.java
@@ -20,6 +20,7 @@ package org.apache.ignite.cache.affinity.rendezvous;
 import org.apache.ignite.*;
 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.util.typedef.*;
 import org.apache.ignite.internal.util.typedef.internal.*;
@@ -88,7 +89,7 @@ public class RendezvousAffinityFunction implements AffinityFunction, Externaliza
     private IgniteBiPredicate<ClusterNode, ClusterNode> backupFilter;
 
     /** Hash ID resolver. */
-    private AffinityNodeHashResolver hashIdRslvr = new AffinityNodeAddressHashResolver();
+    private AffinityNodeHashResolver hashIdRslvr = null;
 
     /** Ignite instance. */
     @IgniteInstanceResource
@@ -204,6 +205,7 @@ public class RendezvousAffinityFunction implements AffinityFunction, Externaliza
      *
      * @return Hash ID resolver.
      */
+    @Deprecated
     public AffinityNodeHashResolver getHashIdResolver() {
         return hashIdRslvr;
     }
@@ -219,7 +221,10 @@ public class RendezvousAffinityFunction implements AffinityFunction, Externaliza
      * repartitioning.
      *
      * @param hashIdRslvr Hash ID resolver.
+     *
+     * @deprecated Use {@link IgniteConfiguration#setConsistentId(Serializable)} instead.
      */
+    @Deprecated
     public void setHashIdResolver(AffinityNodeHashResolver hashIdRslvr) {
         this.hashIdRslvr = hashIdRslvr;
     }
@@ -273,6 +278,19 @@ public class RendezvousAffinityFunction implements AffinityFunction, Externaliza
     }
 
     /**
+     * Resolves node hash.
+     *
+     * @param node Cluster node;
+     * @return Node hash.
+     */
+    public Object resolveNodeHash(ClusterNode node) {
+        if (hashIdRslvr != null)
+            return hashIdRslvr.resolve(node);
+        else
+            return node.consistentId();
+    }
+
+    /**
      * Returns collection of nodes (primary first) for specified partition.
      */
     public List<ClusterNode> assignPartition(int part, List<ClusterNode> nodes, int backups,
@@ -285,7 +303,7 @@ public class RendezvousAffinityFunction implements AffinityFunction, Externaliza
         MessageDigest d = digest.get();
 
         for (ClusterNode node : nodes) {
-            Object nodeHash = hashIdRslvr.resolve(node);
+            Object nodeHash = resolveNodeHash(node);
 
             try {
                 ByteArrayOutputStream out = new ByteArrayOutputStream();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/fa21d8c0/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java b/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java
index 57f1e9d..3ad0f01 100644
--- a/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java
+++ b/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java
@@ -20,7 +20,6 @@ package org.apache.ignite.configuration;
 import org.apache.ignite.*;
 import org.apache.ignite.cache.*;
 import org.apache.ignite.cache.affinity.*;
-import org.apache.ignite.cache.affinity.rendezvous.*;
 import org.apache.ignite.cache.eviction.*;
 import org.apache.ignite.cache.query.annotations.*;
 import org.apache.ignite.cache.store.*;
@@ -33,6 +32,7 @@ import org.jetbrains.annotations.*;
 import javax.cache.*;
 import javax.cache.configuration.*;
 import javax.cache.expiry.*;
+import java.io.*;
 import java.util.*;
 
 /**
@@ -1310,7 +1310,7 @@ public class CacheConfiguration<K, V> extends MutableConfiguration<K, V> {
      * For better efficiency user should usually make sure that new nodes get placed on
      * the same place of consistent hash ring as the left nodes, and that nodes are
      * restarted before this delay expires. To place nodes on the same place in consistent hash ring,
-     * use {@link RendezvousAffinityFunction#setHashIdResolver(AffinityNodeHashResolver)}
+     * use {@link IgniteConfiguration#setConsistentId(Serializable)}
      * to make sure that a node maps to the same hash ID event if restarted. As an example,
      * node IP address and port combination may be used in this case.
      * <p>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/fa21d8c0/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java b/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
index 2d36c7a..823ddcd 100644
--- a/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
+++ b/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
@@ -59,6 +59,7 @@ import javax.cache.expiry.*;
 import javax.cache.integration.*;
 import javax.cache.processor.*;
 import javax.management.*;
+import java.io.*;
 import java.lang.management.*;
 import java.util.*;
 
@@ -400,6 +401,9 @@ public class IgniteConfiguration {
     /** Cache store session listeners. */
     private Factory<CacheStoreSessionListener>[] storeSesLsnrs;
 
+    /** Consistent globally unique node ID which survives node restarts. */
+    private Serializable consistentId;
+
     /**
      * Creates valid grid configuration with all default values.
      */
@@ -442,6 +446,7 @@ public class IgniteConfiguration {
         clientMode = cfg.isClientMode();
         clockSyncFreq = cfg.getClockSyncFrequency();
         clockSyncSamples = cfg.getClockSyncSamples();
+        consistentId = cfg.getConsistentId();
         deployMode = cfg.getDeploymentMode();
         discoStartupDelay = cfg.getDiscoveryStartupDelay();
         pubPoolSize = cfg.getPublicThreadPoolSize();
@@ -558,6 +563,27 @@ public class IgniteConfiguration {
     }
 
     /**
+     * Sets consistent globally unique node ID which survives node restarts.
+     *
+     * @param consistentId Node consistent ID.
+     * @return {@code this} for chaining.
+     */
+    public IgniteConfiguration setConsistentId(Serializable consistentId) {
+        this.consistentId = consistentId;
+
+        return this;
+    }
+
+    /**
+     * Gets consistent globally unique node ID which survives node restarts.
+     *
+     * @return Node consistent ID.
+     */
+    public Serializable getConsistentId() {
+        return consistentId;
+    }
+
+    /**
      * Should return any user-defined attributes to be added to this node. These attributes can
      * then be accessed on nodes by calling {@link ClusterNode#attribute(String)} or
      * {@link ClusterNode#attributes()} methods.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/fa21d8c0/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java b/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
index c411f2e..d2f018a 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
@@ -1173,6 +1173,9 @@ public class IgniteKernal implements IgniteEx, IgniteMXBean, Externalizable {
 
         add(ATTR_CONSISTENCY_CHECK_SKIPPED, getBoolean(IGNITE_SKIP_CONFIGURATION_CONSISTENCY_CHECK));
 
+        if (cfg.getConsistentId() != null)
+            add(ATTR_NODE_CONSISTENT_ID, cfg.getConsistentId());
+
         // Build a string from JVM arguments, because parameters with spaces are split.
         SB jvmArgs = new SB(512);
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/fa21d8c0/modules/core/src/main/java/org/apache/ignite/internal/IgniteNodeAttributes.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/IgniteNodeAttributes.java b/modules/core/src/main/java/org/apache/ignite/internal/IgniteNodeAttributes.java
index 928db5e..10b8df0 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/IgniteNodeAttributes.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/IgniteNodeAttributes.java
@@ -132,6 +132,9 @@ public final class IgniteNodeAttributes {
     /** Configuration consistency check disabled flag. */
     public static final String ATTR_CONSISTENCY_CHECK_SKIPPED = ATTR_PREFIX + ".consistency.check.skipped";
 
+    /** Node consistent id. */
+    public static final String ATTR_NODE_CONSISTENT_ID = ATTR_PREFIX + ".consistent.id";
+
     /**
      * Enforces singleton.
      */

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/fa21d8c0/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAttributes.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAttributes.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAttributes.java
index 78c4722..389c0fe 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAttributes.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAttributes.java
@@ -145,8 +145,12 @@ public class GridCacheAttributes implements Serializable {
     public String affinityHashIdResolverClassName() {
         AffinityFunction aff = ccfg.getAffinity();
 
-        if (aff instanceof RendezvousAffinityFunction)
-            return className(((RendezvousAffinityFunction)aff).getHashIdResolver());
+        if (aff instanceof RendezvousAffinityFunction) {
+            if (((RendezvousAffinityFunction) aff).getHashIdResolver() == null)
+                return null;
+
+            return className(((RendezvousAffinityFunction) aff).getHashIdResolver());
+        }
 
         return null;
     }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/fa21d8c0/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
index bda0485..f5ccaec 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
@@ -144,11 +144,13 @@ public class GridCacheProcessor extends GridProcessorAdapter {
     }
 
     /**
+     * @param internalCache Internal cache flag.
      * @param cfg Initializes cache configuration with proper defaults.
      * @param cacheObjCtx Cache object context.
      * @throws IgniteCheckedException If configuration is not valid.
      */
-    private void initialize(CacheConfiguration cfg, CacheObjectContext cacheObjCtx) throws IgniteCheckedException {
+    private void initialize(boolean internalCache, CacheConfiguration cfg, CacheObjectContext cacheObjCtx)
+        throws IgniteCheckedException {
         if (cfg.getCacheMode() == null)
             cfg.setCacheMode(DFLT_CACHE_MODE);
 
@@ -162,14 +164,16 @@ public class GridCacheProcessor extends GridProcessorAdapter {
             if (cfg.getCacheMode() == PARTITIONED) {
                 RendezvousAffinityFunction aff = new RendezvousAffinityFunction();
 
-                aff.setHashIdResolver(new AffinityNodeAddressHashResolver());
+                if (internalCache)
+                    aff.setHashIdResolver(new AffinityNodeAddressHashResolver());
 
                 cfg.setAffinity(aff);
             }
             else if (cfg.getCacheMode() == REPLICATED) {
                 RendezvousAffinityFunction aff = new RendezvousAffinityFunction(false, 512);
 
-                aff.setHashIdResolver(new AffinityNodeAddressHashResolver());
+                if (internalCache)
+                    aff.setHashIdResolver(new AffinityNodeAddressHashResolver());
 
                 cfg.setAffinity(aff);
 
@@ -183,7 +187,7 @@ public class GridCacheProcessor extends GridProcessorAdapter {
                 if (cfg.getAffinity() instanceof RendezvousAffinityFunction) {
                     RendezvousAffinityFunction aff = (RendezvousAffinityFunction)cfg.getAffinity();
 
-                    if (aff.getHashIdResolver() == null)
+                    if (internalCache && aff.getHashIdResolver() == null)
                         aff.setHashIdResolver(new AffinityNodeAddressHashResolver());
                 }
             }
@@ -551,27 +555,12 @@ public class GridCacheProcessor extends GridProcessorAdapter {
 
         ctx.discovery().setCustomEventListener(DynamicCacheChangeBatch.class,
             new CustomEventListener<DynamicCacheChangeBatch>() {
-            @Override public void onCustomEvent(ClusterNode snd, DynamicCacheChangeBatch msg) {
-                onCacheChangeRequested(msg);
-            }
-        });
-
-        // Internal caches which should not be returned to user.
-        Set<String> internalCaches = new HashSet<>();
-
-        FileSystemConfiguration[] igfsCfgs = ctx.grid().configuration().getFileSystemConfiguration();
-
-        if (igfsCfgs != null) {
-            for (FileSystemConfiguration igfsCfg : igfsCfgs) {
-                internalCaches.add(maskNull(igfsCfg.getMetaCacheName()));
-                internalCaches.add(maskNull(igfsCfg.getDataCacheName()));
-            }
-        }
+                @Override public void onCustomEvent(ClusterNode snd, DynamicCacheChangeBatch msg) {
+                    onCacheChangeRequested(msg);
+                }
+            });
 
-        if (IgniteComponentType.HADOOP.inClassPath())
-            internalCaches.add(CU.SYS_CACHE_HADOOP_MR);
-
-        internalCaches.add(CU.ATOMICS_CACHE_NAME);
+        Set<String> internalCaches = internalCachesNames();
 
         CacheConfiguration[] cfgs = ctx.config().getCacheConfiguration();
 
@@ -589,7 +578,7 @@ public class GridCacheProcessor extends GridProcessorAdapter {
             CacheObjectContext cacheObjCtx = ctx.cacheObjects().contextForCache(cfg);
 
             // Initialize defaults.
-            initialize(cfg, cacheObjCtx);
+            initialize(internalCaches.contains(maskNull(cfg.getName())), cfg, cacheObjCtx);
 
             cfgs[i] = cfg; // Replace original configuration value.
 
@@ -671,6 +660,30 @@ public class GridCacheProcessor extends GridProcessorAdapter {
             log.debug("Started cache processor.");
     }
 
+    /**
+     * @return Internal caches names.
+     */
+    private Set<String> internalCachesNames() {
+        // Internal caches which should not be returned to user.
+        Set<String> internalCaches = new HashSet<>();
+
+        FileSystemConfiguration[] igfsCfgs = ctx.grid().configuration().getFileSystemConfiguration();
+
+        if (igfsCfgs != null) {
+            for (FileSystemConfiguration igfsCfg : igfsCfgs) {
+                internalCaches.add(maskNull(igfsCfg.getMetaCacheName()));
+                internalCaches.add(maskNull(igfsCfg.getDataCacheName()));
+            }
+        }
+
+        if (IgniteComponentType.HADOOP.inClassPath())
+            internalCaches.add(CU.SYS_CACHE_HADOOP_MR);
+
+        internalCaches.add(CU.ATOMICS_CACHE_NAME);
+
+        return internalCaches;
+    }
+
     /** {@inheritDoc} */
     @SuppressWarnings("unchecked")
     @Override public void onKernalStart() throws IgniteCheckedException {
@@ -680,7 +693,7 @@ public class GridCacheProcessor extends GridProcessorAdapter {
                     if (CU.isMarshallerCache(ccfg.getName())) {
                         CacheObjectContext cacheObjCtx = ctx.cacheObjects().contextForCache(ccfg);
 
-                        initialize(ccfg, cacheObjCtx);
+                        initialize(internalCachesNames().contains(maskNull(ccfg.getName())), ccfg, cacheObjCtx);
 
                         GridCacheContext ctx = createCache(ccfg, null, CacheType.MARSHALLER, cacheObjCtx, true);
 
@@ -2133,7 +2146,7 @@ public class GridCacheProcessor extends GridProcessorAdapter {
 
                     CacheObjectContext cacheObjCtx = ctx.cacheObjects().contextForCache(cfg);
 
-                    initialize(cfg, cacheObjCtx);
+                    initialize(false, cfg, cacheObjCtx);
 
                     req.startCacheConfiguration(cfg);
                 }
@@ -2475,25 +2488,25 @@ public class GridCacheProcessor extends GridProcessorAdapter {
                 if (cfg.getAffinity() instanceof RendezvousAffinityFunction) {
                     RendezvousAffinityFunction aff = (RendezvousAffinityFunction)cfg.getAffinity();
 
-                    AffinityNodeHashResolver hashIdRslvr = aff.getHashIdResolver();
-
-                    assert hashIdRslvr != null;
-
-                    Object nodeHashObj = hashIdRslvr.resolve(node);
+                    Object nodeHashObj = aff.resolveNodeHash(node);
 
                     for (ClusterNode topNode : ctx.discovery().allNodes()) {
-                        Object topNodeHashObj = hashIdRslvr.resolve(topNode);
+                        Object topNodeHashObj = aff.resolveNodeHash(topNode);
 
                         if (nodeHashObj.hashCode() == topNodeHashObj.hashCode()) {
+                            String hashIdRslvrName = "";
+
+                            if (aff.getHashIdResolver() != null)
+                                hashIdRslvrName = ", hashIdResolverClass=" +
+                                    aff.getHashIdResolver().getClass().getName();
+
                             String errMsg = "Failed to add node to topology because it has the same hash code for " +
-                                "partitioned affinity as one of existing nodes [cacheName=" + U.maskName(cfg.getName()) +
-                                ", hashIdResolverClass=" + hashIdRslvr.getClass().getName() +
-                                ", existingNodeId=" + topNode.id() + ']';
+                                "partitioned affinity as one of existing nodes [cacheName=" +
+                                U.maskName(cfg.getName()) + hashIdRslvrName + ", existingNodeId=" + topNode.id() + ']';
 
                             String sndMsg = "Failed to add node to topology because it has the same hash code for " +
-                                "partitioned affinity as one of existing nodes [cacheName=" + U.maskName(cfg.getName()) +
-                                ", hashIdResolverClass=" + hashIdRslvr.getClass().getName() + ", existingNodeId=" +
-                                topNode.id() + ']';
+                                "partitioned affinity as one of existing nodes [cacheName=" +
+                                U.maskName(cfg.getName()) + hashIdRslvrName + ", existingNodeId=" + topNode.id() + ']';
 
                             return new IgniteNodeValidationResult(topNode.id(), errMsg, sndMsg);
                         }
@@ -2619,10 +2632,24 @@ public class GridCacheProcessor extends GridProcessorAdapter {
                     "Affinity key backups", locAttr.affinityKeyBackups(),
                     rmtAttr.affinityKeyBackups(), true);
 
-                CU.checkAttributeMismatch(log, rmtAttr.cacheName(), rmt, "cacheAffinity.hashIdResolver",
-                    "Partitioned cache affinity hash ID resolver class",
-                    locAttr.affinityHashIdResolverClassName(), rmtAttr.affinityHashIdResolverClassName(),
-                    true);
+                String locHashIdResolver = locAttr.affinityHashIdResolverClassName();
+                String rmtHashIdResolver = rmtAttr.affinityHashIdResolverClassName();
+                String defHashIdResolver = AffinityNodeAddressHashResolver.class.getName();
+
+                if (!((locHashIdResolver == null && rmtHashIdResolver == null) ||
+                    (locHashIdResolver == null && rmtHashIdResolver.equals(defHashIdResolver)) ||
+                    (rmtHashIdResolver == null && locHashIdResolver.equals(defHashIdResolver)))) {
+
+                    CU.checkAttributeMismatch(log, rmtAttr.cacheName(), rmt, "cacheAffinity.hashIdResolver",
+                        "Partitioned cache affinity hash ID resolver class",
+                        locHashIdResolver, rmtHashIdResolver, true);
+                }
+
+                if (locHashIdResolver == null &&
+                    (rmtHashIdResolver != null && rmtHashIdResolver.equals(defHashIdResolver))) {
+                    U.warn(log, "Set " + RendezvousAffinityFunction.class + " with " + defHashIdResolver +
+                        " to CacheConfiguration to start node [cacheName=" + rmtAttr.cacheName() + "]");
+                }
             }
         }
     }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/fa21d8c0/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteInternalCache.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteInternalCache.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteInternalCache.java
index 7396c84..42c648b 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteInternalCache.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteInternalCache.java
@@ -34,6 +34,7 @@ import org.jetbrains.annotations.*;
 import javax.cache.*;
 import javax.cache.expiry.*;
 import javax.cache.processor.*;
+import java.io.*;
 import java.sql.*;
 import java.util.*;
 import java.util.Date;
@@ -1456,7 +1457,7 @@ public interface IgniteInternalCache<K, V> extends Iterable<Cache.Entry<K, V>> {
      * the left nodes, and that nodes are restarted before
      * {@link CacheConfiguration#getRebalanceDelay() rebalanceDelay} expires. To place nodes
      * on the same place in consistent hash ring, use
-     * {@link org.apache.ignite.cache.affinity.rendezvous.RendezvousAffinityFunction#setHashIdResolver(AffinityNodeHashResolver)} to make sure that
+     * {@link IgniteConfiguration#setConsistentId(Serializable)} to make sure that
      * a node maps to the same hash ID if re-started.
      * <p>
      * See {@link org.apache.ignite.configuration.CacheConfiguration#getRebalanceDelay()} for more information on how to configure

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/fa21d8c0/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
index 431d198..b7d6e3f 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
@@ -878,7 +878,8 @@ public class TcpDiscoverySpi extends IgniteSpiAdapter implements DiscoverySpi, T
             addrs.get2(),
             srvPort,
             metricsProvider,
-            locNodeVer);
+            locNodeVer,
+            ignite.configuration().getConsistentId());
 
         if (addExtAddrAttr) {
             Collection<InetSocketAddress> extAddrs = addrRslvr == null ? null :

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/fa21d8c0/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/internal/TcpDiscoveryNode.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/internal/TcpDiscoveryNode.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/internal/TcpDiscoveryNode.java
index 032cf01..142dbea 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/internal/TcpDiscoveryNode.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/internal/TcpDiscoveryNode.java
@@ -131,11 +131,15 @@ public class TcpDiscoveryNode extends GridMetadataAwareAdapter implements Cluste
      * @param discPort Port.
      * @param metricsProvider Metrics provider.
      * @param ver Version.
+     * @param consistentId Node consistent ID.
      */
     public TcpDiscoveryNode(UUID id,
         Collection<String> addrs,
-        Collection<String> hostNames, int discPort,
-        DiscoveryMetricsProvider metricsProvider, IgniteProductVersion ver)
+        Collection<String> hostNames,
+        int discPort,
+        DiscoveryMetricsProvider metricsProvider,
+        IgniteProductVersion ver,
+        Serializable consistentId)
     {
         assert id != null;
         assert !F.isEmpty(addrs);
@@ -145,6 +149,7 @@ public class TcpDiscoveryNode extends GridMetadataAwareAdapter implements Cluste
         this.id = id;
 
         List<String> sortedAddrs = new ArrayList<>(addrs);
+
         Collections.sort(sortedAddrs);
 
         this.addrs = sortedAddrs;
@@ -153,7 +158,7 @@ public class TcpDiscoveryNode extends GridMetadataAwareAdapter implements Cluste
         this.metricsProvider = metricsProvider;
         this.ver = ver;
 
-        consistentId = U.consistentId(sortedAddrs, discPort);
+        this.consistentId = consistentId != null ? consistentId : U.consistentId(sortedAddrs, discPort);
 
         metrics = metricsProvider.metrics();
         cacheMetrics = metricsProvider.cacheMetrics();
@@ -452,7 +457,8 @@ public class TcpDiscoveryNode extends GridMetadataAwareAdapter implements Cluste
      * @return Copy of local node for client reconnect request.
      */
     public TcpDiscoveryNode clientReconnectNode() {
-        TcpDiscoveryNode node = new TcpDiscoveryNode(id, addrs, hostNames, discPort, metricsProvider, ver);
+        TcpDiscoveryNode node = new TcpDiscoveryNode(id, addrs, hostNames, discPort, metricsProvider, ver,
+            null);
 
         node.attrs = attrs;
         node.clientRouterNodeId = clientRouterNodeId;
@@ -522,7 +528,9 @@ public class TcpDiscoveryNode extends GridMetadataAwareAdapter implements Cluste
 
         sockAddrs = U.toSocketAddresses(this, discPort);
 
-        consistentId = U.consistentId(addrs, discPort);
+        Object consistentIdAttr = attrs.get(ATTR_NODE_CONSISTENT_ID);
+
+        consistentId = consistentIdAttr != null ? consistentIdAttr : U.consistentId(addrs, discPort);
 
         // Cluster metrics
         byte[] mtr = U.readByteArray(in);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/fa21d8c0/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryNodeConfigConsistentIdSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryNodeConfigConsistentIdSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryNodeConfigConsistentIdSelfTest.java
new file mode 100644
index 0000000..6abe1d6
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryNodeConfigConsistentIdSelfTest.java
@@ -0,0 +1,76 @@
+/*
+ * 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.spi.discovery.tcp;
+
+import org.apache.ignite.configuration.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.testframework.junits.common.*;
+
+import java.io.*;
+
+/**
+ * Test for {@link IgniteConfiguration#consistentId}.
+ */
+public class TcpDiscoveryNodeConfigConsistentIdSelfTest extends GridCommonAbstractTest {
+    /** IP finder. */
+    private TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
+
+    /** {@inheritDoc} */
+    @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
+        IgniteConfiguration cfg = super.getConfiguration(gridName);
+
+        cfg.setLocalHost("0.0.0.0");
+
+        cfg.setDiscoverySpi(new TcpDiscoverySpi().setIpFinder(ipFinder));
+
+        cfg.setConsistentId(gridName);
+
+        return cfg;
+    }
+
+    /** {@inheritDoc} */
+    @Override protected void beforeTest() throws Exception {
+        startGrids(2);
+    }
+
+    /** {@inheritDoc} */
+    @Override protected void afterTest() throws Exception {
+        stopAllGrids();
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testConsistentId() throws Exception {
+        Object id0 = grid(0).localNode().consistentId();
+        Serializable id1 = grid(0).configuration().getConsistentId();
+
+        assertEquals(id0, id1);
+        assertEquals(grid(0).name(), id0);
+        assertEquals(id0, grid(1).cluster().forRemotes().node().consistentId());
+
+        for (int i = 0; i < 4; ++i) {
+            stopAllGrids();
+
+            startGrids(2);
+
+            assertEquals(id0, grid(0).localNode().consistentId());
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/fa21d8c0/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteSpiDiscoverySelfTestSuite.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteSpiDiscoverySelfTestSuite.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteSpiDiscoverySelfTestSuite.java
index 6f59f14..b7014ad 100644
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteSpiDiscoverySelfTestSuite.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteSpiDiscoverySelfTestSuite.java
@@ -56,6 +56,7 @@ public class IgniteSpiDiscoverySelfTestSuite extends TestSuite {
         suite.addTest(new TestSuite(TcpClientDiscoverySpiMulticastTest.class));
 
         suite.addTest(new TestSuite(TcpDiscoveryNodeConsistentIdSelfTest.class));
+        suite.addTest(new TestSuite(TcpDiscoveryNodeConfigConsistentIdSelfTest.class));
 
         suite.addTest(new TestSuite(TcpDiscoveryRestartTest.class));
         suite.addTest(new TestSuite(TcpDiscoveryMultiThreadedTest.class));



[7/8] incubator-ignite git commit: ignite-752: changes after the review

Posted by sb...@apache.org.
ignite-752: changes after the review


Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/7fa037c2
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/7fa037c2
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/7fa037c2

Branch: refs/heads/ignite-752
Commit: 7fa037c2cc76a52f14c2ddc6c52610611342b313
Parents: 3531341
Author: Denis Magda <dm...@gridgain.com>
Authored: Tue Jul 21 15:41:54 2015 +0300
Committer: Denis Magda <dm...@gridgain.com>
Committed: Tue Jul 21 15:41:54 2015 +0300

----------------------------------------------------------------------
 .../org/apache/ignite/configuration/IgniteConfiguration.java  | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7fa037c2/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java b/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
index c636255..5b64696 100644
--- a/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
+++ b/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
@@ -1662,13 +1662,12 @@ public class IgniteConfiguration {
     }
 
     /**
-     * Returns failure detection threshold used by {@link TcpDiscoverySpi} and {@link TcpCommunicationSpi} in their
-     * network related operations.
+     * Returns failure detection threshold used by {@link TcpDiscoverySpi} and {@link TcpCommunicationSpi}.
      * <p>
      * Default is {@link #DFLT_FAILURE_DETECTION_THRESHOLD}.
-     * </p>
-     * @return Failure detection threshold in milliseconds.
+     *
      * @see #setFailureDetectionThreshold(long)
+     * @return Failure detection threshold in milliseconds.
      */
     public long getFailureDetectionThreshold() {
         return failureDetectionThreshold;


[5/8] incubator-ignite git commit: Merge remote-tracking branch 'origin/master'

Posted by sb...@apache.org.
Merge remote-tracking branch 'origin/master'


Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/73a2b149
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/73a2b149
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/73a2b149

Branch: refs/heads/ignite-752
Commit: 73a2b14901c5aecd20935c8c1a1f653544d608eb
Parents: 5e85f29 63575bb
Author: Anton Vinogradov <av...@gridgain.com>
Authored: Tue Jul 21 14:58:00 2015 +0300
Committer: Anton Vinogradov <av...@gridgain.com>
Committed: Tue Jul 21 14:58:00 2015 +0300

----------------------------------------------------------------------
 .../java/org/apache/ignite/IgniteCache.java     |   3 +-
 .../AffinityNodeAddressHashResolver.java        |   8 +-
 .../affinity/AffinityNodeHashResolver.java      |   5 +
 .../affinity/AffinityNodeIdHashResolver.java    |   6 +
 .../rendezvous/RendezvousAffinityFunction.java  |  22 +++-
 .../configuration/CacheConfiguration.java       |   4 +-
 .../configuration/IgniteConfiguration.java      |  26 +++++
 .../apache/ignite/internal/IgniteKernal.java    |   3 +
 .../ignite/internal/IgniteNodeAttributes.java   |   3 +
 .../processors/cache/GridCacheAttributes.java   |   8 +-
 .../processors/cache/GridCacheProcessor.java    | 113 ++++++++++++-------
 .../processors/cache/IgniteInternalCache.java   |   3 +-
 .../ignite/internal/util/IgniteUtils.java       |  21 +++-
 .../ignite/spi/discovery/tcp/ServerImpl.java    |  58 ++++++----
 .../spi/discovery/tcp/TcpDiscoverySpi.java      |   3 +-
 .../tcp/internal/TcpDiscoveryNode.java          |  18 ++-
 ...DiscoveryNodeConfigConsistentIdSelfTest.java |  76 +++++++++++++
 .../IgniteSpiDiscoverySelfTestSuite.java        |   1 +
 18 files changed, 294 insertions(+), 87 deletions(-)
----------------------------------------------------------------------



[3/8] incubator-ignite git commit: Merge remote-tracking branch 'origin/master'

Posted by sb...@apache.org.
Merge remote-tracking branch 'origin/master'


Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/63575bb8
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/63575bb8
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/63575bb8

Branch: refs/heads/ignite-752
Commit: 63575bb8bb3a892f64b5062c5a608f6b8bc538d3
Parents: f8a1317 fa21d8c
Author: Denis Magda <dm...@gridgain.com>
Authored: Tue Jul 21 14:36:08 2015 +0300
Committer: Denis Magda <dm...@gridgain.com>
Committed: Tue Jul 21 14:36:08 2015 +0300

----------------------------------------------------------------------
 .../java/org/apache/ignite/IgniteCache.java     |   3 +-
 .../AffinityNodeAddressHashResolver.java        |   8 +-
 .../affinity/AffinityNodeHashResolver.java      |   5 +
 .../affinity/AffinityNodeIdHashResolver.java    |   6 +
 .../rendezvous/RendezvousAffinityFunction.java  |  22 +++-
 .../configuration/CacheConfiguration.java       |   4 +-
 .../configuration/IgniteConfiguration.java      |  26 +++++
 .../apache/ignite/internal/IgniteKernal.java    |   3 +
 .../ignite/internal/IgniteNodeAttributes.java   |   3 +
 .../processors/cache/GridCacheAttributes.java   |   8 +-
 .../processors/cache/GridCacheProcessor.java    | 113 ++++++++++++-------
 .../processors/cache/IgniteInternalCache.java   |   3 +-
 .../ignite/internal/util/IgniteUtils.java       |  21 +++-
 .../spi/discovery/tcp/TcpDiscoverySpi.java      |   3 +-
 .../tcp/internal/TcpDiscoveryNode.java          |  18 ++-
 ...DiscoveryNodeConfigConsistentIdSelfTest.java |  76 +++++++++++++
 .../IgniteSpiDiscoverySelfTestSuite.java        |   1 +
 17 files changed, 260 insertions(+), 63 deletions(-)
----------------------------------------------------------------------



[6/8] incubator-ignite git commit: Merge remote-tracking branch 'remotes/origin/master' into ignite-752

Posted by sb...@apache.org.
Merge remote-tracking branch 'remotes/origin/master' into ignite-752


Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/3531341a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/3531341a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/3531341a

Branch: refs/heads/ignite-752
Commit: 3531341a7121e12ef80694daee33c5b98c4dddc9
Parents: 49098e9 73a2b14
Author: Denis Magda <dm...@gridgain.com>
Authored: Tue Jul 21 15:39:57 2015 +0300
Committer: Denis Magda <dm...@gridgain.com>
Committed: Tue Jul 21 15:39:57 2015 +0300

----------------------------------------------------------------------
 modules/apache-license-gen/pom.xml              |  13 ---
 .../java/org/apache/ignite/IgniteCache.java     |   3 +-
 .../AffinityNodeAddressHashResolver.java        |   8 +-
 .../affinity/AffinityNodeHashResolver.java      |   5 +
 .../affinity/AffinityNodeIdHashResolver.java    |   6 +
 .../rendezvous/RendezvousAffinityFunction.java  |  22 +++-
 .../configuration/CacheConfiguration.java       |   4 +-
 .../configuration/IgniteConfiguration.java      |  26 +++++
 .../apache/ignite/internal/IgniteKernal.java    |   3 +
 .../ignite/internal/IgniteNodeAttributes.java   |   3 +
 .../processors/cache/GridCacheAttributes.java   |   8 +-
 .../processors/cache/GridCacheProcessor.java    | 113 ++++++++++++-------
 .../processors/cache/IgniteInternalCache.java   |   3 +-
 .../ignite/internal/util/IgniteUtils.java       |  21 +++-
 .../ignite/spi/discovery/tcp/ServerImpl.java    |  58 ++++++----
 .../spi/discovery/tcp/TcpDiscoverySpi.java      |   3 +-
 .../tcp/internal/TcpDiscoveryNode.java          |  18 ++-
 ...DiscoveryNodeConfigConsistentIdSelfTest.java |  76 +++++++++++++
 .../IgniteSpiDiscoverySelfTestSuite.java        |   1 +
 19 files changed, 294 insertions(+), 100 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/3531341a/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
index 50f78a5,823ddcd..c636255
--- a/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
+++ b/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
@@@ -448,9 -446,10 +452,10 @@@ public class IgniteConfiguration 
          clientMode = cfg.isClientMode();
          clockSyncFreq = cfg.getClockSyncFrequency();
          clockSyncSamples = cfg.getClockSyncSamples();
+         consistentId = cfg.getConsistentId();
          deployMode = cfg.getDeploymentMode();
          discoStartupDelay = cfg.getDiscoveryStartupDelay();
 -        pubPoolSize = cfg.getPublicThreadPoolSize();
 +        failureDetectionThreshold = cfg.getFailureDetectionThreshold();
          ggHome = cfg.getIgniteHome();
          ggWork = cfg.getWorkDirectory();
          gridName = cfg.getGridName();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/3531341a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/3531341a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/3531341a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/internal/TcpDiscoveryNode.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/3531341a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteSpiDiscoverySelfTestSuite.java
----------------------------------------------------------------------
diff --cc modules/core/src/test/java/org/apache/ignite/testsuites/IgniteSpiDiscoverySelfTestSuite.java
index a78ab25,b7014ad..2e35c73
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteSpiDiscoverySelfTestSuite.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteSpiDiscoverySelfTestSuite.java
@@@ -55,9 -54,9 +55,10 @@@ public class IgniteSpiDiscoverySelfTest
          suite.addTest(new TestSuite(TcpClientDiscoverySpiSelfTest.class));
          suite.addTest(new TestSuite(TcpClientDiscoveryMarshallerCheckSelfTest.class));
          suite.addTest(new TestSuite(TcpClientDiscoverySpiMulticastTest.class));
 +        suite.addTest(new TestSuite(TcpClientDiscoverySpiFailureThresholdSelfTest.class));
  
          suite.addTest(new TestSuite(TcpDiscoveryNodeConsistentIdSelfTest.class));
+         suite.addTest(new TestSuite(TcpDiscoveryNodeConfigConsistentIdSelfTest.class));
  
          suite.addTest(new TestSuite(TcpDiscoveryRestartTest.class));
          suite.addTest(new TestSuite(TcpDiscoveryMultiThreadedTest.class));


[2/8] incubator-ignite git commit: Squashed commit of the following:

Posted by sb...@apache.org.
Squashed commit of the following:

commit 5b39d5d97ae2cca59972be5602929f4df85599f3
Author: Denis Magda <dm...@gridgain.com>
Date:   Tue Jul 21 14:33:33 2015 +0300

    ignite-1032: removed doc

commit 99408c9d41e4a103011293f262b10e45b28e5a6a
Merge: cd5d5cd 9aa928c
Author: Denis Magda <dm...@gridgain.com>
Date:   Tue Jul 21 12:46:48 2015 +0300

    Merge remote-tracking branch 'remotes/origin/master' into ignite-1032

commit cd5d5cdbb242c23b55fd8895738b1153dba14cb1
Merge: 22d3a17 f62744e
Author: Denis Magda <dm...@gridgain.com>
Date:   Tue Jul 21 08:54:47 2015 +0300

    Merge remote-tracking branch 'remotes/origin/master' into ignite-1032

commit 22d3a1767898ec9d9183dfb8429b79257641b8d7
Author: Denis Magda <dm...@gridgain.com>
Date:   Mon Jul 20 13:57:11 2015 +0300

    ignite-1032: implemented


Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/f8a13174
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/f8a13174
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/f8a13174

Branch: refs/heads/ignite-752
Commit: f8a131745c4ea3d9a30cf5096cd3cbdc13abbbea
Parents: 9aa928c
Author: Denis Magda <dm...@gridgain.com>
Authored: Tue Jul 21 14:35:35 2015 +0300
Committer: Denis Magda <dm...@gridgain.com>
Committed: Tue Jul 21 14:35:35 2015 +0300

----------------------------------------------------------------------
 .../ignite/spi/discovery/tcp/ServerImpl.java    | 58 ++++++++++++--------
 1 file changed, 34 insertions(+), 24 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f8a13174/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
index 4861953..dc343eb 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
@@ -3536,7 +3536,7 @@ class ServerImpl extends TcpDiscoveryImpl {
          *
          * @param msg Status check message.
          */
-        private void processStatusCheckMessage(TcpDiscoveryStatusCheckMessage msg) {
+        private void processStatusCheckMessage(final TcpDiscoveryStatusCheckMessage msg) {
             assert msg != null;
 
             UUID locNodeId = getLocalNodeId();
@@ -3576,35 +3576,45 @@ class ServerImpl extends TcpDiscoveryImpl {
                         // Sender is not in topology, it should reconnect.
                         msg.status(STATUS_RECON);
 
-                        try {
-                            trySendMessageDirectly(msg.creatorNode(), msg);
+                        utilityPool.execute(new Runnable() {
+                            @Override public void run() {
+                                if (spiState == DISCONNECTED) {
+                                    if (log.isDebugEnabled())
+                                        log.debug("Ignoring status check request, SPI is already disconnected: " + msg);
 
-                            if (log.isDebugEnabled())
-                                log.debug("Responded to status check message " +
-                                    "[recipient=" + msg.creatorNodeId() + ", status=" + msg.status() + ']');
-                        }
-                        catch (IgniteSpiException e) {
-                            if (e.hasCause(SocketException.class)) {
-                                if (log.isDebugEnabled()) {
-                                    log.debug("Failed to respond to status check message (connection refused) " +
-                                        "[recipient=" + msg.creatorNodeId() + ", status=" + msg.status() + ']');
+                                    return;
                                 }
 
-                                onException("Failed to respond to status check message (connection refused) " +
-                                    "[recipient=" + msg.creatorNodeId() + ", status=" + msg.status() + ']', e);
-                            }
-                            else {
-                                if (pingNode(msg.creatorNode())) {
-                                    // Node exists and accepts incoming connections.
-                                    U.error(log, "Failed to respond to status check message " +
-                                        "[recipient=" + msg.creatorNodeId() + ", status=" + msg.status() + ']', e);
+                                try {
+                                    trySendMessageDirectly(msg.creatorNode(), msg);
+
+                                    if (log.isDebugEnabled())
+                                        log.debug("Responded to status check message " +
+                                            "[recipient=" + msg.creatorNodeId() + ", status=" + msg.status() + ']');
                                 }
-                                else if (log.isDebugEnabled()) {
-                                    log.debug("Failed to respond to status check message (did the node stop?) " +
-                                        "[recipient=" + msg.creatorNodeId() + ", status=" + msg.status() + ']');
+                                catch (IgniteSpiException e) {
+                                    if (e.hasCause(SocketException.class)) {
+                                        if (log.isDebugEnabled())
+                                            log.debug("Failed to respond to status check message (connection " +
+                                                "refused) [recipient=" + msg.creatorNodeId() + ", status=" +
+                                                msg.status() + ']');
+
+                                        onException("Failed to respond to status check message (connection refused) " +
+                                            "[recipient=" + msg.creatorNodeId() + ", status=" + msg.status() + ']', e);
+                                    }
+                                    else {
+                                        if (pingNode(msg.creatorNode()))
+                                            // Node exists and accepts incoming connections.
+                                            U.error(log, "Failed to respond to status check message [recipient=" +
+                                                msg.creatorNodeId() + ", status=" + msg.status() + ']', e);
+                                        else if (log.isDebugEnabled())
+                                            log.debug("Failed to respond to status check message (did the node " +
+                                                "stop?) [recipient=" + msg.creatorNodeId() + ", status=" + msg.status()
+                                                + ']');
+                                    }
                                 }
                             }
-                        }
+                        });
                     }
 
                     return;


[4/8] incubator-ignite git commit: license generator deploy fix (cherry picked from commit 9cab55a)

Posted by sb...@apache.org.
license generator deploy fix
(cherry picked from commit 9cab55a)


Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/5e85f29e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/5e85f29e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/5e85f29e

Branch: refs/heads/ignite-752
Commit: 5e85f29ecc977ca44ab515113dbec42a7bbf99d7
Parents: 9aa928c
Author: Anton Vinogradov <av...@gridgain.com>
Authored: Tue Jul 21 14:43:29 2015 +0300
Committer: Anton Vinogradov <av...@gridgain.com>
Committed: Tue Jul 21 14:57:35 2015 +0300

----------------------------------------------------------------------
 modules/apache-license-gen/pom.xml | 13 -------------
 1 file changed, 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5e85f29e/modules/apache-license-gen/pom.xml
----------------------------------------------------------------------
diff --git a/modules/apache-license-gen/pom.xml b/modules/apache-license-gen/pom.xml
index 3025eab..ea95d06 100644
--- a/modules/apache-license-gen/pom.xml
+++ b/modules/apache-license-gen/pom.xml
@@ -32,17 +32,4 @@
     <groupId>org.apache.ignite</groupId>
     <artifactId>ignite-apache-license-gen</artifactId>
     <version>1.4.1-SNAPSHOT</version>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-deploy-plugin</artifactId>
-                <inherited>false</inherited>
-                <configuration>
-                    <skip>true</skip>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
 </project>


[8/8] incubator-ignite git commit: ignite-752: adjusting documentation

Posted by sb...@apache.org.
ignite-752: adjusting documentation


Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/ed0422a4
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/ed0422a4
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/ed0422a4

Branch: refs/heads/ignite-752
Commit: ed0422a4e5aca85d43696458500544cddef075b1
Parents: 7fa037c ec1c766
Author: Denis Magda <dm...@gridgain.com>
Authored: Tue Jul 21 16:09:46 2015 +0300
Committer: Denis Magda <dm...@gridgain.com>
Committed: Tue Jul 21 16:09:46 2015 +0300

----------------------------------------------------------------------
 .../ignite/spi/communication/tcp/TcpCommunicationSpi.java   | 2 +-
 .../tcp/TcpClientDiscoverySpiFailureThresholdSelfTest.java  | 6 +-----
 .../tcp/TcpDiscoverySpiFailureThresholdSelfTest.java        | 9 +++------
 3 files changed, 5 insertions(+), 12 deletions(-)
----------------------------------------------------------------------