Repository: incubator-ignite
Updated Branches:
  refs/heads/master 7b13de917 -> 5cc74d3eb


# Ignite


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

Branch: refs/heads/master
Commit: 5cc74d3ebde951d6d624a7b66f37d5545fe13624
Parents: 7b13de9
Author: sboikov <sboi...@gridgain.com>
Authored: Thu Dec 11 15:03:50 2014 +0400
Committer: sboikov <sboi...@gridgain.com>
Committed: Thu Dec 11 15:03:50 2014 +0400

----------------------------------------------------------------------
 .../ignite/portables/PortableRawReader.java     | 13 +++
 .../ignite/portables/PortableRawWriter.java     | 13 +++
 .../apache/ignite/portables/PortableReader.java | 15 ++++
 .../apache/ignite/portables/PortableWriter.java | 15 ++++
 .../grid/kernal/visor/VisorMultiNodeTask.java   |  3 +-
 .../visor/query/VisorQueryCleanupTask.java      | 94 ++++++++++++++++++++
 .../grid/kernal/visor/util/VisorTaskUtils.java  | 31 +++++++
 7 files changed, 183 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5cc74d3e/modules/core/src/main/java/org/apache/ignite/portables/PortableRawReader.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/portables/PortableRawReader.java 
b/modules/core/src/main/java/org/apache/ignite/portables/PortableRawReader.java
index a4fe957..393b023 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/portables/PortableRawReader.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/portables/PortableRawReader.java
@@ -11,6 +11,7 @@ package org.apache.ignite.portables;
 
 import org.jetbrains.annotations.*;
 
+import java.math.*;
 import java.sql.*;
 import java.util.*;
 import java.util.Date;
@@ -70,6 +71,12 @@ public interface PortableRawReader {
     public boolean readBoolean() throws PortableException;
 
     /**
+     * @return Decimal value.
+     * @throws PortableException In case of error.
+     */
+    @Nullable public BigDecimal readDecimal() throws PortableException;
+
+    /**
      * @return String value.
      * @throws PortableException In case of error.
      */
@@ -148,6 +155,12 @@ public interface PortableRawReader {
     @Nullable public boolean[] readBooleanArray() throws PortableException;
 
     /**
+     * @return Decimal array.
+     * @throws PortableException In case of error.
+     */
+    @Nullable public BigDecimal[] readDecimalArray() throws PortableException;
+
+    /**
      * @return String array.
      * @throws PortableException In case of error.
      */

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5cc74d3e/modules/core/src/main/java/org/apache/ignite/portables/PortableRawWriter.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/portables/PortableRawWriter.java 
b/modules/core/src/main/java/org/apache/ignite/portables/PortableRawWriter.java
index f3c884b..30c24c3 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/portables/PortableRawWriter.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/portables/PortableRawWriter.java
@@ -11,6 +11,7 @@ package org.apache.ignite.portables;
 
 import org.jetbrains.annotations.*;
 
+import java.math.*;
 import java.sql.*;
 import java.util.*;
 import java.util.Date;
@@ -73,6 +74,12 @@ public interface PortableRawWriter {
      * @param val Value to write.
      * @throws PortableException In case of error.
      */
+    public void writeDecimal(@Nullable BigDecimal val) throws 
PortableException;
+
+    /**
+     * @param val Value to write.
+     * @throws PortableException In case of error.
+     */
     public void writeString(@Nullable String val) throws PortableException;
 
     /**
@@ -151,6 +158,12 @@ public interface PortableRawWriter {
      * @param val Value to write.
      * @throws PortableException In case of error.
      */
+    public void writeDecimalArray(@Nullable BigDecimal[] val) throws 
PortableException;
+
+    /**
+     * @param val Value to write.
+     * @throws PortableException In case of error.
+     */
     public void writeStringArray(@Nullable String[] val) throws 
PortableException;
 
     /**

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5cc74d3e/modules/core/src/main/java/org/apache/ignite/portables/PortableReader.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/portables/PortableReader.java 
b/modules/core/src/main/java/org/apache/ignite/portables/PortableReader.java
index 5cef5a3..59f63db 100644
--- a/modules/core/src/main/java/org/apache/ignite/portables/PortableReader.java
+++ b/modules/core/src/main/java/org/apache/ignite/portables/PortableReader.java
@@ -11,6 +11,7 @@ package org.apache.ignite.portables;
 
 import org.jetbrains.annotations.*;
 
+import java.math.*;
 import java.sql.*;
 import java.util.*;
 import java.util.Date;
@@ -86,6 +87,13 @@ public interface PortableReader {
 
     /**
      * @param fieldName Field name.
+     * @return Decimal value.
+     * @throws PortableException In case of error.
+     */
+    @Nullable public BigDecimal readDecimal(String fieldName) throws 
PortableException;
+
+    /**
+     * @param fieldName Field name.
      * @return String value.
      * @throws PortableException In case of error.
      */
@@ -177,6 +185,13 @@ public interface PortableReader {
 
     /**
      * @param fieldName Field name.
+     * @return Decimal array.
+     * @throws PortableException In case of error.
+     */
+    @Nullable public BigDecimal[] readDecimalArray(String fieldName) throws 
PortableException;
+
+    /**
+     * @param fieldName Field name.
      * @return String array.
      * @throws PortableException In case of error.
      */

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5cc74d3e/modules/core/src/main/java/org/apache/ignite/portables/PortableWriter.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/portables/PortableWriter.java 
b/modules/core/src/main/java/org/apache/ignite/portables/PortableWriter.java
index d29ef3d..75f7401 100644
--- a/modules/core/src/main/java/org/apache/ignite/portables/PortableWriter.java
+++ b/modules/core/src/main/java/org/apache/ignite/portables/PortableWriter.java
@@ -11,6 +11,7 @@ package org.apache.ignite.portables;
 
 import org.jetbrains.annotations.*;
 
+import java.math.*;
 import java.sql.*;
 import java.util.*;
 import java.util.Date;
@@ -89,6 +90,13 @@ public interface PortableWriter {
      * @param val Value to write.
      * @throws PortableException In case of error.
      */
+    public void writeDecimal(String fieldName, @Nullable BigDecimal val) 
throws PortableException;
+
+    /**
+     * @param fieldName Field name.
+     * @param val Value to write.
+     * @throws PortableException In case of error.
+     */
     public void writeString(String fieldName, @Nullable String val) throws 
PortableException;
 
     /**
@@ -180,6 +188,13 @@ public interface PortableWriter {
      * @param val Value to write.
      * @throws PortableException In case of error.
      */
+    public void writeDecimalArray(String fieldName, @Nullable BigDecimal[] 
val) throws PortableException;
+
+    /**
+     * @param fieldName Field name.
+     * @param val Value to write.
+     * @throws PortableException In case of error.
+     */
     public void writeStringArray(String fieldName, @Nullable String[] val) 
throws PortableException;
 
     /**

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5cc74d3e/modules/core/src/main/java/org/gridgain/grid/kernal/visor/VisorMultiNodeTask.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/gridgain/grid/kernal/visor/VisorMultiNodeTask.java
 
b/modules/core/src/main/java/org/gridgain/grid/kernal/visor/VisorMultiNodeTask.java
index de6d88b..fe6289d 100644
--- 
a/modules/core/src/main/java/org/gridgain/grid/kernal/visor/VisorMultiNodeTask.java
+++ 
b/modules/core/src/main/java/org/gridgain/grid/kernal/visor/VisorMultiNodeTask.java
@@ -85,7 +85,8 @@ public abstract class VisorMultiNodeTask<A, R, J> implements 
ComputeTask<VisorTa
             return map;
         }
         finally {
-            logMapped(g.log(), getClass(), map.values());
+            if (debug)
+                logMapped(g.log(), getClass(), map.values());
         }
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5cc74d3e/modules/core/src/main/java/org/gridgain/grid/kernal/visor/query/VisorQueryCleanupTask.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/gridgain/grid/kernal/visor/query/VisorQueryCleanupTask.java
 
b/modules/core/src/main/java/org/gridgain/grid/kernal/visor/query/VisorQueryCleanupTask.java
new file mode 100644
index 0000000..fe298a6
--- /dev/null
+++ 
b/modules/core/src/main/java/org/gridgain/grid/kernal/visor/query/VisorQueryCleanupTask.java
@@ -0,0 +1,94 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.gridgain.grid.kernal.visor.query;
+
+import org.apache.ignite.cluster.*;
+import org.apache.ignite.compute.*;
+import org.gridgain.grid.*;
+import org.gridgain.grid.kernal.processors.task.*;
+import org.gridgain.grid.kernal.visor.*;
+import org.gridgain.grid.util.typedef.internal.*;
+import org.jetbrains.annotations.*;
+
+import java.util.*;
+
+import static org.gridgain.grid.kernal.visor.util.VisorTaskUtils.*;
+
+/**
+ * Task for cleanup not needed SCAN or SQL queries result futures from node 
local.
+ */
+@GridInternal
+public class VisorQueryCleanupTask extends VisorMultiNodeTask<Map<UUID, 
Collection<String>>, Void, Void> {
+    /** */
+    private static final long serialVersionUID = 0L;
+
+    /** {@inheritDoc} */
+    @Override protected VisorJob<Map<UUID, Collection<String>>, Void> 
job(Map<UUID, Collection<String>> arg) {
+        return null;
+    }
+
+    /** {@inheritDoc} */
+    @Override protected Map<? extends ComputeJob, ClusterNode> 
map0(List<ClusterNode> subgrid,
+        @Nullable VisorTaskArgument<Map<UUID, Collection<String>>> arg) throws 
GridException {
+        Set<UUID> nodeIds = taskArg.keySet();
+
+        Map<ComputeJob, ClusterNode> map = U.newHashMap(nodeIds.size());
+
+        try {
+            for (ClusterNode node : subgrid)
+                if (nodeIds.contains(node.id()))
+                    map.put(new VisorQueryCleanupJob(taskArg.get(node.id()), 
debug), node);
+
+            return map;
+        }
+        finally {
+            if (debug)
+                logMapped(g.log(), getClass(), map.values());
+        }
+    }
+
+    /** {@inheritDoc} */
+    @Nullable @Override protected Void reduce0(List list) throws GridException 
{
+        return null;
+    }
+
+    /**
+     * Job for cleanup not needed SCAN or SQL queries result futures from node 
local.
+     */
+    private static class VisorQueryCleanupJob extends 
VisorJob<Collection<String>, Void> {
+        /** */
+        private static final long serialVersionUID = 0L;
+
+        /**
+         * Create job with specified argument.
+         *
+         * @param arg Job argument.
+         * @param debug Debug flag.
+         */
+        protected VisorQueryCleanupJob(Collection<String> arg, boolean debug) {
+            super(arg, debug);
+        }
+
+        /** {@inheritDoc} */
+        @Override protected Void run(Collection<String> qryIds) throws 
GridException {
+            ClusterNodeLocalMap<String, 
VisorQueryTask.VisorFutureResultSetHolder> locMap = g.nodeLocalMap();
+
+            for (String qryId : qryIds)
+                locMap.remove(qryId);
+
+            return null;
+        }
+
+        /** {@inheritDoc} */
+        @Override public String toString() {
+            return S.toString(VisorQueryCleanupJob.class, this);
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5cc74d3e/modules/core/src/main/java/org/gridgain/grid/kernal/visor/util/VisorTaskUtils.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/gridgain/grid/kernal/visor/util/VisorTaskUtils.java
 
b/modules/core/src/main/java/org/gridgain/grid/kernal/visor/util/VisorTaskUtils.java
index b9fa6f7..16f9453 100644
--- 
a/modules/core/src/main/java/org/gridgain/grid/kernal/visor/util/VisorTaskUtils.java
+++ 
b/modules/core/src/main/java/org/gridgain/grid/kernal/visor/util/VisorTaskUtils.java
@@ -747,4 +747,35 @@ public class VisorTaskUtils {
 
         return end;
     }
+
+
+    /**
+     * Checks if address can be reached using one argument 
InetAddress.isReachable() version or ping command if failed.
+     *
+     * @param addr Address to check.
+     * @param reachTimeout Timeout for the check.
+     * @return {@code True} if address is reachable.
+     */
+    public static boolean reachableByPing(InetAddress addr, int reachTimeout) {
+        try {
+            if (addr.isReachable(reachTimeout))
+                return true;
+
+            String cmd = String.format("ping -%s 1 %s", U.isWindows() ? "n" : 
"c", addr.getHostAddress());
+
+            Process myProcess = Runtime.getRuntime().exec(cmd);
+
+            myProcess.waitFor();
+
+            return myProcess.exitValue() == 0;
+        }
+        catch (IOException ignore) {
+            return false;
+        }
+        catch (InterruptedException ignored) {
+            Thread.currentThread().interrupt();
+
+            return false;
+        }
+    }
 }

Reply via email to