Return-Path: X-Original-To: apmail-ignite-commits-archive@minotaur.apache.org Delivered-To: apmail-ignite-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 80A1917464 for ; Thu, 9 Apr 2015 11:36:06 +0000 (UTC) Received: (qmail 42774 invoked by uid 500); 9 Apr 2015 11:36:01 -0000 Delivered-To: apmail-ignite-commits-archive@ignite.apache.org Received: (qmail 42699 invoked by uid 500); 9 Apr 2015 11:36:01 -0000 Mailing-List: contact commits-help@ignite.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@ignite.incubator.apache.org Delivered-To: mailing list commits@ignite.incubator.apache.org Received: (qmail 42650 invoked by uid 99); 9 Apr 2015 11:36:00 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 09 Apr 2015 11:36:00 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED,T_RP_MATCHES_RCVD X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO mail.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with SMTP; Thu, 09 Apr 2015 11:35:56 +0000 Received: (qmail 36016 invoked by uid 99); 9 Apr 2015 11:35:35 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 09 Apr 2015 11:35:35 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 6EF0CDFF90; Thu, 9 Apr 2015 11:35:35 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: akuznetsov@apache.org To: commits@ignite.incubator.apache.org Date: Thu, 09 Apr 2015 11:35:42 -0000 Message-Id: <53804c95607149eaa014b54a6143e19b@git.apache.org> In-Reply-To: <4555c18fe0764c85bb241c5238bc8fed@git.apache.org> References: <4555c18fe0764c85bb241c5238bc8fed@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [08/50] [abbrv] incubator-ignite git commit: # IGNITE-639 Review. X-Virus-Checked: Checked by ClamAV on apache.org # 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-692 Commit: 43fa7148b37bbd3cdd0c4b406075d98491072b8a Parents: 349c200 Author: AKuznetsov Authored: Tue Apr 7 10:26:43 2015 +0700 Committer: AKuznetsov 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 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>, - Iterable, Map>> { + Iterable, Collection> { /** */ private static final long serialVersionUID = 0L; @@ -47,23 +47,18 @@ public class VisorCacheMetricsCollectorTask extends VisorMultiNodeTask) { - Map> cms = res.getData(); + Collection cms = res.getData(); - for (Map.Entry> 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>, Map>> { + extends VisorJob>, Collection> { /** */ private static final long serialVersionUID = 0L; @@ -91,8 +86,7 @@ public class VisorCacheMetricsCollectorTask extends VisorMultiNodeTask> run( - final IgniteBiTuple> arg) { + @Override protected Collection run(final IgniteBiTuple> arg) { assert arg != null; Boolean showSysCaches = arg.get1(); @@ -107,17 +101,16 @@ public class VisorCacheMetricsCollectorTask extends VisorMultiNodeTask> caches = cacheProcessor.internalCaches(); - Map> res = U.newHashMap(caches.size()); + Collection 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( - 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)