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

[01/10] incubator-ignite git commit: IGNITE-11 (Discovery takes a lot of time on Windows if DescoverySpi contains several hosts and several ports per host)

Repository: incubator-ignite
Updated Branches:
  refs/heads/sprint-2 036bd7153 -> c9f46c1b3


IGNITE-11 (Discovery takes a lot of time on Windows if DescoverySpi contains several hosts and several ports per host)


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

Branch: refs/heads/sprint-2
Commit: a9ecd99f1b0713890c16e42cd53c264167959e0f
Parents: c93d86f
Author: sevdokimov <se...@gridgain.com>
Authored: Thu Feb 19 16:30:41 2015 +0300
Committer: sevdokimov <se...@gridgain.com>
Committed: Thu Feb 19 16:30:41 2015 +0300

----------------------------------------------------------------------
 .../spi/discovery/tcp/TcpDiscoverySpi.java      | 138 +++++++++++--------
 .../discovery/tcp/TcpDiscoverySpiAdapter.java   | 110 +++++++++++++++
 2 files changed, 193 insertions(+), 55 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a9ecd99f/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 aef8259..3e9c120 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
@@ -1395,65 +1395,83 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
                 return false;
 
             boolean retry = false;
-            IgniteCheckedException errs = null;
+            Collection<Exception> errs = new ArrayList<>();
 
-            for (InetSocketAddress addr : addrs) {
-                try {
-                    Integer res = sendMessageDirectly(joinReq, addr);
+            SocketMultiConnector multiConnector = new SocketMultiConnector(addrs, 2);
 
-                    assert res != null;
+            try {
+                GridTuple3<InetSocketAddress, Socket, Exception> tuple;
 
-                    noResAddrs.remove(addr);
+                while ((tuple = multiConnector.next()) != null) {
+                    InetSocketAddress addr = tuple.get1();
+                    Socket sock = tuple.get2();
+                    Exception ex = tuple.get3();
 
-                    // Address is responsive, reset period start.
-                    noResStart = 0;
+                    if (ex == null) {
+                        assert sock != null;
 
-                    switch (res) {
-                        case RES_WAIT:
-                            // Concurrent startup, try sending join request again or wait if no success.
-                            retry = true;
+                        try {
+                            Integer res = sendMessageDirectly(joinReq, addr, sock);
 
-                            break;
-                        case RES_OK:
-                            if (log.isDebugEnabled())
-                                log.debug("Join request message has been sent to address [addr=" + addr +
-                                    ", req=" + joinReq + ']');
+                            assert res != null;
 
-                            // Join request sending succeeded, wait for response from topology.
-                            return true;
+                            noResAddrs.remove(addr);
 
-                        default:
-                            // Concurrent startup, try next node.
-                            if (res == RES_CONTINUE_JOIN) {
-                                if (!fromAddrs.contains(addr))
+                            // Address is responsive, reset period start.
+                            noResStart = 0;
+
+                            switch (res) {
+                                case RES_WAIT:
+                                    // Concurrent startup, try sending join request again or wait if no success.
                                     retry = true;
-                            }
-                            else {
-                                if (log.isDebugEnabled())
-                                    log.debug("Unexpected response to join request: " + res);
 
-                                retry = true;
-                            }
+                                    break;
+                                case RES_OK:
+                                    if (log.isDebugEnabled())
+                                        log.debug("Join request message has been sent to address [addr=" + addr +
+                                            ", req=" + joinReq + ']');
 
-                            break;
-                    }
-                }
-                catch (IgniteSpiException e) {
-                    if (errs == null)
-                        errs = new IgniteCheckedException("Multiple connection attempts failed.");
+                                    // Join request sending succeeded, wait for response from topology.
+                                    return true;
 
-                    errs.addSuppressed(e);
+                                default:
+                                    // Concurrent startup, try next node.
+                                    if (res == RES_CONTINUE_JOIN) {
+                                        if (!fromAddrs.contains(addr))
+                                            retry = true;
+                                    }
+                                    else {
+                                        if (log.isDebugEnabled())
+                                            log.debug("Unexpected response to join request: " + res);
 
-                    if (log.isDebugEnabled()) {
-                        IOException ioe = X.cause(e, IOException.class);
+                                        retry = true;
+                                    }
 
-                        log.debug("Failed to send join request message [addr=" + addr +
-                            ", msg=" + ioe != null ? ioe.getMessage() : e.getMessage() + ']');
+                                    break;
+                            }
+                        }
+                        catch (IgniteSpiException e) {
+                            ex = e;
+                        }
                     }
 
-                    noResAddrs.add(addr);
+                    if (ex != null) {
+                        errs.add(ex);
+
+                        if (log.isDebugEnabled()) {
+                            IOException ioe = X.cause(ex, IOException.class);
+
+                            log.debug("Failed to send join request message [addr=" + addr +
+                                ", msg=" + ioe != null ? ioe.getMessage() : ex.getMessage() + ']');
+                        }
+
+                        noResAddrs.add(addr);
+                    }
                 }
             }
+            finally {
+                multiConnector.close();
+            }
 
             if (retry) {
                 if (log.isDebugEnabled())
@@ -1467,7 +1485,16 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
                 }
             }
             else if (!ipFinder.isShared() && !ipFinderHasLocAddr) {
-                if (errs != null && X.hasCause(errs, ConnectException.class))
+                IgniteCheckedException e = null;
+
+                if (!errs.isEmpty()) {
+                    e = new IgniteCheckedException("Multiple connection attempts failed.");
+
+                    for (Exception err : errs)
+                        e.addSuppressed(err);
+                }
+
+                if (e != null && X.hasCause(e, ConnectException.class))
                     LT.warn(log, null, "Failed to connect to any address from IP finder " +
                         "(make sure IP finder addresses are correct and firewalls are disabled on all host machines): " +
                         addrs);
@@ -1480,14 +1507,14 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
                             "Failed to connect to any address from IP finder within join timeout " +
                                 "(make sure IP finder addresses are correct, and operating system firewalls are disabled " +
                                 "on all host machines, or consider increasing 'joinTimeout' configuration property): " +
-                                addrs, errs);
+                                addrs, e);
                 }
 
                 try {
                     U.sleep(2000);
                 }
-                catch (IgniteInterruptedCheckedException e) {
-                    throw new IgniteSpiException("Thread has been interrupted.", e);
+                catch (IgniteInterruptedCheckedException ex) {
+                    throw new IgniteSpiException("Thread has been interrupted.", ex);
                 }
             }
             else
@@ -1503,17 +1530,15 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
      * @param msg Message to send.
      * @param addr Address to send message to.
      * @return Response read from the recipient or {@code null} if no response is supposed.
-     * @throws org.apache.ignite.spi.IgniteSpiException If an error occurs.
+     * @throws IgniteSpiException If an error occurs.
      */
-    @Nullable private Integer sendMessageDirectly(TcpDiscoveryAbstractMessage msg, InetSocketAddress addr)
+    @Nullable private Integer sendMessageDirectly(TcpDiscoveryAbstractMessage msg, InetSocketAddress addr, Socket sock)
         throws IgniteSpiException {
         assert msg != null;
         assert addr != null;
 
         Collection<Throwable> errs = null;
 
-        Socket sock = null;
-
         long ackTimeout0 = ackTimeout;
 
         int connectAttempts = 1;
@@ -1532,7 +1557,8 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
             try {
                 long tstamp = U.currentTimeMillis();
 
-                sock = openSocket(addr);
+                if (sock == null)
+                    sock = openSocket(addr);
 
                 openSock = true;
 
@@ -1612,6 +1638,8 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
             }
             finally {
                 U.closeQuiet(sock);
+
+                sock = null;
             }
         }
 
@@ -1634,7 +1662,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
      * Marshalls credentials with discovery SPI marshaller (will replace attribute value).
      *
      * @param node Node to marshall credentials for.
-     * @throws org.apache.ignite.spi.IgniteSpiException If marshalling failed.
+     * @throws IgniteSpiException If marshalling failed.
      */
     private void marshalCredentials(TcpDiscoveryNode node) throws IgniteSpiException {
         try {
@@ -1656,7 +1684,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
      *
      * @param node Node to unmarshall credentials for.
      * @return Security credentials.
-     * @throws org.apache.ignite.spi.IgniteSpiException If unmarshal fails.
+     * @throws IgniteSpiException If unmarshal fails.
      */
     private GridSecurityCredentials unmarshalCredentials(TcpDiscoveryNode node) throws IgniteSpiException {
         try {
@@ -3337,7 +3365,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
          *
          * @param node Node to send message to.
          * @param msg Message.
-         * @throws org.apache.ignite.spi.IgniteSpiException Last failure if all attempts failed.
+         * @throws IgniteSpiException Last failure if all attempts failed.
          */
         private void trySendMessageDirectly(TcpDiscoveryNode node, TcpDiscoveryAbstractMessage msg)
             throws IgniteSpiException {
@@ -3358,7 +3386,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
 
             for (InetSocketAddress addr : getNodeAddresses(node, U.sameMacs(locNode, node))) {
                 try {
-                    sendMessageDirectly(msg, addr);
+                    sendMessageDirectly(msg, addr, null);
 
                     ex = null;
 
@@ -4385,7 +4413,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
         /**
          * Constructor.
          *
-         * @throws org.apache.ignite.spi.IgniteSpiException In case of error.
+         * @throws IgniteSpiException In case of error.
          */
         TcpServer() throws IgniteSpiException {
             super(ignite.name(), "tcp-disco-srvr", log);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a9ecd99f/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
index 52156a4..87ee2fe 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
@@ -22,6 +22,7 @@ import org.apache.ignite.cluster.*;
 import org.apache.ignite.internal.*;
 import org.apache.ignite.internal.util.*;
 import org.apache.ignite.internal.util.io.*;
+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.lang.*;
@@ -1005,4 +1006,113 @@ abstract class TcpDiscoverySpiAdapter extends IgniteSpiAdapter implements Discov
             TcpDiscoverySpiAdapter.this.writeToSocket(sock, msg, bout);
         }
     }
+
+    /**
+     *
+     */
+    protected class SocketMultiConnector {
+        /** */
+        private int connInProgress;
+
+        /** */
+        private boolean closed;
+
+        /** */
+        private final ExecutorService executor;
+
+        /** */
+        private final Queue<GridTuple3<InetSocketAddress, Socket, Exception>> queue = new LinkedList<>();
+
+        /**
+         * @param addrs Addresses.
+         * @param retryCnt Retry count.
+         */
+        public SocketMultiConnector(Collection<InetSocketAddress> addrs, final int retryCnt) {
+            connInProgress = addrs.size();
+
+            executor = new ThreadPoolExecutor(0, 10, 1L, TimeUnit.MILLISECONDS,
+                new SynchronousQueue<Runnable>());
+
+            for (final InetSocketAddress addr : addrs) {
+                executor.execute(new Runnable() {
+                    @Override public void run() {
+                        Exception ex = null;
+                        Socket sock = null;
+
+                        for (int i = 0; i < retryCnt; i++) {
+                            synchronized (SocketMultiConnector.this) {
+                                if (closed)
+                                    return;
+                            }
+
+                            try {
+                                sock = openSocket(addr);
+
+                                break;
+                            }
+                            catch (Exception e) {
+                                ex = e;
+                            }
+                        }
+
+                        synchronized (SocketMultiConnector.this) {
+                            if (closed)
+                                U.closeQuiet(sock);
+                            else
+                                queue.add(new GridTuple3<>(addr, sock, ex));
+
+                            connInProgress--;
+
+                            SocketMultiConnector.this.notifyAll();
+                        }
+                    }
+                });
+            }
+        }
+
+        /**
+         *
+         */
+        @Nullable public synchronized GridTuple3<InetSocketAddress, Socket, Exception> next() {
+            try {
+                do {
+                    if (closed)
+                        return null;
+
+                    GridTuple3<InetSocketAddress, Socket, Exception> res = queue.poll();
+
+                    if (res != null)
+                        return res;
+
+                    if (connInProgress == 0)
+                        return null;
+
+                    wait();
+                }
+                while (true);
+            }
+            catch (InterruptedException e) {
+                throw new IgniteSpiException("Thread has been interrupted.", e);
+            }
+        }
+
+        /**
+         *
+         */
+        public void close() {
+            synchronized (this) {
+                if (closed)
+                    return;
+
+                closed = true;
+
+                notifyAll();
+            }
+
+            executor.shutdown();
+
+            for (GridTuple3<InetSocketAddress, Socket, Exception> tuple : queue)
+                U.closeQuiet(tuple.get2());
+        }
+    }
 }


[06/10] incubator-ignite git commit: Remove temporary code.

Posted by se...@apache.org.
Remove temporary code.


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

Branch: refs/heads/sprint-2
Commit: de75adb288fc246e710528b42fdf78d7d1b8cdf3
Parents: 153cbee
Author: sevdokimov <se...@gridgain.com>
Authored: Thu Feb 26 17:02:30 2015 +0300
Committer: sevdokimov <se...@gridgain.com>
Committed: Thu Feb 26 17:02:30 2015 +0300

----------------------------------------------------------------------
 examples/config/example-compute.xml | 2 --
 1 file changed, 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/de75adb2/examples/config/example-compute.xml
----------------------------------------------------------------------
diff --git a/examples/config/example-compute.xml b/examples/config/example-compute.xml
index 303b4eb..c532e17 100644
--- a/examples/config/example-compute.xml
+++ b/examples/config/example-compute.xml
@@ -32,8 +32,6 @@
         <!-- Set to true to enable distributed class loading for examples, default is false. -->
         <property name="peerClassLoadingEnabled" value="true"/>
 
-        <property name="localHost" value="127.0.0.1" />
-
         <property name="marshaller">
             <bean class="org.apache.ignite.marshaller.optimized.OptimizedMarshaller">
                 <!-- Set to false to allow non-serializable objects in examples, default is true. -->


[10/10] incubator-ignite git commit: Merge remote-tracking branch 'remotes/origin/ignite-11' into sprint-2

Posted by se...@apache.org.
Merge remote-tracking branch 'remotes/origin/ignite-11' into sprint-2


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

Branch: refs/heads/sprint-2
Commit: c9f46c1b39577c82d1084f13ffedb965a8e2c83c
Parents: 036bd71 6130f7e
Author: sevdokimov <se...@jetbrains.com>
Authored: Sun Mar 1 22:59:09 2015 +0300
Committer: sevdokimov <se...@jetbrains.com>
Committed: Sun Mar 1 22:59:09 2015 +0300

----------------------------------------------------------------------
 .../ignite/internal/util/IgniteUtils.java       |  90 ++++++++++--
 .../spi/discovery/tcp/TcpDiscoverySpi.java      | 137 +++++++++++--------
 .../discovery/tcp/TcpDiscoverySpiAdapter.java   | 116 ++++++++++++++++
 3 files changed, 275 insertions(+), 68 deletions(-)
----------------------------------------------------------------------



[07/10] incubator-ignite git commit: ignite-11 use ExecutorCompletionService.

Posted by se...@apache.org.
ignite-11 use ExecutorCompletionService.


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

Branch: refs/heads/sprint-2
Commit: 8b9e7f8f5ae205da389411f5aa763d329e3ea6bd
Parents: de75adb
Author: sevdokimov <se...@gridgain.com>
Authored: Thu Feb 26 17:23:52 2015 +0300
Committer: sevdokimov <se...@gridgain.com>
Committed: Thu Feb 26 17:23:52 2015 +0300

----------------------------------------------------------------------
 .../ignite/internal/util/IgniteUtils.java       |  1 +
 .../discovery/tcp/TcpDiscoverySpiAdapter.java   | 85 +++++++++-----------
 2 files changed, 40 insertions(+), 46 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8b9e7f8f/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
index a8b6991..b24743a 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
@@ -298,6 +298,7 @@ public abstract class IgniteUtils {
     private static final Map<Class<? extends IgniteCheckedException>, C1<IgniteCheckedException, IgniteException>>
         exceptionConverters;
 
+    /** */
     private volatile static IgniteBiTuple<Collection<String>, Collection<String>> cachedLocalAddr;
 
     /**

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8b9e7f8f/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
index 322b954..80b793a 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
@@ -1018,13 +1018,10 @@ abstract class TcpDiscoverySpiAdapter extends IgniteSpiAdapter implements Discov
         private int connInProgress;
 
         /** */
-        private boolean closed;
-
-        /** */
         private final ExecutorService executor;
 
         /** */
-        private final Queue<GridTuple3<InetSocketAddress, Socket, Exception>> queue = new LinkedList<>();
+        private final CompletionService<GridTuple3<InetSocketAddress, Socket, Exception>> completionSrvc;
 
         /**
          * @param addrs Addresses.
@@ -1033,19 +1030,19 @@ abstract class TcpDiscoverySpiAdapter extends IgniteSpiAdapter implements Discov
         public SocketMultiConnector(Collection<InetSocketAddress> addrs, final int retryCnt) {
             connInProgress = addrs.size();
 
-            executor = Executors.newFixedThreadPool(Math.min(10, addrs.size()));
+            executor = Executors.newFixedThreadPool(Math.min(1, addrs.size()));
+
+            completionSrvc = new ExecutorCompletionService<>(executor);
 
             for (final InetSocketAddress addr : addrs) {
-                executor.execute(new Runnable() {
-                    @Override public void run() {
+                completionSrvc.submit(new Callable<GridTuple3<InetSocketAddress, Socket, Exception>>() {
+                    @Override public GridTuple3<InetSocketAddress, Socket, Exception> call() {
                         Exception ex = null;
                         Socket sock = null;
 
                         for (int i = 0; i < retryCnt; i++) {
-                            synchronized (SocketMultiConnector.this) {
-                                if (closed)
-                                    return;
-                            }
+                            if (Thread.currentThread().isInterrupted())
+                                return null; // Executor is shutdown.
 
                             try {
                                 sock = openSocket(addr);
@@ -1057,16 +1054,7 @@ abstract class TcpDiscoverySpiAdapter extends IgniteSpiAdapter implements Discov
                             }
                         }
 
-                        synchronized (SocketMultiConnector.this) {
-                            if (closed)
-                                U.closeQuiet(sock);
-                            else
-                                queue.add(new GridTuple3<>(addr, sock, ex));
-
-                            connInProgress--;
-
-                            SocketMultiConnector.this.notifyAll();
-                        }
+                        return new GridTuple3<>(addr, sock, ex);
                     }
                 });
             }
@@ -1075,46 +1063,51 @@ abstract class TcpDiscoverySpiAdapter extends IgniteSpiAdapter implements Discov
         /**
          *
          */
-        @Nullable public synchronized GridTuple3<InetSocketAddress, Socket, Exception> next() {
-            try {
-                do {
-                    if (closed)
-                        return null;
+        @Nullable public GridTuple3<InetSocketAddress, Socket, Exception> next() {
+            if (connInProgress == 0)
+                return null;
 
-                    GridTuple3<InetSocketAddress, Socket, Exception> res = queue.poll();
-
-                    if (res != null)
-                        return res;
-
-                    if (connInProgress == 0)
-                        return null;
+            try {
+                connInProgress--;
 
-                    wait();
-                }
-                while (true);
+                return completionSrvc.take().get();
             }
             catch (InterruptedException e) {
                 throw new IgniteSpiException("Thread has been interrupted.", e);
             }
+            catch (ExecutionException e) {
+                throw new IgniteSpiException(e);
+            }
         }
 
         /**
          *
          */
         public void close() {
-            synchronized (this) {
-                if (closed)
-                    return;
-
-                closed = true;
+            executor.shutdown();
 
-                notifyAll();
-            }
+            if (connInProgress > 0) {
+                new Thread(new Runnable() {
+                    @Override public void run() {
+                        try {
+                            for (int i = 0; i < connInProgress; i++) {
+                                try {
+                                    GridTuple3<InetSocketAddress, Socket, Exception> take = completionSrvc.take().get();
 
-            executor.shutdown();
+                                    if (take != null)
+                                        IgniteUtils.closeQuiet(take.get2());
+                                }
+                                catch (ExecutionException ignored) {
 
-            for (GridTuple3<InetSocketAddress, Socket, Exception> tuple : queue)
-                U.closeQuiet(tuple.get2());
+                                }
+                            }
+                        }
+                        catch (InterruptedException e) {
+                            throw new RuntimeException(e);
+                        }
+                    }
+                }).start();
+            }
         }
     }
 }


[08/10] incubator-ignite git commit: ignite-11 Ad missing javadoc.

Posted by se...@apache.org.
ignite-11 Ad missing javadoc.


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

Branch: refs/heads/sprint-2
Commit: 2999d205d963f444812c9d380f0620f30c095196
Parents: 8b9e7f8
Author: sevdokimov <se...@gridgain.com>
Authored: Thu Feb 26 17:40:44 2015 +0300
Committer: sevdokimov <se...@gridgain.com>
Committed: Thu Feb 26 17:40:44 2015 +0300

----------------------------------------------------------------------
 .../main/java/org/apache/ignite/internal/util/IgniteUtils.java   | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/2999d205/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
index b24743a..de71f59 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
@@ -1434,6 +1434,9 @@ public abstract class IgniteUtils {
         return locHost0 != null && !resetLocalHost().equals(locHost0);
     }
 
+    /**
+     * @param addrs Addresses.
+     */
     public static List<InetAddress> filterReachable(List<InetAddress> addrs) {
         final int reachTimeout = 2000;
 
@@ -1495,7 +1498,6 @@ public abstract class IgniteUtils {
      */
     public static IgniteBiTuple<Collection<String>, Collection<String>> resolveLocalAddresses(InetAddress locAddr)
         throws IOException, IgniteCheckedException {
-
         assert locAddr != null;
 
         Collection<String> addrs = new ArrayList<>();


[02/10] incubator-ignite git commit: # IGNITE-11 Use Executors.newFixedThreadPool() to create executor service.

Posted by se...@apache.org.
# IGNITE-11 Use Executors.newFixedThreadPool() to create executor service.


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

Branch: refs/heads/sprint-2
Commit: e7171b064457e50ce141261f0946326f4165f565
Parents: a9ecd99
Author: sevdokimov <se...@jetbrains.com>
Authored: Sun Feb 22 13:10:25 2015 +0300
Committer: sevdokimov <se...@jetbrains.com>
Committed: Sun Feb 22 13:10:25 2015 +0300

----------------------------------------------------------------------
 .../apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java   | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e7171b06/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
index 87ee2fe..6bd50d6 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
@@ -1030,8 +1030,7 @@ abstract class TcpDiscoverySpiAdapter extends IgniteSpiAdapter implements Discov
         public SocketMultiConnector(Collection<InetSocketAddress> addrs, final int retryCnt) {
             connInProgress = addrs.size();
 
-            executor = new ThreadPoolExecutor(0, 10, 1L, TimeUnit.MILLISECONDS,
-                new SynchronousQueue<Runnable>());
+            executor = Executors.newFixedThreadPool(Math.min(10, addrs.size()));
 
             for (final InetSocketAddress addr : addrs) {
                 executor.execute(new Runnable() {


[05/10] incubator-ignite git commit: Merge commit

Posted by se...@apache.org.
Merge commit


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

Branch: refs/heads/sprint-2
Commit: 153cbee41b8adbcac1989f7746d1ef51049cda1f
Parents: 493775a bf8c048
Author: sevdokimov <se...@gridgain.com>
Authored: Thu Feb 26 17:01:52 2015 +0300
Committer: sevdokimov <se...@gridgain.com>
Committed: Thu Feb 26 17:01:52 2015 +0300

----------------------------------------------------------------------
 examples/config/example-compute.xml             |    2 +
 .../hibernate/example-hibernate-L2-cache.xml    |    2 +-
 .../ComputeFibonacciContinuationExample.java    |   17 +-
 .../examples/datagrid/CacheApiExample.java      |    4 +-
 .../datagrid/CacheContinuousQueryExample.java   |    6 +-
 .../IgniteCountDownLatchExample.java            |    3 +-
 .../MessagingPingPongListenActorExample.java    |    3 +-
 .../examples/ScalarContinuationExample.scala    |   20 +-
 .../checkpoint/s3/S3CheckpointSpiSelfTest.java  |   10 +-
 .../internal/client/ClientStartNodeTask.java    |    5 +-
 .../processors/rest/RestProcessorTest.java      |    8 +-
 .../processors/rest/TestBinaryClient.java       |    1 -
 .../processors/rest/TestMemcacheClient.java     |   13 +-
 .../protocols/tcp/TcpRestParserSelfTest.java    |    2 +-
 .../ignite/codegen/MessageCodeGenerator.java    |   28 +-
 .../java/org/apache/ignite/IgniteCache.java     |   69 +
 .../java/org/apache/ignite/IgniteCluster.java   |    3 +-
 .../main/java/org/apache/ignite/IgniteFs.java   |    2 +-
 .../apache/ignite/IgniteSystemProperties.java   |    5 +
 .../ignite/cache/IgniteEntryProcessor.java      |   28 +
 .../CacheRendezvousAffinityFunction.java        |    1 +
 .../cache/store/jdbc/CacheJdbcPojoStore.java    |   28 +-
 .../ignite/cluster/ClusterNodeLocalMap.java     |   60 -
 .../org/apache/ignite/events/EventType.java     |    8 +
 .../IgfsByteDelimiterRecordResolver.java        |    1 +
 .../java/org/apache/ignite/igfs/package.html    |    2 +-
 .../ignite/internal/ClusterMetricsSnapshot.java |    9 +-
 .../internal/GridEventConsumeHandler.java       |    1 +
 .../ignite/internal/GridKernalContext.java      |   16 +-
 .../ignite/internal/GridKernalContextImpl.java  |   23 +-
 .../internal/GridMessageListenHandler.java      |    1 +
 .../apache/ignite/internal/IgniteKernal.java    |   11 +-
 .../cluster/ClusterNodeLocalMapImpl.java        |   27 +-
 .../cluster/IgniteClusterAsyncImpl.java         |    3 +-
 .../internal/cluster/IgniteClusterImpl.java     |    4 +-
 .../internal/events/DiscoveryCustomEvent.java   |   68 +
 .../igfs/common/IgfsControlResponse.java        |    1 +
 .../internal/igfs/common/IgfsMarshaller.java    |    1 +
 .../internal/managers/GridManagerAdapter.java   |    5 +
 .../discovery/GridDiscoveryManager.java         |  105 +-
 .../affinity/GridAffinityMessage.java           |    1 +
 .../processors/cache/GridCacheEntryInfo.java    |    5 +-
 .../processors/cache/GridCacheMapEntry.java     |  562 ++--
 .../processors/cache/GridCacheSwapManager.java  |    4 +-
 .../processors/cache/GridCacheUtils.java        |    4 +
 .../processors/cache/IgniteCacheProxy.java      |   63 +
 .../GridDistributedTxRemoteAdapter.java         |   66 +-
 .../dht/atomic/GridDhtAtomicCache.java          |   44 +-
 .../dht/atomic/GridNearAtomicUpdateFuture.java  |   84 +-
 .../distributed/near/GridNearAtomicCache.java   |    3 -
 .../query/GridCacheDistributedQueryManager.java |    4 +-
 .../cache/query/GridCacheQueryManager.java      |    2 +-
 .../continuous/CacheContinuousQueryEntry.java   |    1 +
 .../continuous/CacheContinuousQueryHandler.java |    1 +
 .../cache/transactions/IgniteTxAdapter.java     |   58 +-
 .../cache/transactions/IgniteTxEntry.java       |   17 +-
 .../transactions/IgniteTxLocalAdapter.java      |   48 +-
 .../version/GridCacheRawVersionedEntry.java     |    1 +
 .../cache/version/GridCacheVersion.java         |    3 +-
 .../GridCacheVersionConflictContext.java        |   35 +-
 .../cache/version/GridCacheVersionEx.java       |    2 +-
 .../processors/clock/GridClockMessage.java      |    1 +
 .../closure/GridClosureProcessor.java           |   82 +-
 .../dataload/GridDataLoaderProcessor.java       |    2 +-
 .../datastructures/DataStructuresProcessor.java |    2 +-
 .../dr/GridDrDataLoadCacheUpdater.java          |    6 +-
 .../processors/igfs/IgfsDataManager.java        |    4 +-
 .../internal/processors/igfs/IgfsImpl.java      |    6 +-
 .../processors/igfs/IgfsOutputStreamImpl.java   |    4 +-
 .../internal/processors/igfs/IgfsServer.java    |    1 +
 .../internal/processors/job/GridJobWorker.java  |    2 +-
 .../processors/rest/GridRestProcessor.java      |   85 +-
 .../processors/rest/GridRestResponse.java       |    1 +
 .../message/GridClientAbstractMessage.java      |    1 +
 .../message/GridClientHandshakeRequest.java     |    1 +
 .../cache/GridCacheQueryCommandHandler.java     |    7 +-
 .../protocols/tcp/GridMemcachedMessage.java     |    3 +-
 .../rest/protocols/tcp/GridTcpRestParser.java   |   10 +-
 .../securesession/GridSecureSession.java        |   60 -
 .../GridSecureSessionProcessor.java             |   59 -
 .../os/GridOsSecureSessionProcessor.java        |   61 -
 .../security/GridSecurityContext.java           |  251 --
 .../security/GridSecurityProcessor.java         |    6 +-
 .../processors/security/SecurityContext.java    |   56 +
 .../security/os/GridOsSecurityProcessor.java    |  146 +-
 .../processors/task/GridTaskWorker.java         |    4 +-
 .../internal/util/IgniteExceptionRegistry.java  |  259 ++
 .../ignite/internal/util/IgniteUtils.java       | 2569 ++++++++----------
 .../nio/GridConnectionBytesVerifyFilter.java    |    1 +
 .../util/nio/GridTcpCommunicationClient.java    |    1 +
 .../apache/ignite/internal/util/typedef/X.java  |    3 +-
 .../VisorComputeToggleMonitoringTask.java       |    4 +-
 .../visor/node/VisorNodeDataCollectorJob.java   |    4 +-
 .../node/VisorNodeEventsCollectorTask.java      |    3 +-
 .../visor/query/VisorQueryCleanupTask.java      |    4 +-
 .../visor/query/VisorQueryNextPageTask.java     |    6 +-
 .../internal/visor/query/VisorQueryTask.java    |    4 +-
 .../internal/visor/util/VisorTaskUtils.java     |   45 +-
 .../ignite/lang/IgniteProductVersion.java       |    1 +
 .../optimized/optimized-classnames.properties   |    3 +-
 .../org/apache/ignite/mxbean/IgniteMXBean.java  |    6 +
 .../org/apache/ignite/spi/IgniteSpiAdapter.java |   15 +
 .../org/apache/ignite/spi/IgniteSpiContext.java |    8 +
 .../ignite/spi/IgniteSpiThreadFactory.java      |    2 +-
 .../communication/tcp/TcpCommunicationSpi.java  |   54 +-
 .../ignite/spi/discovery/DiscoverySpi.java      |    7 +
 .../spi/discovery/DiscoverySpiListener.java     |   11 +-
 .../DiscoverySpiNodeAuthenticator.java          |    2 +-
 .../discovery/tcp/TcpClientDiscoverySpi.java    |    7 +-
 .../spi/discovery/tcp/TcpDiscoverySpi.java      |  280 +-
 .../discovery/tcp/TcpDiscoverySpiAdapter.java   |    3 +
 .../tcp/internal/TcpDiscoveryNode.java          |    1 +
 .../TcpDiscoveryMulticastIpFinder.java          |    1 +
 .../messages/TcpDiscoveryAuthFailedMessage.java |    1 +
 .../TcpDiscoveryCustomEventMessage.java         |   66 +
 .../messages/TcpDiscoveryHeartbeatMessage.java  |    1 +
 .../spi/swapspace/file/FileSwapSpaceSpi.java    |    2 +-
 .../core/src/main/resources/ignite.properties   |    2 +-
 .../internal/GridDiscoveryEventSelfTest.java    |   44 +
 .../internal/GridEventStorageSelfTest.java      |    3 +-
 .../GridJobMasterLeaveAwareSelfTest.java        |   24 +-
 .../internal/GridMultipleJobsSelfTest.java      |    2 +-
 .../ignite/internal/GridNodeLocalSelfTest.java  |    4 +-
 .../GridTaskContinuousMapperSelfTest.java       |    3 +-
 .../GridTaskExecutionContextSelfTest.java       |    2 +-
 .../GridCheckpointManagerAbstractSelfTest.java  |   20 +-
 .../cache/GridCacheAbstractFullApiSelfTest.java |  101 +-
 .../GridCacheConcurrentTxMultiNodeTest.java     |   13 +-
 .../cache/GridCachePutAllFailoverSelfTest.java  |    5 +-
 .../cache/IgniteTxMultiNodeAbstractTest.java    |   33 +-
 ...cheAtomicReferenceMultiNodeAbstractTest.java |   12 +-
 .../GridCacheMultiNodeDataStructureTest.java    |    3 +-
 ...dCacheSequenceMultiNodeAbstractSelfTest.java |    2 +-
 ...titionedAtomicSequenceMultiThreadedTest.java |   16 +-
 ...dCachePartitionedQueueEntryMoveSelfTest.java |    2 +-
 .../GridCacheAbstractJobExecutionTest.java      |    2 +-
 .../distributed/GridCacheEventAbstractTest.java |    4 +-
 .../dht/GridCacheDhtInternalEntrySelfTest.java  |    6 +-
 .../dht/GridCacheDhtMultiBackupTest.java        |    2 +-
 ...idCachePartitionedHitsAndMissesSelfTest.java |    3 +-
 ...ePartitionedMultiThreadedPutGetSelfTest.java |    2 +-
 .../near/IgniteCacheNearReadCommittedTest.java  |    3 +
 .../GridCacheRandomEvictionPolicySelfTest.java  |    2 +-
 .../IgniteCacheLoaderWriterAbstractTest.java    |   47 +
 .../closure/GridClosureProcessorSelfTest.java   |   14 +-
 .../processors/igfs/IgfsAbstractSelfTest.java   |    5 +-
 .../igfs/IgfsDataManagerSelfTest.java           |    1 +
 .../processors/igfs/IgfsProcessorSelfTest.java  |    3 +-
 .../streamer/GridStreamerEvictionSelfTest.java  |    2 +-
 .../streamer/GridStreamerSelfTest.java          |    2 +-
 .../util/IgniteExceptionRegistrySelfTest.java   |   89 +
 .../internal/util/IgniteUtilsSelfTest.java      |    6 +-
 .../internal/util/nio/GridRoundTripTest.java    |    1 +
 .../offheap/GridOffHeapMapAbstractSelfTest.java |    1 +
 .../cache/GridCacheDataStructuresLoadTest.java  |   36 +-
 .../loadtests/cache/GridCacheLoadTest.java      |    6 +-
 .../loadtests/cache/GridCacheSwapLoadTest.java  |    5 +-
 .../loadtests/colocation/GridTestMain.java      |    3 +-
 .../communication/GridIoManagerBenchmark.java   |    3 +-
 .../GridMultiSplitsRedeployLoadTest.java        |    5 +-
 .../loadtests/discovery/GridGcTimeoutTest.java  |    3 +-
 .../ignite/loadtests/dsi/GridDsiPerfJob.java    |   16 +-
 .../job/GridJobExecutionSingleNodeLoadTest.java |    2 +-
 .../mapper/GridContinuousMapperLoadTest1.java   |    3 +-
 .../loadtests/mapper/GridNodeStartup.java       |    3 +-
 .../mergesort/GridMergeSortLoadTest.java        |    3 +-
 .../streamer/GridStreamerIndexLoadTest.java     |    4 +-
 .../swap/GridSwapEvictAllBenchmark.java         |    3 +-
 .../marshaller/GridMarshallerAbstractTest.java  |    6 +-
 ...idSessionFutureWaitJobAttributeSelfTest.java |    3 +-
 .../GridSessionSetTaskAttributeSelfTest.java    |    3 +-
 ...GridSessionTaskWaitJobAttributeSelfTest.java |    3 +-
 .../discovery/AbstractDiscoverySelfTest.java    |   22 +-
 .../tcp/TcpDiscoverySpiStartStopSelfTest.java   |   23 -
 .../roundrobin/GridRoundRobinTestUtils.java     |    6 +-
 .../file/GridFileSwapSpaceSpiSelfTest.java      |    1 +
 .../index/GridStreamerIndexSelfTest.java        |   17 +-
 .../window/GridStreamerWindowSelfTest.java      |    3 +-
 .../testframework/GridSpiTestContext.java       |    6 +
 .../junits/GridTestKernalContext.java           |    2 +
 .../ignite/testframework/junits/IgniteMock.java |    1 -
 .../cache/GridAbstractCacheStoreSelfTest.java   |    3 +-
 .../junits/spi/GridSpiAbstractTest.java         |   12 -
 .../ignite/testsuites/IgniteCacheTestSuite.java |    3 +-
 .../testsuites/IgniteUtilSelfTestSuite.java     |    1 +
 .../tests/p2p/GridP2PAwareTestUserResource.java |    5 +-
 .../tests/p2p/GridTestMessageListener.java      |    4 +-
 modules/hadoop/pom.xml                          |   10 -
 .../client/hadoop/GridHadoopClientProtocol.java |    3 +-
 .../java/org/apache/ignite/igfs/package.html    |    2 +-
 .../internal/igfs/hadoop/IgfsHadoopWrapper.java |    2 +-
 .../hadoop/GridHadoopDefaultJobInfo.java        |    5 +-
 .../processors/hadoop/GridHadoopSetup.java      |    3 +-
 .../GridHadoopDefaultMapReducePlanner.java      |    3 +-
 .../shuffle/GridHadoopShuffleMessage.java       |    1 +
 .../taskexecutor/GridHadoopExecutorService.java |    2 +-
 .../hadoop/v2/GridHadoopSplitWrapper.java       |    3 +-
 .../hadoop/GridHadoopGroupingTest.java          |   10 +-
 .../hadoop/GridHadoopJobTrackerSelfTest.java    |    2 +-
 .../hadoop/GridHadoopSortingTest.java           |    9 +-
 .../processors/hadoop/GridHadoopStartup.java    |    2 +-
 .../ignite/loadtests/igfs/IgfsNodeStartup.java  |    3 +-
 .../testsuites/IgniteHadoopTestSuite.java       |    7 +-
 ...idHibernateAbstractRegionAccessStrategy.java |   97 -
 .../GridHibernateAccessStrategyAdapter.java     |  369 ---
 .../GridHibernateCollectionRegion.java          |   99 -
 .../hibernate/GridHibernateEntityRegion.java    |  110 -
 .../GridHibernateGeneralDataRegion.java         |   69 -
 .../hibernate/GridHibernateNaturalIdRegion.java |   98 -
 .../GridHibernateNonStrictAccessStrategy.java   |  220 --
 .../GridHibernateQueryResultsRegion.java        |   71 -
 .../GridHibernateReadOnlyAccessStrategy.java    |  106 -
 .../GridHibernateReadWriteAccessStrategy.java   |  282 --
 .../cache/hibernate/GridHibernateRegion.java    |  101 -
 .../hibernate/GridHibernateRegionFactory.java   |  231 --
 .../GridHibernateTimestampsRegion.java          |   40 -
 ...ridHibernateTransactionalAccessStrategy.java |  139 -
 .../GridHibernateTransactionalDataRegion.java   |   96 -
 .../HibernateAbstractRegionAccessStrategy.java  |   97 +
 .../HibernateAccessStrategyAdapter.java         |  369 +++
 .../hibernate/HibernateCollectionRegion.java    |   99 +
 .../cache/hibernate/HibernateEntityRegion.java  |  110 +
 .../hibernate/HibernateGeneralDataRegion.java   |   69 +
 .../hibernate/HibernateNaturalIdRegion.java     |   98 +
 .../HibernateNonStrictAccessStrategy.java       |  220 ++
 .../hibernate/HibernateQueryResultsRegion.java  |   71 +
 .../HibernateReadOnlyAccessStrategy.java        |  106 +
 .../HibernateReadWriteAccessStrategy.java       |  282 ++
 .../ignite/cache/hibernate/HibernateRegion.java |  101 +
 .../cache/hibernate/HibernateRegionFactory.java |  231 ++
 .../hibernate/HibernateTimestampsRegion.java    |   40 +
 .../HibernateTransactionalAccessStrategy.java   |  139 +
 .../HibernateTransactionalDataRegion.java       |   96 +
 .../apache/ignite/cache/hibernate/package.html  |    2 +-
 ...idHibernateL2CacheConfigurationSelfTest.java |  393 ---
 .../hibernate/GridHibernateL2CacheSelfTest.java | 1923 -------------
 ...idHibernateL2CacheTransactionalSelfTest.java |  135 -
 .../HibernateL2CacheConfigurationSelfTest.java  |  393 +++
 .../hibernate/HibernateL2CacheSelfTest.java     | 1925 +++++++++++++
 .../HibernateL2CacheTransactionalSelfTest.java  |  135 +
 .../testsuites/IgniteHibernateTestSuite.java    |    6 +-
 .../cache/GridCacheCrossCacheQuerySelfTest.java |    2 +-
 .../GridCacheCrossCacheQuerySelfTestNewApi.java |    2 +-
 .../http/jetty/GridJettyRestHandler.java        |    1 +
 .../p2p/GridP2PUserVersionChangeSelfTest.java   |    4 +-
 ...gniteProjectionStartStopRestartSelfTest.java |    3 +-
 pom.xml                                         |    2 +-
 247 files changed, 8023 insertions(+), 7780 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/153cbee4/examples/config/example-compute.xml
----------------------------------------------------------------------
diff --cc examples/config/example-compute.xml
index c532e17,c532e17..303b4eb
--- a/examples/config/example-compute.xml
+++ b/examples/config/example-compute.xml
@@@ -32,6 -32,6 +32,8 @@@
          <!-- Set to true to enable distributed class loading for examples, default is false. -->
          <property name="peerClassLoadingEnabled" value="true"/>
  
++        <property name="localHost" value="127.0.0.1" />
++
          <property name="marshaller">
              <bean class="org.apache.ignite.marshaller.optimized.OptimizedMarshaller">
                  <!-- Set to false to allow non-serializable objects in examples, default is true. -->

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/153cbee4/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/153cbee4/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
index 3e9c120,ecdc6cc..3fc52b1
--- 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
@@@ -1395,83 -1399,68 +1399,86 @@@ public class TcpDiscoverySpi extends Tc
                  return false;
  
              boolean retry = false;
 -            IgniteCheckedException errs = null;
 +            Collection<Exception> errs = new ArrayList<>();
  
 -            for (InetSocketAddress addr : addrs) {
 -                try {
 -                    Integer res = sendMessageDirectly(joinReq, addr);
 +            SocketMultiConnector multiConnector = new SocketMultiConnector(addrs, 2);
  
 -                    assert res != null;
 +            try {
 +                GridTuple3<InetSocketAddress, Socket, Exception> tuple;
  
 -                    noResAddrs.remove(addr);
 +                while ((tuple = multiConnector.next()) != null) {
 +                    InetSocketAddress addr = tuple.get1();
 +                    Socket sock = tuple.get2();
 +                    Exception ex = tuple.get3();
  
 -                    // Address is responsive, reset period start.
 -                    noResStart = 0;
 +                    if (ex == null) {
 +                        assert sock != null;
  
 -                    switch (res) {
 -                        case RES_WAIT:
 -                            // Concurrent startup, try sending join request again or wait if no success.
 -                            retry = true;
 +                        try {
 +                            Integer res = sendMessageDirectly(joinReq, addr, sock);
  
 -                            break;
 -                        case RES_OK:
 -                            if (log.isDebugEnabled())
 -                                log.debug("Join request message has been sent to address [addr=" + addr +
 -                                    ", req=" + joinReq + ']');
 +                            assert res != null;
  
 -                            // Join request sending succeeded, wait for response from topology.
 -                            return true;
 +                            noResAddrs.remove(addr);
  
 -                        default:
 -                            // Concurrent startup, try next node.
 -                            if (res == RES_CONTINUE_JOIN) {
 -                                if (!fromAddrs.contains(addr))
 +                            // Address is responsive, reset period start.
 +                            noResStart = 0;
 +
 +                            switch (res) {
 +                                case RES_WAIT:
 +                                    // Concurrent startup, try sending join request again or wait if no success.
                                      retry = true;
 -                            }
 -                            else {
 -                                if (log.isDebugEnabled())
 -                                    log.debug("Unexpected response to join request: " + res);
  
 -                                retry = true;
 -                            }
 +                                    break;
 +                                case RES_OK:
 +                                    if (log.isDebugEnabled())
 +                                        log.debug("Join request message has been sent to address [addr=" + addr +
 +                                            ", req=" + joinReq + ']');
  
 -                            break;
 +                                    // Join request sending succeeded, wait for response from topology.
 +                                    return true;
 +
 +                                default:
 +                                    // Concurrent startup, try next node.
 +                                    if (res == RES_CONTINUE_JOIN) {
 +                                        if (!fromAddrs.contains(addr))
 +                                            retry = true;
 +                                    }
 +                                    else {
 +                                        if (log.isDebugEnabled())
 +                                            log.debug("Unexpected response to join request: " + res);
 +
 +                                        retry = true;
 +                                    }
 +
 +                                    break;
 +                            }
 +                        }
 +                        catch (IgniteSpiException e) {
 +                            ex = e;
 +                        }
                      }
 -                }
 -                catch (IgniteSpiException e) {
 -                    if (errs == null)
 -                        errs = new IgniteCheckedException("Multiple connection attempts failed.");
  
 -                    errs.addSuppressed(e);
 +                    if (ex != null) {
 +                        errs.add(ex);
  
 -                    if (log.isDebugEnabled()) {
 -                        IOException ioe = X.cause(e, IOException.class);
 +                        if (log.isDebugEnabled()) {
 +                            IOException ioe = X.cause(ex, IOException.class);
  
 -                        log.debug("Failed to send join request message [addr=" + addr +
 -                            ", msg=" + ioe != null ? ioe.getMessage() : e.getMessage() + ']');
 +                            log.debug("Failed to send join request message [addr=" + addr +
 +                                ", msg=" + ioe != null ? ioe.getMessage() : ex.getMessage() + ']');
+ 
 -                        onException("Failed to send join request message [addr=" + addr +
 -                            ", msg=" + ioe != null ? ioe.getMessage() : e.getMessage() + ']', ioe);
 -                    }
++                            onException("Failed to send join request message [addr=" + addr +
++                                ", msg=" + ioe != null ? ioe.getMessage() : ex.getMessage() + ']', ioe);
 +                        }
  
 -                    noResAddrs.add(addr);
 +                        noResAddrs.add(addr);
 +                    }
                  }
              }
 +            finally {
 +                multiConnector.close();
 +            }
  
              if (retry) {
                  if (log.isDebugEnabled())

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/153cbee4/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
----------------------------------------------------------------------


[04/10] incubator-ignite git commit: Merge remote-tracking branch 'remotes/origin/sprint-2' into ignite-11

Posted by se...@apache.org.
Merge remote-tracking branch 'remotes/origin/sprint-2' into ignite-11


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

Branch: refs/heads/sprint-2
Commit: 493775aa00c2ffd2e50be7289e17c448d6ae121f
Parents: e89a70c 02e5c37
Author: sevdokimov <se...@jetbrains.com>
Authored: Sun Feb 22 13:12:19 2015 +0300
Committer: sevdokimov <se...@jetbrains.com>
Committed: Sun Feb 22 13:12:19 2015 +0300

----------------------------------------------------------------------
 README.md                                       |   2 -
 bin/setup-hadoop.sh                             |   2 +-
 examples/pom-standalone.xml                     |   2 +-
 .../examples/datagrid/CacheQueryExample.java    |   2 +-
 .../ClientAbstractMultiNodeSelfTest.java        |   8 +-
 .../rest/AbstractRestProcessorSelfTest.java     |   2 +-
 .../ignite/codegen/MessageCodeGenerator.java    | 133 +--
 .../java/org/apache/ignite/cache/GridCache.java |  48 -
 .../ignite/internal/ClusterGroupAdapter.java    | 889 -------------------
 .../apache/ignite/internal/ClusterGroupEx.java  |  44 -
 .../internal/ClusterNodeLocalMapImpl.java       | 103 ---
 .../ignite/internal/GridJobCancelRequest.java   |  26 +-
 .../ignite/internal/GridJobExecuteRequest.java  |  70 +-
 .../ignite/internal/GridJobExecuteResponse.java |  34 +-
 .../ignite/internal/GridJobSiblingsRequest.java |  24 +-
 .../internal/GridJobSiblingsResponse.java       |  22 +-
 .../apache/ignite/internal/GridKillTask.java    | 103 ---
 .../ignite/internal/GridTaskCancelRequest.java  |  22 +-
 .../ignite/internal/GridTaskSessionRequest.java |  26 +-
 .../ignite/internal/IgniteClusterAsyncImpl.java | 261 ------
 .../ignite/internal/IgniteComputeImpl.java      |   1 +
 .../ignite/internal/IgniteEventsImpl.java       |   1 +
 .../org/apache/ignite/internal/IgniteEx.java    |  14 +-
 .../apache/ignite/internal/IgniteKernal.java    | 613 +++----------
 .../ignite/internal/IgniteMessagingImpl.java    |   1 +
 .../ignite/internal/IgniteServicesImpl.java     |   1 +
 .../org/apache/ignite/internal/IgnitionEx.java  |   4 +-
 .../internal/cluster/ClusterGroupAdapter.java   | 866 ++++++++++++++++++
 .../ignite/internal/cluster/ClusterGroupEx.java |  44 +
 .../cluster/ClusterNodeLocalMapImpl.java        | 104 +++
 .../cluster/IgniteClusterAsyncImpl.java         | 292 ++++++
 .../internal/cluster/IgniteClusterEx.java       |  27 +
 .../internal/cluster/IgniteClusterImpl.java     | 527 +++++++++++
 .../ignite/internal/cluster/IgniteKillTask.java | 103 +++
 .../internal/direct/DirectByteBufferStream.java |  44 +-
 .../internal/direct/DirectMessageReader.java    |  33 +-
 .../internal/direct/DirectMessageWriter.java    |  23 +-
 .../direct/DirectMessageWriterState.java        |  13 +-
 .../internal/executor/GridExecutorService.java  |   1 +
 .../internal/managers/GridManagerAdapter.java   |   4 +-
 .../checkpoint/GridCheckpointRequest.java       |  26 +-
 .../managers/communication/GridIoManager.java   |  30 +-
 .../managers/communication/GridIoMessage.java   |  38 +-
 .../communication/GridIoMessageFactory.java     |  33 +-
 .../communication/GridIoUserMessage.java        |  38 +-
 .../deployment/GridDeploymentCommunication.java |   4 +-
 .../deployment/GridDeploymentInfoBean.java      |  35 +-
 .../deployment/GridDeploymentRequest.java       |  34 +-
 .../deployment/GridDeploymentResponse.java      |  26 +-
 .../eventstorage/GridEventStorageMessage.java   |  42 +-
 .../processors/cache/GridCacheAdapter.java      |  49 +-
 .../processors/cache/GridCacheContext.java      |   5 +
 .../cache/GridCacheEvictionRequest.java         |  26 +-
 .../cache/GridCacheEvictionResponse.java        |  30 +-
 .../processors/cache/GridCacheMapEntry.java     |  58 +-
 .../processors/cache/GridCacheMessage.java      |  21 +-
 .../processors/cache/GridCacheProcessor.java    |   4 +
 .../processors/cache/GridCacheProjectionEx.java |  47 +
 .../cache/GridCacheProjectionImpl.java          |  11 +
 .../processors/cache/GridCacheProxyImpl.java    |   8 +-
 .../processors/cache/GridCacheUtils.java        |  46 +-
 .../processors/cache/GridCacheValueBytes.java   |  24 +-
 .../processors/cache/IgniteCacheProxy.java      |  14 +-
 ...idCacheOptimisticCheckPreparedTxRequest.java |  30 +-
 ...dCacheOptimisticCheckPreparedTxResponse.java |  26 +-
 .../distributed/GridCacheTtlUpdateRequest.java  |  58 +-
 .../distributed/GridDistributedBaseMessage.java |  33 +-
 .../GridDistributedCacheAdapter.java            |   4 +-
 .../distributed/GridDistributedLockRequest.java |  52 +-
 .../GridDistributedLockResponse.java            |  30 +-
 .../GridDistributedTxFinishRequest.java         |  42 +-
 .../GridDistributedTxFinishResponse.java        |  24 +-
 .../GridDistributedTxPrepareRequest.java        |  58 +-
 .../GridDistributedTxPrepareResponse.java       |  24 +-
 .../GridDistributedTxRemoteAdapter.java         |  11 +-
 .../GridDistributedUnlockRequest.java           |  26 +-
 .../dht/GridDhtAffinityAssignmentRequest.java   |  22 +-
 .../dht/GridDhtAffinityAssignmentResponse.java  |  24 +-
 .../distributed/dht/GridDhtCacheAdapter.java    |  16 +-
 .../distributed/dht/GridDhtLockRequest.java     |  42 +-
 .../distributed/dht/GridDhtLockResponse.java    |  40 +-
 .../distributed/dht/GridDhtTxFinishRequest.java |  42 +-
 .../dht/GridDhtTxFinishResponse.java            |  22 +-
 .../dht/GridDhtTxPrepareRequest.java            |  48 +-
 .../dht/GridDhtTxPrepareResponse.java           |  42 +-
 .../distributed/dht/GridDhtUnlockRequest.java   |  26 +-
 .../GridDhtAtomicDeferredUpdateResponse.java    |  26 +-
 .../dht/atomic/GridDhtAtomicUpdateRequest.java  |  92 +-
 .../dht/atomic/GridDhtAtomicUpdateResponse.java |  32 +-
 .../dht/atomic/GridNearAtomicUpdateFuture.java  |  44 +-
 .../dht/atomic/GridNearAtomicUpdateRequest.java |  78 +-
 .../atomic/GridNearAtomicUpdateResponse.java    |  54 +-
 .../dht/preloader/GridDhtForceKeysRequest.java  |  32 +-
 .../dht/preloader/GridDhtForceKeysResponse.java |  32 +-
 .../GridDhtPartitionDemandMessage.java          |  36 +-
 .../preloader/GridDhtPartitionExchangeId.java   |  27 +-
 .../GridDhtPartitionSupplyMessage.java          |  40 +-
 .../GridDhtPartitionsAbstractMessage.java       |  19 +-
 .../preloader/GridDhtPartitionsFullMessage.java |  24 +-
 .../GridDhtPartitionsSingleMessage.java         |  22 +-
 .../GridDhtPartitionsSingleRequest.java         |  18 +-
 .../distributed/near/GridNearAtomicCache.java   |   4 +-
 .../distributed/near/GridNearCacheAdapter.java  |   8 +-
 .../distributed/near/GridNearGetRequest.java    |  47 +-
 .../distributed/near/GridNearGetResponse.java   |  38 +-
 .../distributed/near/GridNearLockRequest.java   |  52 +-
 .../distributed/near/GridNearLockResponse.java  |  42 +-
 .../near/GridNearTxFinishRequest.java           |  32 +-
 .../near/GridNearTxFinishResponse.java          |  26 +-
 .../near/GridNearTxPrepareRequest.java          |  44 +-
 .../near/GridNearTxPrepareResponse.java         |  48 +-
 .../distributed/near/GridNearUnlockRequest.java |  18 +-
 .../cache/query/GridCacheQueryManager.java      |   2 +-
 .../cache/query/GridCacheQueryRequest.java      |  58 +-
 .../cache/query/GridCacheQueryResponse.java     |  40 +-
 .../continuous/CacheContinuousQueryManager.java |   4 +-
 .../cache/version/GridCacheVersion.java         |  29 +-
 .../clock/GridClockDeltaSnapshotMessage.java    |  28 +-
 .../processors/clock/GridClockDeltaVersion.java |  24 +-
 .../continuous/GridContinuousMessage.java       |  28 +-
 .../dataload/GridDataLoadRequest.java           |  50 +-
 .../dataload/GridDataLoadResponse.java          |  26 +-
 .../dataload/IgniteDataLoaderImpl.java          |   4 +-
 .../datastructures/GridCacheSetImpl.java        |   4 +-
 .../processors/igfs/IgfsAckMessage.java         |  26 +-
 .../internal/processors/igfs/IgfsBlockKey.java  |  28 +-
 .../processors/igfs/IgfsBlocksMessage.java      |  30 +-
 .../igfs/IgfsCommunicationMessage.java          |  18 +-
 .../processors/igfs/IgfsDeleteMessage.java      |  24 +-
 .../processors/igfs/IgfsFileAffinityRange.java  |  30 +-
 .../igfs/IgfsFragmentizerRequest.java           |  28 +-
 .../igfs/IgfsFragmentizerResponse.java          |  22 +-
 .../processors/igfs/IgfsSyncMessage.java        |  24 +-
 .../plugin/IgnitePluginProcessor.java           |   2 +-
 .../processors/query/GridQueryProcessor.java    |   4 +-
 .../handlers/cache/GridCacheCommandHandler.java |   4 +-
 .../cache/GridCacheQueryCommandHandler.java     |   4 +-
 .../handlers/task/GridTaskCommandHandler.java   |   4 +-
 .../handlers/task/GridTaskResultRequest.java    |  24 +-
 .../handlers/task/GridTaskResultResponse.java   |  28 +-
 .../top/GridTopologyCommandHandler.java         |   2 +-
 .../streamer/GridStreamerCancelRequest.java     |  22 +-
 .../streamer/GridStreamerContextImpl.java       |   2 +-
 .../streamer/GridStreamerExecutionRequest.java  |  38 +-
 .../streamer/GridStreamerResponse.java          |  24 +-
 .../processors/streamer/IgniteStreamerImpl.java |   4 +-
 .../ignite/internal/util/GridByteArrayList.java |  24 +-
 .../ignite/internal/util/GridLongList.java      |  24 +-
 .../ignite/internal/util/IgniteUtils.java       |  32 +-
 .../internal/util/future/GridFutureAdapter.java |   8 +-
 .../util/future/GridFutureAdapterEx.java        |   3 +-
 .../internal/util/ipc/IpcToNioAdapter.java      |   4 +-
 .../util/nio/GridCommunicationClient.java       |   2 +-
 .../internal/util/nio/GridDirectParser.java     |  33 +-
 .../internal/util/nio/GridNioMessageReader.java |   2 +-
 .../internal/util/nio/GridNioMessageWriter.java |   4 +-
 .../ignite/internal/util/nio/GridNioServer.java |  59 +-
 .../util/nio/GridShmemCommunicationClient.java  |   2 +-
 .../util/nio/GridTcpCommunicationClient.java    |   2 +-
 .../util/nio/GridTcpNioCommunicationClient.java |   2 +-
 .../visor/cache/VisorCacheClearTask.java        |   3 +-
 .../compute/VisorComputeCancelSessionsTask.java |   2 +-
 .../compute/VisorComputeResetMetricsTask.java   |   2 +-
 .../VisorComputeToggleMonitoringTask.java       |   2 +-
 .../visor/node/VisorNodeDataCollectorJob.java   |   4 +-
 .../node/VisorNodeEventsCollectorTask.java      |   2 +-
 .../internal/visor/node/VisorNodePingTask.java  |   2 +-
 .../visor/query/VisorQueryCleanupTask.java      |   3 +-
 .../visor/query/VisorQueryNextPageTask.java     |   6 +-
 .../internal/visor/query/VisorQueryTask.java    |  10 +-
 .../optimized/optimized-classnames.properties   |  24 +-
 .../extensions/communication/Message.java       |  58 ++
 .../communication/MessageAdapter.java           | 143 ---
 .../MessageCollectionItemType.java              | 101 +++
 .../communication/MessageFactory.java           |   4 +-
 .../communication/MessageFormatter.java         |   3 +-
 .../extensions/communication/MessageReader.java |  24 +-
 .../extensions/communication/MessageWriter.java |  26 +-
 .../jobstealing/JobStealingRequest.java         |  22 +-
 .../communication/tcp/TcpCommunicationSpi.java  |  80 +-
 .../core/src/main/resources/ignite.properties   |   3 +-
 .../ignite/IgniteCacheAffinitySelfTest.java     |   8 +-
 .../IgniteCacheExpiryStoreLoadSelfTest.java     |  81 +-
 .../ignite/internal/ClusterMetricsSelfTest.java |   2 +-
 .../GridJobMasterLeaveAwareSelfTest.java        |  12 +-
 .../internal/GridMultipleJobsSelfTest.java      |   2 +-
 .../internal/GridProjectionAbstractTest.java    |   2 +-
 .../ignite/internal/GridProjectionSelfTest.java |   2 +-
 .../apache/ignite/internal/GridSelfTest.java    |  15 +-
 .../GridCommunicationSendMessageSelfTest.java   |  13 +-
 .../communication/GridIoManagerSelfTest.java    |  18 +-
 .../GridDeploymentMessageCountSelfTest.java     |   2 +-
 .../GridAffinityProcessorAbstractSelfTest.java  |   7 +-
 .../cache/GridCacheAbstractFullApiSelfTest.java |  28 +-
 .../cache/GridCacheAffinityApiSelfTest.java     |  18 +-
 .../GridCacheAtomicMessageCountSelfTest.java    |   2 +-
 .../cache/GridCacheEntryMemorySizeSelfTest.java |   4 +-
 ...GridCacheMixedPartitionExchangeSelfTest.java |   2 +-
 ...ridCacheReplicatedSynchronousCommitTest.java |   2 +-
 .../IgniteCacheAbstractStopBusySelfTest.java    |   5 +-
 .../cache/IgniteTxReentryAbstractSelfTest.java  |   2 +-
 ...ridCacheQueueJoinedNodeSelfAbstractTest.java |   4 +-
 ...GridCacheQueueMultiNodeAbstractSelfTest.java |   4 +-
 ...dCacheSequenceMultiNodeAbstractSelfTest.java |   4 +-
 ...dCachePartitionedQueueEntryMoveSelfTest.java |   2 +-
 .../GridCacheAbstractJobExecutionTest.java      |  13 +-
 .../GridCacheAtomicTimeoutSelfTest.java         |   3 +-
 ...xOriginatingNodeFailureAbstractSelfTest.java |   2 +-
 ...cOriginatingNodeFailureAbstractSelfTest.java |   2 +-
 .../dht/GridCacheDhtEntrySelfTest.java          |   2 +-
 ...GridCacheDhtEvictionNearReadersSelfTest.java |   4 +-
 .../dht/GridCacheDhtEvictionSelfTest.java       |   2 +-
 .../dht/GridCacheDhtInternalEntrySelfTest.java  |   2 +-
 .../GridCacheDhtPreloadMessageCountTest.java    |   2 +-
 ...eAtomicInvalidPartitionHandlingSelfTest.java |   2 +-
 .../near/GridCacheNearMultiNodeSelfTest.java    |   4 +-
 .../near/GridCacheNearReadersSelfTest.java      |  18 +-
 ...ePartitionedBasicStoreMultiNodeSelfTest.java |  12 +-
 ...titionedExplicitLockNodeFailureSelfTest.java |   4 +-
 ...achePartitionedMultiNodeFullApiSelfTest.java |   2 +-
 ...hePartitionedQueryMultiThreadedSelfTest.java |   2 +-
 .../GridCacheReplicatedInvalidateSelfTest.java  |   2 +-
 ...CacheReplicatedPreloadLifecycleSelfTest.java |   2 +-
 ...ridCacheContinuousQueryAbstractSelfTest.java |  14 +-
 .../closure/GridClosureProcessorRemoteTest.java |   2 +-
 .../closure/GridClosureProcessorSelfTest.java   |  14 +-
 .../continuous/GridEventConsumeSelfTest.java    |  18 +-
 .../continuous/GridMessageListenSelfTest.java   |  14 +-
 .../processors/igfs/IgfsSizeSelfTest.java       |   4 +-
 .../processors/igfs/IgfsStreamsSelfTest.java    |   2 +-
 .../GridServiceReassignmentSelfTest.java        |   2 +-
 .../communication/GridIoManagerBenchmark0.java  |   6 +-
 .../communication/GridTestMessage.java          |   9 +-
 .../marshaller/GridMarshallerAbstractTest.java  |  14 +-
 .../ignite/messaging/GridMessagingSelfTest.java |   3 +-
 .../spi/GridTcpSpiForwardingSelfTest.java       |   4 +-
 .../GridAbstractCommunicationSelfTest.java      |  22 +-
 .../spi/communication/GridTestMessage.java      |  25 +-
 .../tcp/GridCacheDhtLockBackupSelfTest.java     |   4 +-
 .../GridTcpCommunicationSpiAbstractTest.java    |   2 +-
 ...mmunicationSpiConcurrentConnectSelfTest.java |  16 +-
 .../tcp/GridTcpCommunicationSpiLanTest.java     |   4 +-
 ...cpCommunicationSpiMultithreadedSelfTest.java |  22 +-
 ...dTcpCommunicationSpiRecoveryAckSelfTest.java |  10 +-
 ...GridTcpCommunicationSpiRecoverySelfTest.java |  10 +-
 .../tcp/TcpDiscoverySpiWildcardSelfTest.java    |   2 +-
 .../testframework/GridSpiTestContext.java       |   6 +-
 .../testframework/junits/GridAbstractTest.java  |   4 +-
 modules/hadoop/pom.xml                          |   6 -
 .../IgfsHadoop20FileSystemAbstractSelfTest.java |   2 +-
 ...idHadoopDefaultMapReducePlannerSelfTest.java | 227 +----
 .../GridCacheAbstractFieldsQuerySelfTest.java   |   7 +-
 .../cache/GridCacheQueryMetricsSelfTest.java    |   4 +-
 .../near/GridCachePartitionedQuerySelfTest.java |   4 +-
 .../GridCacheReplicatedFieldsQuerySelfTest.java |   2 +-
 .../tcp/GridOrderedMessageCancelSelfTest.java   |   6 +-
 .../resource/GridServiceInjectionSelfTest.java  |   4 +-
 .../visor/commands/ack/VisorAckCommand.scala    |   4 +-
 .../commands/alert/VisorAlertCommand.scala      |  11 +-
 .../commands/cache/VisorCacheClearCommand.scala |   4 +-
 .../commands/cache/VisorCacheCommand.scala      |   6 +-
 .../cache/VisorCacheCompactCommand.scala        |   4 +-
 .../commands/cache/VisorCacheScanCommand.scala  |   4 +-
 .../commands/cache/VisorCacheSwapCommand.scala  |   4 +-
 .../config/VisorConfigurationCommand.scala      |   4 +-
 .../commands/disco/VisorDiscoveryCommand.scala  |   6 +-
 .../commands/events/VisorEventsCommand.scala    |   4 +-
 .../visor/commands/gc/VisorGcCommand.scala      |   4 +-
 .../visor/commands/kill/VisorKillCommand.scala  |  12 +-
 .../visor/commands/node/VisorNodeCommand.scala  |   2 +-
 .../visor/commands/ping/VisorPingCommand.scala  |   4 +-
 .../commands/start/VisorStartCommand.scala      |   4 +-
 .../commands/tasks/VisorTasksCommand.scala      |  12 +-
 .../commands/top/VisorTopologyCommand.scala     |   4 +-
 .../visor/commands/vvm/VisorVvmCommand.scala    |   6 +-
 .../scala/org/apache/ignite/visor/visor.scala   |  32 +-
 pom.xml                                         |   2 +-
 readme.md                                       |   2 -
 278 files changed, 5109 insertions(+), 4121 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/493775aa/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
----------------------------------------------------------------------


[09/10] incubator-ignite git commit: # ignite-11 Fix issues found on review.

Posted by se...@apache.org.
# ignite-11 Fix issues found on 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/6130f7e5
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/6130f7e5
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/6130f7e5

Branch: refs/heads/sprint-2
Commit: 6130f7e52214ab0b0d0876d8be0c141e9dc1a2df
Parents: 2999d20
Author: sevdokimov <se...@gridgain.com>
Authored: Thu Feb 26 18:11:50 2015 +0300
Committer: sevdokimov <se...@gridgain.com>
Committed: Thu Feb 26 18:11:50 2015 +0300

----------------------------------------------------------------------
 .../spi/discovery/tcp/TcpDiscoverySpi.java      |  7 +---
 .../discovery/tcp/TcpDiscoverySpiAdapter.java   | 42 +++++++++++++-------
 2 files changed, 29 insertions(+), 20 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/6130f7e5/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 3fc52b1..df39d6b 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
@@ -1401,9 +1401,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
             boolean retry = false;
             Collection<Exception> errs = new ArrayList<>();
 
-            SocketMultiConnector multiConnector = new SocketMultiConnector(addrs, 2);
-
-            try {
+            try (SocketMultiConnector multiConnector = new SocketMultiConnector(addrs, 2)) {
                 GridTuple3<InetSocketAddress, Socket, Exception> tuple;
 
                 while ((tuple = multiConnector.next()) != null) {
@@ -1476,9 +1474,6 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
                     }
                 }
             }
-            finally {
-                multiConnector.close();
-            }
 
             if (retry) {
                 if (log.isDebugEnabled())

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/6130f7e5/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
index 80b793a..1d9559e 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
@@ -1013,7 +1013,7 @@ abstract class TcpDiscoverySpiAdapter extends IgniteSpiAdapter implements Discov
     /**
      *
      */
-    protected class SocketMultiConnector {
+    protected class SocketMultiConnector implements AutoCloseable {
         /** */
         private int connInProgress;
 
@@ -1068,11 +1068,15 @@ abstract class TcpDiscoverySpiAdapter extends IgniteSpiAdapter implements Discov
                 return null;
 
             try {
+                Future<GridTuple3<InetSocketAddress, Socket, Exception>> fut = completionSrvc.take();
+
                 connInProgress--;
 
-                return completionSrvc.take().get();
+                return fut.get();
             }
             catch (InterruptedException e) {
+                Thread.currentThread().interrupt();
+
                 throw new IgniteSpiException("Thread has been interrupted.", e);
             }
             catch (ExecutionException e) {
@@ -1080,33 +1084,43 @@ abstract class TcpDiscoverySpiAdapter extends IgniteSpiAdapter implements Discov
             }
         }
 
-        /**
-         *
-         */
-        public void close() {
-            executor.shutdown();
+        /** {@inheritDoc} */
+        @Override public void close() {
+            List<Runnable> unstartedTasks = executor.shutdownNow();
+
+            connInProgress -= unstartedTasks.size();
 
             if (connInProgress > 0) {
-                new Thread(new Runnable() {
+                Thread thread = new Thread(new Runnable() {
                     @Override public void run() {
                         try {
-                            for (int i = 0; i < connInProgress; i++) {
+                            executor.awaitTermination(5, TimeUnit.MINUTES);
+
+                            Future<GridTuple3<InetSocketAddress, Socket, Exception>> fut;
+
+                            while ((fut = completionSrvc.poll()) != null) {
                                 try {
-                                    GridTuple3<InetSocketAddress, Socket, Exception> take = completionSrvc.take().get();
+                                    GridTuple3<InetSocketAddress, Socket, Exception> tuple3 = fut.get();
 
-                                    if (take != null)
-                                        IgniteUtils.closeQuiet(take.get2());
+                                    if (tuple3 != null)
+                                        IgniteUtils.closeQuiet(tuple3.get2());
                                 }
-                                catch (ExecutionException ignored) {
+                                catch (ExecutionException ignore) {
 
                                 }
                             }
                         }
                         catch (InterruptedException e) {
+                            Thread.currentThread().interrupt();
+
                             throw new RuntimeException(e);
                         }
                     }
-                }).start();
+                });
+
+                thread.setDaemon(true);
+
+                thread.start();
             }
         }
     }


[03/10] incubator-ignite git commit: # IGNITE-11 Optimization obtaining localhosts.

Posted by se...@apache.org.
# IGNITE-11 Optimization obtaining localhosts.


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

Branch: refs/heads/sprint-2
Commit: e89a70cc911648b081b56c4c19e6f59d137b3a8e
Parents: e7171b0
Author: sevdokimov <se...@jetbrains.com>
Authored: Sun Feb 22 13:11:28 2015 +0300
Committer: sevdokimov <se...@jetbrains.com>
Committed: Sun Feb 22 13:11:28 2015 +0300

----------------------------------------------------------------------
 .../ignite/internal/util/IgniteUtils.java       | 87 +++++++++++++++++---
 1 file changed, 76 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e89a70cc/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
index 5db0da4..4cf5718 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
@@ -300,6 +300,8 @@ public abstract class IgniteUtils {
     private static final Map<Class<? extends IgniteCheckedException>, C1<IgniteCheckedException, IgniteException>>
         exceptionConverters;
 
+    private volatile static IgniteBiTuple<Collection<String>, Collection<String>> cachedLocalAddr;
+
     /**
      * Initializes enterprise check.
      */
@@ -1489,6 +1491,55 @@ public abstract class IgniteUtils {
         return locHost0 != null && !resetLocalHost().equals(locHost0);
     }
 
+    public static List<InetAddress> filterReachable(List<InetAddress> addrs) {
+        final int reachTimeout = 2000;
+
+        if (addrs.isEmpty())
+            return Collections.emptyList();
+
+        if (addrs.size() == 1) {
+            if (reachable(addrs.get(1), reachTimeout))
+                return Collections.singletonList(addrs.get(1));
+
+            return Collections.emptyList();
+        }
+
+        final List<InetAddress> res = new ArrayList<>(addrs.size());
+
+        Collection<Future<?>> futs = new ArrayList<>(addrs.size());
+
+        ExecutorService executor = Executors.newFixedThreadPool(Math.min(10, addrs.size()));
+
+        for (final InetAddress addr : addrs) {
+            futs.add(executor.submit(new Runnable() {
+                @Override
+                public void run() {
+                    if (reachable(addr, reachTimeout)) {
+                        synchronized (res) {
+                            res.add(addr);
+                        }
+                    }
+                }
+            }));
+        }
+
+        for (Future<?> fut : futs) {
+            try {
+                fut.get();
+            } catch (InterruptedException e) {
+                Thread.currentThread().interrupt();
+
+                throw new IgniteException("Thread has been interrupted.", e);
+            } catch (ExecutionException e) {
+                throw new IgniteException(e);
+            }
+        }
+
+        executor.shutdown();
+
+        return res;
+    }
+
     /**
      * Returns host names consistent with {@link #resolveLocalHost(String)}. So when it returns
      * a common address this method returns single host name, and when a wildcard address passed
@@ -1501,28 +1552,42 @@ public abstract class IgniteUtils {
      */
     public static IgniteBiTuple<Collection<String>, Collection<String>> resolveLocalAddresses(InetAddress locAddr)
         throws IOException, IgniteCheckedException {
+
         assert locAddr != null;
 
         Collection<String> addrs = new ArrayList<>();
         Collection<String> hostNames = new ArrayList<>();
 
         if (locAddr.isAnyLocalAddress()) {
-            // It should not take longer than 2 seconds to reach
-            // local address on any network.
-            int reachTimeout = 2000;
+            IgniteBiTuple<Collection<String>, Collection<String>> res = cachedLocalAddr;
 
-            for (NetworkInterface itf : asIterable(NetworkInterface.getNetworkInterfaces())) {
-                for (InetAddress addr : asIterable(itf.getInetAddresses())) {
-                    if (!addr.isLinkLocalAddress() && reachable(itf, addr, reachTimeout))
-                        addresses(addr, addrs, hostNames);
+            if (res == null) {
+                List<InetAddress> localAddrs = new ArrayList<>();
+
+                for (NetworkInterface itf : asIterable(NetworkInterface.getNetworkInterfaces())) {
+                    for (InetAddress addr : asIterable(itf.getInetAddresses())) {
+                        if (!addr.isLinkLocalAddress())
+                            localAddrs.add(addr);
+                    }
                 }
+
+                localAddrs = filterReachable(localAddrs);
+
+                for (InetAddress addr : localAddrs)
+                    addresses(addr, addrs, hostNames);
+
+                if (F.isEmpty(addrs))
+                    throw new IgniteCheckedException("No network addresses found (is networking enabled?).");
+
+                res = F.t(addrs, hostNames);
+
+                cachedLocalAddr = res;
             }
 
-            if (F.isEmpty(addrs))
-                throw new IgniteCheckedException("No network addresses found (is networking enabled?).");
+            return res;
         }
-        else
-            addresses(locAddr, addrs, hostNames);
+
+        addresses(locAddr, addrs, hostNames);
 
         return F.t(addrs, hostNames);
     }