# IGNITE-639 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/43fa7148
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/43fa7148
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/43fa7148

Branch: refs/heads/ignite-437-sqltests-p2
Commit: 43fa7148b37bbd3cdd0c4b406075d98491072b8a
Parents: 349c200
Author: AKuznetsov <akuznet...@gridgain.com>
Authored: Tue Apr 7 10:26:43 2015 +0700
Committer: AKuznetsov <akuznet...@gridgain.com>
Committed: Tue Apr 7 10:26:43 2015 +0700

----------------------------------------------------------------------
 .../ignite/internal/visor/cache/VisorCache.java |  6 +--
 .../cache/VisorCacheAggregatedMetrics.java      | 35 +++++++------
 .../internal/visor/cache/VisorCacheMetrics.java | 53 ++++++++++++++++++--
 .../cache/VisorCacheMetricsCollectorTask.java   | 33 +++++-------
 .../commands/cache/VisorCacheCommand.scala      | 29 ++++++-----
 5 files changed, 99 insertions(+), 57 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/43fa7148/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCache.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCache.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCache.java
index 98f602f..d57d19a 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCache.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCache.java
@@ -97,9 +97,9 @@ public class VisorCache implements Serializable {
      * @param cacheName Cache name.
      * @param sample Sample size.
      * @return Data transfer object for given cache.
-     * @throws IgniteCheckedException
+     * @throws IgniteCheckedException If failed collect metrics.
      */
-    public static VisorCache from(Ignite ignite, String cacheName, int sample) 
throws IgniteCheckedException {
+    public static VisorCache from(IgniteEx ignite, String cacheName, int 
sample) throws IgniteCheckedException {
         assert ignite != null;
 
         GridCacheAdapter ca = ((IgniteKernal)ignite).internalCache(cacheName);
@@ -226,7 +226,7 @@ public class VisorCache implements Serializable {
         cache.partitions = ca.affinity().partitions();
         cache.primaryPartitions = pps;
         cache.backupPartitions = bps;
-        cache.metrics = VisorCacheMetrics.from(ca);
+        cache.metrics = VisorCacheMetrics.from(ignite, ca);
         cache.partitionsMap = partsMap;
 
         return cache;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/43fa7148/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheAggregatedMetrics.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheAggregatedMetrics.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheAggregatedMetrics.java
index c8d3a8d..af68e9f 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheAggregatedMetrics.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheAggregatedMetrics.java
@@ -31,13 +31,13 @@ public class VisorCacheAggregatedMetrics implements 
Serializable {
     private static final long serialVersionUID = 0L;
 
     /** Cache name. */
-    private final String cacheName;
+    private String name;
 
     /** Cache mode. */
-    private final CacheMode cacheMode;
+    private CacheMode mode;
 
     /** Cache system state. */
-    private final Boolean system;
+    private boolean sys;
 
     /** Node IDs with cache metrics. */
     private final Map<UUID, VisorCacheMetrics> metrics = new HashMap<>();
@@ -106,31 +106,36 @@ public class VisorCacheAggregatedMetrics implements 
Serializable {
     private transient Integer failsQry;
 
     /**
-     * Create data transfer object with given parameters.
+     * Create data transfer object for aggregated cache metrics.
      *
-     * @param cacheName Cache name.
+     * @param cm Source cache metrics.
+     * @return Data transfer object for aggregated cache metrics.
      */
-    public VisorCacheAggregatedMetrics(String cacheName, CacheMode cacheMode, 
Boolean system) {
-        this.cacheName = cacheName;
-        this.cacheMode = cacheMode;
-        this.system = system;
+    public static VisorCacheAggregatedMetrics from(VisorCacheMetrics cm) {
+        VisorCacheAggregatedMetrics acm = new VisorCacheAggregatedMetrics();
+
+        acm.name = cm.name();
+        acm.mode = cm.mode();
+        acm.sys = cm.system();
+
+        return acm;
     }
 
     /**
      * @return Cache name.
      */
-    public String cacheName() {
-        return cacheName;
+    public String name() {
+        return name;
     }
 
     /** @return Cache mode. */
-    public CacheMode cacheMode() {
-        return cacheMode;
+    public CacheMode mode() {
+        return mode;
     }
 
     /** @return Cache system state. */
-    public Boolean system() {
-        return system;
+    public boolean system() {
+        return sys;
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/43fa7148/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheMetrics.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheMetrics.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheMetrics.java
index 77db2f4..fc30392 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheMetrics.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheMetrics.java
@@ -18,13 +18,14 @@
 package org.apache.ignite.internal.visor.cache;
 
 import org.apache.ignite.cache.*;
+import org.apache.ignite.internal.*;
 import org.apache.ignite.internal.processors.cache.*;
 import org.apache.ignite.internal.util.typedef.internal.*;
 
 import java.io.*;
 
 /**
- * Data transfer object for {@link org.apache.ignite.cache.CacheMetrics}.
+ * Data transfer object for {@link CacheMetrics}.
  */
 public class VisorCacheMetrics implements Serializable {
     /** */
@@ -33,6 +34,15 @@ public class VisorCacheMetrics implements Serializable {
     /** */
     private static final long serialVersionUID = 0L;
 
+    /** Cache name. */
+    private String name;
+
+    /** Cache mode. */
+    private CacheMode mode;
+
+    /** Cache system state. */
+    private boolean sys;
+
     /** Number of non-{@code null} values in the cache. */
     private int size;
 
@@ -147,7 +157,14 @@ public class VisorCacheMetrics implements Serializable {
     /** Number of cached rolled back DHT transaction IDs. */
     private int txDhtRolledbackVersionsSize;
 
-    /** Calculate rate of metric per second. */
+    /**
+     * Calculate rate of metric per second.
+     *
+     * @param metric Metric value.
+     * @param time Metric finish time.
+     * @param createTime Metric start time.
+     * @return Metric per second.
+     */
     private static int perSecond(int metric, long time, long createTime) {
         long seconds = (time - createTime) / 1000;
 
@@ -155,14 +172,21 @@ public class VisorCacheMetrics implements Serializable {
     }
 
     /**
+     * @param ignite Ignite.
      * @param c Cache.
      * @return Data transfer object for given cache metrics.
      */
-    public static VisorCacheMetrics from(GridCache c) {
+    public static VisorCacheMetrics from(IgniteEx ignite, GridCache c) {
         VisorCacheMetrics cm = new VisorCacheMetrics();
 
         CacheMetrics m = c.metrics();
 
+        GridCacheProcessor cacheProcessor = ignite.context().cache();
+
+        cm.name = c.name();
+        cm.mode = cacheProcessor.cacheMode(c.name());
+        cm.sys = cacheProcessor.systemCache(c.name());
+
         cm.size = m.getSize();
         cm.keySize = m.getKeySize();
 
@@ -214,6 +238,27 @@ public class VisorCacheMetrics implements Serializable {
     }
 
     /**
+     * @return Cache name.
+     */
+    public String name() {
+        return name;
+    }
+
+    /**
+     *  @return Cache mode.
+     */
+    public CacheMode mode() {
+        return mode;
+    }
+
+    /**
+     * @return Cache system state.
+     */
+    public boolean system() {
+        return sys;
+    }
+
+    /**
      * @return Total number of reads of the owning entity (either cache or 
entry).
      */
     public long reads() {
@@ -396,7 +441,7 @@ public class VisorCacheMetrics implements Serializable {
     }
 
     /**
-     * Committed transaction queue size.
+     * @return Committed transaction queue size.
      */
     public int txCommitQueueSize() {
         return txCommitQueueSize;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/43fa7148/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheMetricsCollectorTask.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheMetricsCollectorTask.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheMetricsCollectorTask.java
index 99b29c0..b4b850b 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheMetricsCollectorTask.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheMetricsCollectorTask.java
@@ -32,7 +32,7 @@ import java.util.*;
  */
 @GridInternal
 public class VisorCacheMetricsCollectorTask extends 
VisorMultiNodeTask<IgniteBiTuple<Boolean, Collection<String>>,
-    Iterable<VisorCacheAggregatedMetrics>, Map<String, IgniteBiTuple<Boolean, 
VisorCacheMetrics>>> {
+    Iterable<VisorCacheAggregatedMetrics>, Collection<VisorCacheMetrics>> {
     /** */
     private static final long serialVersionUID = 0L;
 
@@ -47,23 +47,18 @@ public class VisorCacheMetricsCollectorTask extends 
VisorMultiNodeTask<IgniteBiT
 
         for (ComputeJobResult res : results) {
             if (res.getException() == null && res.getData() instanceof Map<?, 
?>) {
-                Map<String, IgniteBiTuple<Boolean, VisorCacheMetrics>> cms = 
res.getData();
+                Collection<VisorCacheMetrics> cms = res.getData();
 
-                for (Map.Entry<String, IgniteBiTuple<Boolean, 
VisorCacheMetrics>> entry : cms.entrySet()) {
-                    VisorCacheAggregatedMetrics am = 
grpAggrMetrics.get(entry.getKey());
+                for (VisorCacheMetrics cm : cms) {
+                    VisorCacheAggregatedMetrics am = 
grpAggrMetrics.get(cm.name());
 
                     if (am == null) {
-                        String cacheName = entry.getKey();
+                        am = VisorCacheAggregatedMetrics.from(cm);
 
-                        GridCacheProcessor proc = ignite.context().cache();
-
-                        am = new VisorCacheAggregatedMetrics(cacheName, 
proc.cacheMode(cacheName),
-                            entry.getValue().get1());
-
-                        grpAggrMetrics.put(entry.getKey(), am);
+                        grpAggrMetrics.put(cm.name(), am);
                     }
 
-                    am.metrics().put(res.getNode().id(), 
entry.getValue().get2());
+                    am.metrics().put(res.getNode().id(), cm);
                 }
             }
         }
@@ -76,7 +71,7 @@ public class VisorCacheMetricsCollectorTask extends 
VisorMultiNodeTask<IgniteBiT
      * Job that collect cache metrics from node.
      */
     private static class VisorCacheMetricsCollectorJob
-        extends VisorJob<IgniteBiTuple<Boolean, Collection<String>>, 
Map<String, IgniteBiTuple<Boolean, VisorCacheMetrics>>> {
+        extends VisorJob<IgniteBiTuple<Boolean, Collection<String>>, 
Collection<VisorCacheMetrics>> {
         /** */
         private static final long serialVersionUID = 0L;
 
@@ -91,8 +86,7 @@ public class VisorCacheMetricsCollectorTask extends 
VisorMultiNodeTask<IgniteBiT
         }
 
         /** {@inheritDoc} */
-        @Override protected Map<String, IgniteBiTuple<Boolean, 
VisorCacheMetrics>> run(
-            final IgniteBiTuple<Boolean, Collection<String>> arg) {
+        @Override protected Collection<VisorCacheMetrics> run(final 
IgniteBiTuple<Boolean, Collection<String>> arg) {
             assert arg != null;
 
             Boolean showSysCaches = arg.get1();
@@ -107,17 +101,16 @@ public class VisorCacheMetricsCollectorTask extends 
VisorMultiNodeTask<IgniteBiT
 
             Collection<GridCacheAdapter<?, ?>> caches = 
cacheProcessor.internalCaches();
 
-            Map<String, IgniteBiTuple<Boolean, VisorCacheMetrics>> res = 
U.newHashMap(caches.size());
+            Collection<VisorCacheMetrics> res = new ArrayList<>(caches.size());
 
             boolean allCaches = cacheNames.isEmpty();
 
             for (GridCacheAdapter ca : caches) {
                 if (ca.context().started()) {
-                    String name = ca.name();
+                    VisorCacheMetrics cm = VisorCacheMetrics.from(ignite, ca);
 
-                    if ((showSysCaches && cacheProcessor.systemCache(name)) || 
allCaches || cacheNames.contains(name))
-                        res.put(name, new IgniteBiTuple<Boolean, 
VisorCacheMetrics>(
-                            ignite.context().cache().systemCache(name), 
VisorCacheMetrics.from(ca)));
+                    if ((showSysCaches && cm.system()) || allCaches || 
cacheNames.contains(ca.name()))
+                        res.add(cm);
                 }
             }
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/43fa7148/modules/visor-console/src/main/scala/org/apache/ignite/visor/commands/cache/VisorCacheCommand.scala
----------------------------------------------------------------------
diff --git 
a/modules/visor-console/src/main/scala/org/apache/ignite/visor/commands/cache/VisorCacheCommand.scala
 
b/modules/visor-console/src/main/scala/org/apache/ignite/visor/commands/cache/VisorCacheCommand.scala
index 33a2a16..4d35b35 100644
--- 
a/modules/visor-console/src/main/scala/org/apache/ignite/visor/commands/cache/VisorCacheCommand.scala
+++ 
b/modules/visor-console/src/main/scala/org/apache/ignite/visor/commands/cache/VisorCacheCommand.scala
@@ -19,7 +19,6 @@ package org.apache.ignite.visor.commands.cache
 
 import org.apache.ignite._
 import org.apache.ignite.cluster.ClusterNode
-import org.apache.ignite.internal.processors.cache.{GridCacheUtils => CU}
 import org.apache.ignite.internal.util.typedef._
 import org.apache.ignite.lang.IgniteBiTuple
 import org.apache.ignite.visor.VisorTag
@@ -277,7 +276,7 @@ class VisorCacheCommand {
                     if (hasArgFlag("scan", argLst))
                         VisorCacheScanCommand().scan(argLst, node)
                     else {
-                        if (!aggrData.exists(cache => cache.cacheName() == 
name && cache.system())) {
+                        if (!aggrData.exists(cache => safeEquals(cache.name(), 
name) && cache.system())) {
                             if (hasArgFlag("clear", argLst))
                                 VisorCacheClearCommand().clear(argLst, node)
                             else if (hasArgFlag("swap", argLst))
@@ -319,11 +318,11 @@ class VisorCacheCommand {
             sortAggregatedData(aggrData, sortType.getOrElse("cn"), 
reversed).foreach(
                 ad => {
                     // Add cache host as visor variable.
-                    registerCacheName(ad.cacheName)
+                    registerCacheName(ad.name())
 
                     sumT += (
-                        mkCacheName(ad.cacheName),
-                        ad.cacheMode(),
+                        mkCacheName(ad.name()),
+                        ad.mode(),
                         ad.nodes,
                         (
                             "min: " + ad.minimumSize,
@@ -358,11 +357,11 @@ class VisorCacheCommand {
 
             if (all) {
                 val sorted = aggrData.sortWith((k1, k2) => {
-                    if (k1.cacheName == null)
+                    if (k1.name() == null)
                         true
-                    else if (k2.cacheName == null)
+                    else if (k2.name() == null)
                         false
-                    else k1.cacheName.compareTo(k2.cacheName) < 0
+                    else k1.name().compareTo(k2.name()) < 0
                 })
 
                 val gCfg = node.map(config).collect {
@@ -370,7 +369,7 @@ class VisorCacheCommand {
                 }
 
                 sorted.foreach(ad => {
-                    val cacheNameVar = mkCacheName(ad.cacheName)
+                    val cacheNameVar = mkCacheName(ad.name())
 
                     println("\nCache '" + cacheNameVar + "':")
 
@@ -428,7 +427,7 @@ class VisorCacheCommand {
                     println("  Total number of executions: " + ad.execsQuery)
                     println("  Total number of failures:   " + ad.failsQuery)
 
-                    gCfg.foreach(_.caches().find(_.name() == 
ad.cacheName()).foreach(cfg => {
+                    gCfg.foreach(_.caches().find(_.name() == 
ad.name()).foreach(cfg => {
                         nl()
 
                         showCacheConfiguration("Cache configuration:", cfg)
@@ -580,7 +579,7 @@ class VisorCacheCommand {
             case "rd" => data.toList.sortBy(_.averageReads)
             case "wr" => data.toList.sortBy(_.averageWrites)
             case "cn" => data.toList.sortWith((x, y) =>
-                x.cacheName == null || (y.cacheName != null && 
x.cacheName.toLowerCase < y.cacheName.toLowerCase))
+                x.name() == null || (y.name() != null && x.name().toLowerCase 
< y.name().toLowerCase))
 
             case _ =>
                 assert(false, "Unknown sorting type: " + arg)
@@ -619,12 +618,12 @@ class VisorCacheCommand {
             val ad = sortedAggrData(i)
 
             // Add cache host as visor variable.
-            registerCacheName(ad.cacheName)
+            registerCacheName(ad.name())
 
             sumT += (
                 i,
-                mkCacheName(ad.cacheName),
-                ad.cacheMode(),
+                mkCacheName(ad.name()),
+                ad.mode(),
                 ad.nodes,
                 (
                     "min: " + ad.minimumSize,
@@ -641,7 +640,7 @@ class VisorCacheCommand {
             None
         else {
             try
-                Some(sortedAggrData(a.toInt).cacheName)
+                Some(sortedAggrData(a.toInt).name())
             catch {
                 case e: Throwable =>
                     warn("Invalid selection: " + a)

Reply via email to