You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2017/04/17 08:21:36 UTC
[14/50] [abbrv] ignite git commit: IGNITE-4988 Cleanup and refactor
VisorXxx tasks and DTO for ignite-2.0
http://git-wip-us.apache.org/repos/asf/ignite/blob/12dfe9e8/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 79f54d6..11b1fde 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
@@ -17,25 +17,29 @@
package org.apache.ignite.internal.visor.cache;
-import java.io.Serializable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
import org.apache.ignite.IgniteCache;
import org.apache.ignite.cache.CacheMetrics;
import org.apache.ignite.cache.CacheMode;
import org.apache.ignite.internal.IgniteEx;
-import org.apache.ignite.internal.LessNamingBean;
import org.apache.ignite.internal.processors.cache.GridCacheAdapter;
import org.apache.ignite.internal.processors.cache.GridCacheProcessor;
import org.apache.ignite.internal.util.typedef.internal.S;
+import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.internal.visor.VisorDataTransferObject;
+import org.apache.ignite.internal.visor.query.VisorQueryMetrics;
/**
* Data transfer object for {@link CacheMetrics}.
*/
-public class VisorCacheMetrics implements Serializable, LessNamingBean {
+public class VisorCacheMetrics extends VisorDataTransferObject {
/** */
- private static final float MICROSECONDS_IN_SECOND = 1_000_000;
+ private static final long serialVersionUID = 0L;
/** */
- private static final long serialVersionUID = 0L;
+ private static final float MICROSECONDS_IN_SECOND = 1_000_000;
/** Cache name. */
private String name;
@@ -110,7 +114,7 @@ public class VisorCacheMetrics implements Serializable, LessNamingBean {
private int rollbacksPerSec;
/** Gets query metrics for cache. */
- private VisorCacheQueryMetrics qryMetrics;
+ private VisorQueryMetrics qryMetrics;
/** Current size of evict queue used to batch up evictions. */
private int dhtEvictQueueCurrSize;
@@ -174,11 +178,19 @@ public class VisorCacheMetrics implements Serializable, LessNamingBean {
}
/**
+ * Default constructor.
+ */
+ public VisorCacheMetrics() {
+ // No-op.
+ }
+
+ /**
+ * Create data transfer object for given cache metrics.
+ *
* @param ignite Ignite.
* @param cacheName Cache name.
- * @return Data transfer object for given cache metrics.
*/
- public VisorCacheMetrics from(IgniteEx ignite, String cacheName) {
+ public VisorCacheMetrics(IgniteEx ignite, String cacheName) {
GridCacheProcessor cacheProcessor = ignite.context().cache();
IgniteCache<Object, Object> c = cacheProcessor.jcache(cacheName);
@@ -217,7 +229,7 @@ public class VisorCacheMetrics implements Serializable, LessNamingBean {
commitsPerSec = perSecond(m.getAverageTxCommitTime());
rollbacksPerSec = perSecond(m.getAverageTxRollbackTime());
- qryMetrics = VisorCacheQueryMetrics.from(c.queryMetrics());
+ qryMetrics = new VisorQueryMetrics(c.queryMetrics());
dhtEvictQueueCurrSize = m.getDhtEvictQueueCurrentSize();
txThreadMapSize = m.getTxThreadMapSize();
@@ -239,14 +251,12 @@ public class VisorCacheMetrics implements Serializable, LessNamingBean {
offHeapAllocatedSize = ca.offHeapAllocatedSize();
offHeapEntriesCnt = ca.offHeapEntriesCount();
-
- return this;
}
/**
* @return Cache name.
*/
- public String name() {
+ public String getName() {
return name;
}
@@ -255,287 +265,287 @@ public class VisorCacheMetrics implements Serializable, LessNamingBean {
*
* @param name New value for cache name.
*/
- public void name(String name) {
+ public void setName(String name) {
this.name = name;
}
/**
* @return Cache mode.
*/
- public CacheMode mode() {
+ public CacheMode getMode() {
return mode;
}
/**
* @return Cache system state.
*/
- public boolean system() {
+ public boolean isSystem() {
return sys;
}
/**
* @return Total number of reads of the owning entity (either cache or entry).
*/
- public long reads() {
+ public long getReads() {
return reads;
}
/**
* @return The mean time to execute gets
*/
- public float avgReadTime() {
+ public float getAvgReadTime() {
return avgReadTime;
}
/**
* @return Total number of writes of the owning entity (either cache or entry).
*/
- public long writes() {
+ public long getWrites() {
return writes;
}
/**
* @return Total number of hits for the owning entity (either cache or entry).
*/
- public long hits() {
+ public long getHits() {
return hits;
}
/**
* @return Total number of misses for the owning entity (either cache or entry).
*/
- public long misses() {
+ public long getMisses() {
return misses;
}
/**
* @return Total number of transaction commits.
*/
- public long txCommits() {
+ public long getTxCommits() {
return txCommits;
}
/**
* @return avgTxCommitTime
*/
- public float avgTxCommitTime() {
+ public float getAvgTxCommitTime() {
return avgTxCommitTime;
}
/**
* @return The mean time to execute tx rollbacks.
*/
- public float avgTxRollbackTime() {
+ public float getAvgTxRollbackTime() {
return avgTxRollbackTime;
}
/**
* @return The total number of puts to the cache.
*/
- public long puts() {
+ public long getPuts() {
return puts;
}
/**
* @return The mean time to execute puts.
*/
- public float avgPutTime() {
+ public float getAvgPutTime() {
return avgPutTime;
}
/**
* @return The total number of removals from the cache.
*/
- public long removals() {
+ public long getRemovals() {
return removals;
}
/**
* @return The mean time to execute removes.
*/
- public float avgRemovalTime() {
+ public float getAvgRemovalTime() {
return avgRemovalTime;
}
/**
* @return The total number of evictions from the cache.
*/
- public long evictions() {
+ public long getEvictions() {
return evictions;
}
/**
* @return Total number of transaction rollbacks.
*/
- public long txRollbacks() {
+ public long getTxRollbacks() {
return txRollbacks;
}
/**
* @return Reads per second.
*/
- public int readsPerSecond() {
+ public int getReadsPerSecond() {
return readsPerSec;
}
/**
* @return Puts per second.
*/
- public int putsPerSecond() {
+ public int getPutsPerSecond() {
return putsPerSec;
}
/**
* @return Removes per second.
*/
- public int removalsPerSecond() {
+ public int getRemovalsPerSecond() {
return removalsPerSec;
}
/**
* @return Commits per second.
*/
- public int commitsPerSecond() {
+ public int getCommitsPerSecond() {
return commitsPerSec;
}
/**
* @return Rollbacks per second.
*/
- public int rollbacksPerSecond() {
+ public int getRollbacksPerSecond() {
return rollbacksPerSec;
}
/**
* @return Number of non-{@code null} values in the cache.
*/
- public int size() {
+ public int getSize() {
return size;
}
/**
* @return Gets number of keys in the cache, possibly with {@code null} values.
*/
- public int keySize() {
+ public int getKeySize() {
return keySize;
}
/**
* @return Gets query metrics for cache.
*/
- public VisorCacheQueryMetrics queryMetrics() {
+ public VisorQueryMetrics getQueryMetrics() {
return qryMetrics;
}
/**
* @return Current size of evict queue used to batch up evictions.
*/
- public int dhtEvictQueueCurrentSize() {
+ public int getDhtEvictQueueCurrentSize() {
return dhtEvictQueueCurrSize;
}
/**
* @return Gets transaction per-thread map size.
*/
- public int txThreadMapSize() {
+ public int getTxThreadMapSize() {
return txThreadMapSize;
}
/**
* @return Transaction per-Xid map size.
*/
- public int txXidMapSize() {
+ public int getTxXidMapSize() {
return txXidMapSize;
}
/**
* @return Committed transaction queue size.
*/
- public int txCommitQueueSize() {
+ public int getTxCommitQueueSize() {
return txCommitQueueSize;
}
/**
* @return Prepared transaction queue size.
*/
- public int txPrepareQueueSize() {
+ public int getTxPrepareQueueSize() {
return txPrepareQueueSize;
}
/**
* @return Start version counts map size.
*/
- public int txStartVersionCountsSize() {
+ public int getTxStartVersionCountsSize() {
return txStartVerCountsSize;
}
/**
* @return Number of cached committed transaction IDs.
*/
- public int txCommittedVersionsSize() {
+ public int getTxCommittedVersionsSize() {
return txCommittedVersionsSize;
}
/**
* @return Number of cached rolled back transaction IDs.
*/
- public int txRolledbackVersionsSize() {
+ public int getTxRolledbackVersionsSize() {
return txRolledbackVersionsSize;
}
/**
* @return DHT thread map size
*/
- public int txDhtThreadMapSize() {
+ public int getTxDhtThreadMapSize() {
return txDhtThreadMapSize;
}
/**
* @return Transaction DHT per-Xid map size.
*/
- public int txDhtXidMapSize() {
+ public int getTxDhtXidMapSize() {
return txDhtXidMapSize;
}
/**
* @return Committed DHT transaction queue size.
*/
- public int txDhtCommitQueueSize() {
+ public int getTxDhtCommitQueueSize() {
return txDhtCommitQueueSize;
}
/**
* @return Prepared DHT transaction queue size.
*/
- public int txDhtPrepareQueueSize() {
+ public int getTxDhtPrepareQueueSize() {
return txDhtPrepareQueueSize;
}
/**
* @return DHT start version counts map size.
*/
- public int txDhtStartVersionCountsSize() {
+ public int getTxDhtStartVersionCountsSize() {
return txDhtStartVerCountsSize;
}
/**
* @return Number of cached committed DHT transaction IDs.
*/
- public int txDhtCommittedVersionsSize() {
+ public int getTxDhtCommittedVersionsSize() {
return txDhtCommittedVersionsSize;
}
/**
* @return Number of cached rolled back DHT transaction IDs.
*/
- public int txDhtRolledbackVersionsSize() {
+ public int getTxDhtRolledbackVersionsSize() {
return txDhtRolledbackVersionsSize;
}
/**
* @return Memory size allocated in off-heap.
*/
- public long offHeapAllocatedSize() {
+ public long getOffHeapAllocatedSize() {
return offHeapAllocatedSize;
}
@@ -547,6 +557,98 @@ public class VisorCacheMetrics implements Serializable, LessNamingBean {
}
/** {@inheritDoc} */
+ @Override protected void writeExternalData(ObjectOutput out) throws IOException {
+ U.writeString(out, name);
+ U.writeEnum(out, mode);
+ out.writeBoolean(sys);
+ out.writeInt(size);
+ out.writeInt(keySize);
+ out.writeLong(reads);
+ out.writeFloat(avgReadTime);
+ out.writeLong(writes);
+ out.writeLong(hits);
+ out.writeLong(misses);
+ out.writeLong(txCommits);
+ out.writeFloat(avgTxCommitTime);
+ out.writeLong(txRollbacks);
+ out.writeFloat(avgTxRollbackTime);
+ out.writeLong(puts);
+ out.writeFloat(avgPutTime);
+ out.writeLong(removals);
+ out.writeFloat(avgRemovalTime);
+ out.writeLong(evictions);
+ out.writeInt(readsPerSec);
+ out.writeInt(putsPerSec);
+ out.writeInt(removalsPerSec);
+ out.writeInt(commitsPerSec);
+ out.writeInt(rollbacksPerSec);
+ out.writeInt(dhtEvictQueueCurrSize);
+ out.writeInt(txThreadMapSize);
+ out.writeInt(txXidMapSize);
+ out.writeInt(txCommitQueueSize);
+ out.writeInt(txPrepareQueueSize);
+ out.writeInt(txStartVerCountsSize);
+ out.writeInt(txCommittedVersionsSize);
+ out.writeInt(txRolledbackVersionsSize);
+ out.writeInt(txDhtThreadMapSize);
+ out.writeInt(txDhtXidMapSize);
+ out.writeInt(txDhtCommitQueueSize);
+ out.writeInt(txDhtPrepareQueueSize);
+ out.writeInt(txDhtStartVerCountsSize);
+ out.writeInt(txDhtCommittedVersionsSize);
+ out.writeInt(txDhtRolledbackVersionsSize);
+ out.writeLong(offHeapAllocatedSize);
+ out.writeLong(offHeapEntriesCnt);
+ out.writeObject(qryMetrics);
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void readExternalData(byte protoVer, ObjectInput in) throws IOException, ClassNotFoundException {
+ name = U.readString(in);
+ mode = CacheMode.fromOrdinal(in.readByte());
+ sys = in.readBoolean();
+ size = in.readInt();
+ keySize = in.readInt();
+ reads = in.readLong();
+ avgReadTime = in.readFloat();
+ writes = in.readLong();
+ hits = in.readLong();
+ misses = in.readLong();
+ txCommits = in.readLong();
+ avgTxCommitTime = in.readFloat();
+ txRollbacks = in.readLong();
+ avgTxRollbackTime = in.readFloat();
+ puts = in.readLong();
+ avgPutTime = in.readFloat();
+ removals = in.readLong();
+ avgRemovalTime = in.readFloat();
+ evictions = in.readLong();
+ readsPerSec = in.readInt();
+ putsPerSec = in.readInt();
+ removalsPerSec = in.readInt();
+ commitsPerSec = in.readInt();
+ rollbacksPerSec = in.readInt();
+ dhtEvictQueueCurrSize = in.readInt();
+ txThreadMapSize = in.readInt();
+ txXidMapSize = in.readInt();
+ txCommitQueueSize = in.readInt();
+ txPrepareQueueSize = in.readInt();
+ txStartVerCountsSize = in.readInt();
+ txCommittedVersionsSize = in.readInt();
+ txRolledbackVersionsSize = in.readInt();
+ txDhtThreadMapSize = in.readInt();
+ txDhtXidMapSize = in.readInt();
+ txDhtCommitQueueSize = in.readInt();
+ txDhtPrepareQueueSize = in.readInt();
+ txDhtStartVerCountsSize = in.readInt();
+ txDhtCommittedVersionsSize = in.readInt();
+ txDhtRolledbackVersionsSize = in.readInt();
+ offHeapAllocatedSize = in.readLong();
+ offHeapEntriesCnt = in.readLong();
+ qryMetrics = (VisorQueryMetrics)in.readObject();
+ }
+
+ /** {@inheritDoc} */
@Override public String toString() {
return S.toString(VisorCacheMetrics.class, this);
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/12dfe9e8/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 4fd85de..5cc8154 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
@@ -29,20 +29,19 @@ import org.apache.ignite.internal.util.typedef.internal.S;
import org.apache.ignite.internal.util.typedef.internal.U;
import org.apache.ignite.internal.visor.VisorJob;
import org.apache.ignite.internal.visor.VisorMultiNodeTask;
-import org.apache.ignite.lang.IgniteBiTuple;
import org.jetbrains.annotations.Nullable;
/**
* Task that collect cache metrics from all nodes.
*/
@GridInternal
-public class VisorCacheMetricsCollectorTask extends VisorMultiNodeTask<IgniteBiTuple<Boolean, Collection<String>>,
+public class VisorCacheMetricsCollectorTask extends VisorMultiNodeTask<VisorCacheMetricsCollectorTaskArg,
Iterable<VisorCacheAggregatedMetrics>, Collection<VisorCacheMetrics>> {
/** */
private static final long serialVersionUID = 0L;
/** {@inheritDoc} */
- @Override protected VisorCacheMetricsCollectorJob job(IgniteBiTuple<Boolean, Collection<String>> arg) {
+ @Override protected VisorCacheMetricsCollectorJob job(VisorCacheMetricsCollectorTaskArg arg) {
return new VisorCacheMetricsCollectorJob(arg, debug);
}
@@ -55,15 +54,15 @@ public class VisorCacheMetricsCollectorTask extends VisorMultiNodeTask<IgniteBiT
Collection<VisorCacheMetrics> cms = res.getData();
for (VisorCacheMetrics cm : cms) {
- VisorCacheAggregatedMetrics am = grpAggrMetrics.get(cm.name());
+ VisorCacheAggregatedMetrics am = grpAggrMetrics.get(cm.getName());
if (am == null) {
- am = VisorCacheAggregatedMetrics.from(cm);
+ am = new VisorCacheAggregatedMetrics(cm);
- grpAggrMetrics.put(cm.name(), am);
+ grpAggrMetrics.put(cm.getName(), am);
}
- am.metrics().put(res.getNode().id(), cm);
+ am.getMetrics().put(res.getNode().id(), cm);
}
}
}
@@ -76,7 +75,7 @@ public class VisorCacheMetricsCollectorTask extends VisorMultiNodeTask<IgniteBiT
* Job that collect cache metrics from node.
*/
private static class VisorCacheMetricsCollectorJob
- extends VisorJob<IgniteBiTuple<Boolean, Collection<String>>, Collection<VisorCacheMetrics>> {
+ extends VisorJob<VisorCacheMetricsCollectorTaskArg, Collection<VisorCacheMetrics>> {
/** */
private static final long serialVersionUID = 0L;
@@ -87,19 +86,17 @@ public class VisorCacheMetricsCollectorTask extends VisorMultiNodeTask<IgniteBiT
* @param arg Whether to collect metrics for all caches or for specified cache name only.
* @param debug Debug flag.
*/
- private VisorCacheMetricsCollectorJob(IgniteBiTuple<Boolean, Collection<String>> arg, boolean debug) {
+ private VisorCacheMetricsCollectorJob(VisorCacheMetricsCollectorTaskArg arg, boolean debug) {
super(arg, debug);
}
/** {@inheritDoc} */
- @Override protected Collection<VisorCacheMetrics> run(final IgniteBiTuple<Boolean, Collection<String>> arg) {
+ @Override protected Collection<VisorCacheMetrics> run(final VisorCacheMetricsCollectorTaskArg arg) {
assert arg != null;
- Boolean showSysCaches = arg.get1();
+ Boolean showSysCaches = arg.isShowSystemCaches();
- assert showSysCaches != null;
-
- Collection<String> cacheNames = arg.get2();
+ Collection<String> cacheNames = arg.getCacheNames();
assert cacheNames != null;
@@ -115,9 +112,9 @@ public class VisorCacheMetricsCollectorTask extends VisorMultiNodeTask<IgniteBiT
if (ca.context().started()) {
String cacheName = ca.getName();
- VisorCacheMetrics cm = new VisorCacheMetrics().from(ignite, cacheName);
+ VisorCacheMetrics cm = new VisorCacheMetrics(ignite, cacheName);
- if ((allCaches || cacheNames.contains(cacheName)) && (showSysCaches || !cm.system()))
+ if ((allCaches || cacheNames.contains(cacheName)) && (showSysCaches || !cm.isSystem()))
res.add(cm);
}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/12dfe9e8/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheMetricsCollectorTaskArg.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheMetricsCollectorTaskArg.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheMetricsCollectorTaskArg.java
new file mode 100644
index 0000000..9529ab4
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheMetricsCollectorTaskArg.java
@@ -0,0 +1,87 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.visor.cache;
+
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+import java.util.List;
+import org.apache.ignite.internal.util.typedef.internal.S;
+import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.internal.visor.VisorDataTransferObject;
+
+/**
+ * Cache start arguments.
+ */
+public class VisorCacheMetricsCollectorTaskArg extends VisorDataTransferObject {
+ /** */
+ private static final long serialVersionUID = 0L;
+
+ /** Collect metrics for system caches. */
+ private boolean showSysCaches;
+
+ /** Cache names to collect metrics. */
+ private List<String> cacheNames;
+
+ /**
+ * Default constructor.
+ */
+ public VisorCacheMetricsCollectorTaskArg() {
+ // No-op.
+ }
+
+ /**
+ * @param showSysCaches Collect metrics for system caches.
+ * @param cacheNames Cache names to collect metrics.
+ */
+ public VisorCacheMetricsCollectorTaskArg(boolean showSysCaches, List<String> cacheNames) {
+ this.showSysCaches = showSysCaches;
+ this.cacheNames = cacheNames;
+ }
+
+ /**
+ * @return Collect metrics for system caches
+ */
+ public boolean isShowSystemCaches() {
+ return showSysCaches;
+ }
+
+ /**
+ * @return Cache names to collect metrics
+ */
+ public List<String> getCacheNames() {
+ return cacheNames;
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void writeExternalData(ObjectOutput out) throws IOException {
+ out.writeBoolean(showSysCaches);
+ U.writeCollection(out, cacheNames);
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void readExternalData(byte protoVer, ObjectInput in) throws IOException, ClassNotFoundException {
+ showSysCaches = in.readBoolean();
+ cacheNames = U.readList(in);
+ }
+
+ /** {@inheritDoc} */
+ @Override public String toString() {
+ return S.toString(VisorCacheMetricsCollectorTaskArg.class, this);
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/12dfe9e8/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheNearConfiguration.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheNearConfiguration.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheNearConfiguration.java
index 8771da4..ae55f83 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheNearConfiguration.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheNearConfiguration.java
@@ -17,12 +17,15 @@
package org.apache.ignite.internal.visor.cache;
-import java.io.Serializable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
import org.apache.ignite.configuration.CacheConfiguration;
import org.apache.ignite.configuration.NearCacheConfiguration;
-import org.apache.ignite.internal.LessNamingBean;
import org.apache.ignite.internal.processors.cache.GridCacheUtils;
import org.apache.ignite.internal.util.typedef.internal.S;
+import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.internal.visor.VisorDataTransferObject;
import org.jetbrains.annotations.Nullable;
import static org.apache.ignite.internal.visor.util.VisorTaskUtils.compactClass;
@@ -31,7 +34,7 @@ import static org.apache.ignite.internal.visor.util.VisorTaskUtils.evictionPolic
/**
* Data transfer object for near cache configuration properties.
*/
-public class VisorCacheNearConfiguration implements Serializable, LessNamingBean {
+public class VisorCacheNearConfiguration extends VisorDataTransferObject {
/** */
private static final long serialVersionUID = 0L;
@@ -48,54 +51,74 @@ public class VisorCacheNearConfiguration implements Serializable, LessNamingBean
private Integer nearEvictMaxSize;
/**
- * @param ccfg Cache configuration.
- * @return Data transfer object for near cache configuration properties.
+ * Default constructor.
*/
- public static VisorCacheNearConfiguration from(CacheConfiguration ccfg) {
- VisorCacheNearConfiguration cfg = new VisorCacheNearConfiguration();
+ public VisorCacheNearConfiguration() {
+ // No-op.
+ }
- cfg.nearEnabled = GridCacheUtils.isNearEnabled(ccfg);
+ /**
+ * Create data transfer object for near cache configuration properties.
+ *
+ * @param ccfg Cache configuration.
+ */
+ public VisorCacheNearConfiguration(CacheConfiguration ccfg) {
+ nearEnabled = GridCacheUtils.isNearEnabled(ccfg);
- if (cfg.nearEnabled) {
+ if (nearEnabled) {
NearCacheConfiguration nccfg = ccfg.getNearConfiguration();
- cfg.nearStartSize = nccfg.getNearStartSize();
- cfg.nearEvictPlc = compactClass(nccfg.getNearEvictionPolicy());
- cfg.nearEvictMaxSize = evictionPolicyMaxSize(nccfg.getNearEvictionPolicy());
+ nearStartSize = nccfg.getNearStartSize();
+ nearEvictPlc = compactClass(nccfg.getNearEvictionPolicy());
+ nearEvictMaxSize = evictionPolicyMaxSize(nccfg.getNearEvictionPolicy());
}
-
- return cfg;
}
/**
* @return {@code true} if near cache enabled.
*/
- public boolean nearEnabled() {
+ public boolean isNearEnabled() {
return nearEnabled;
}
/**
* @return Near cache start size.
*/
- public int nearStartSize() {
+ public int getNearStartSize() {
return nearStartSize;
}
/**
* @return Near cache eviction policy.
*/
- @Nullable public String nearEvictPolicy() {
+ @Nullable public String getNearEvictPolicy() {
return nearEvictPlc;
}
/**
* @return Near cache eviction policy max size.
*/
- @Nullable public Integer nearEvictMaxSize() {
+ @Nullable public Integer getNearEvictMaxSize() {
return nearEvictMaxSize;
}
/** {@inheritDoc} */
+ @Override protected void writeExternalData(ObjectOutput out) throws IOException {
+ out.writeBoolean(nearEnabled);
+ out.writeInt(nearStartSize);
+ U.writeString(out, nearEvictPlc);
+ out.writeObject(nearEvictMaxSize);
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void readExternalData(byte protoVer, ObjectInput in) throws IOException, ClassNotFoundException {
+ nearEnabled = in.readBoolean();
+ nearStartSize = in.readInt();
+ nearEvictPlc = U.readString(in);
+ nearEvictMaxSize = (Integer)in.readObject();
+ }
+
+ /** {@inheritDoc} */
@Override public String toString() {
return S.toString(VisorCacheNearConfiguration.class, this);
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/12dfe9e8/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCachePartition.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCachePartition.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCachePartition.java
index e73d1f6..b57bc53 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCachePartition.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCachePartition.java
@@ -17,58 +17,67 @@
package org.apache.ignite.internal.visor.cache;
-import java.io.Serializable;
-import org.apache.ignite.internal.LessNamingBean;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
import org.apache.ignite.internal.util.typedef.internal.S;
+import org.apache.ignite.internal.visor.VisorDataTransferObject;
/**
* Data transfer object for information about keys in cache partition.
*/
-public class VisorCachePartition implements Serializable, LessNamingBean {
+public class VisorCachePartition extends VisorDataTransferObject {
/** */
private static final long serialVersionUID = 0L;
/** */
- private int part;
+ private int partId;
/** */
- private int heap;
+ private long cnt;
- /** */
- private long offheap;
+ /**
+ * Default constructor.
+ */
+ public VisorCachePartition() {
+ // No-op.
+ }
/**
* Full constructor.
*
- * @param part Partition id.
- * @param heap Number of keys in heap.
- * @param offheap Number of keys in offheap.
+ * @param partId Partition id.
+ * @param cnt Number of keys in partition.
*/
- public VisorCachePartition(int part, int heap, long offheap) {
- this.part = part;
- this.heap = heap;
- this.offheap = offheap;
+ public VisorCachePartition(int partId, long cnt) {
+ this.partId = partId;
+ this.cnt = cnt;
}
/**
* @return Partition id.
*/
- public int partition() {
- return part;
+ public int getPartitionId() {
+ return partId;
}
/**
- * @return Number of keys in heap.
+ * @return Number of keys in partition.
*/
- public int heap() {
- return heap;
+ public long getCount() {
+ return cnt;
}
- /**
- * @return Number of keys in offheap.
- */
- public long offheap() {
- return offheap;
+ /** {@inheritDoc} */
+ @Override protected void writeExternalData(ObjectOutput out) throws IOException {
+ out.writeInt(partId);
+ out.writeLong(cnt);
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void readExternalData(byte protoVer, ObjectInput in) throws IOException, ClassNotFoundException {
+ partId = in.readInt();
+ cnt = in.readLong();
}
/** {@inheritDoc} */
http://git-wip-us.apache.org/repos/asf/ignite/blob/12dfe9e8/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCachePartitions.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCachePartitions.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCachePartitions.java
index f8e54a9..2713179 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCachePartitions.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCachePartitions.java
@@ -17,16 +17,19 @@
package org.apache.ignite.internal.visor.cache;
-import java.io.Serializable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
import java.util.ArrayList;
import java.util.List;
-import org.apache.ignite.internal.LessNamingBean;
import org.apache.ignite.internal.util.typedef.internal.S;
+import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.internal.visor.VisorDataTransferObject;
/**
* Data transfer object for information about cache partitions.
*/
-public class VisorCachePartitions implements Serializable, LessNamingBean {
+public class VisorCachePartitions extends VisorDataTransferObject {
/** */
private static final long serialVersionUID = 0L;
@@ -47,40 +50,50 @@ public class VisorCachePartitions implements Serializable, LessNamingBean {
/**
* Add primary partition descriptor.
*
- * @param part Partition id.
- * @param heap Number of primary keys in heap.
- * @param offheap Number of primary keys in offheap.
+ * @param partId Partition id.
+ * @param cnt Number of primary keys in partition.
*/
- public void addPrimary(int part, int heap, long offheap) {
- primary.add(new VisorCachePartition(part, heap, offheap));
+ public void addPrimary(int partId, long cnt) {
+ primary.add(new VisorCachePartition(partId, cnt));
}
/**
* Add backup partition descriptor.
*
- * @param part Partition id.
- * @param heap Number of backup keys in heap.
- * @param offheap Number of backup keys in offheap.
+ * @param partId Partition id.
+ * @param cnt Number of backup keys in partition.
*/
- public void addBackup(int part, int heap, long offheap) {
- backup.add(new VisorCachePartition(part, heap, offheap));
+ public void addBackup(int partId, long cnt) {
+ backup.add(new VisorCachePartition(partId, cnt));
}
/**
* @return Get list of primary partitions.
*/
- public List<VisorCachePartition> primary() {
+ public List<VisorCachePartition> getPrimary() {
return primary;
}
/**
* @return Get list of backup partitions.
*/
- public List<VisorCachePartition> backup() {
+ public List<VisorCachePartition> getBackup() {
return backup;
}
/** {@inheritDoc} */
+ @Override protected void writeExternalData(ObjectOutput out) throws IOException {
+ U.writeCollection(out, primary);
+ U.writeCollection(out, backup);
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void readExternalData(byte protoVer, ObjectInput in) throws IOException, ClassNotFoundException {
+ primary = U.readList(in);
+ backup = U.readList(in);
+ }
+
+ /** {@inheritDoc} */
@Override public String toString() {
return S.toString(VisorCachePartitions.class, this);
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/12dfe9e8/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCachePartitionsTask.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCachePartitionsTask.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCachePartitionsTask.java
index 6d3a9d8..b7ca975 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCachePartitionsTask.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCachePartitionsTask.java
@@ -45,7 +45,8 @@ import static org.apache.ignite.internal.visor.util.VisorTaskUtils.escapeName;
* Task that collect keys distribution in partitions.
*/
@GridInternal
-public class VisorCachePartitionsTask extends VisorMultiNodeTask<String, Map<UUID, VisorCachePartitions>, VisorCachePartitions> {
+public class VisorCachePartitionsTask extends VisorMultiNodeTask<String,
+ Map<UUID, VisorCachePartitions>, VisorCachePartitions> {
/** */
private static final long serialVersionUID = 0L;
@@ -125,9 +126,9 @@ public class VisorCachePartitionsTask extends VisorMultiNodeTask<String, Map<UUI
// Pass -1 as topology version in order not to wait for topology version.
if (part.primary(AffinityTopologyVersion.NONE))
- parts.addPrimary(p, sz, 0);
+ parts.addPrimary(p, sz);
else if (part.state() == GridDhtPartitionState.OWNING && part.backup(AffinityTopologyVersion.NONE))
- parts.addBackup(p, sz, 0);
+ parts.addBackup(p, sz);
}
}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/12dfe9e8/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheQueryConfiguration.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheQueryConfiguration.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheQueryConfiguration.java
deleted file mode 100644
index a21cf43..0000000
--- a/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheQueryConfiguration.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.internal.visor.cache;
-
-import java.io.Serializable;
-import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.internal.LessNamingBean;
-import org.apache.ignite.internal.util.typedef.internal.U;
-
-/**
- * Data transfer object for cache query configuration data.
- */
-public class VisorCacheQueryConfiguration implements Serializable, LessNamingBean {
- /** */
- private static final long serialVersionUID = 0L;
-
- /** */
- private String[] sqlFuncClss;
-
- /** */
- private long longQryWarnTimeout;
-
- /** */
- private boolean sqlEscapeAll;
-
- /** */
- private String[] indexedTypes;
-
- /** */
- private int sqlOnheapRowCacheSize;
-
- /** */
- private String sqlSchema;
-
- /**
- * @param clss Classes to compact.
- */
- private static String[] compactClasses(Class<?>[] clss) {
- if (clss == null)
- return null;
-
- int len = clss.length;
-
- String[] res = new String[len];
-
- for (int i = 0; i < len; i++)
- res[i] = U.compact(clss[i].getName());
-
- return res;
- }
-
- /**
- * @param ccfg Cache configuration.
- * @return Fill data transfer object with cache query configuration data.
- */
- public VisorCacheQueryConfiguration from(CacheConfiguration ccfg) {
- sqlFuncClss = compactClasses(ccfg.getSqlFunctionClasses());
- longQryWarnTimeout = ccfg.getLongQueryWarningTimeout();
- sqlEscapeAll = ccfg.isSqlEscapeAll();
- indexedTypes = compactClasses(ccfg.getIndexedTypes());
- sqlSchema = ccfg.getSqlSchema();
-
- return this;
- }
-
- /**
- * @return Classes names with SQL functions.
- */
- public String[] sqlFunctionClasses() {
- return sqlFuncClss;
- }
-
- /**
- * @return Timeout in milliseconds after which long query warning will be printed.
- */
- public long longQueryWarningTimeout() {
- return longQryWarnTimeout;
- }
-
- /**
- * @return {@code true} if SQL engine generate SQL statements with escaped names.
- */
- public boolean sqlEscapeAll() {
- return sqlEscapeAll;
- }
-
- /**
- * @return Array of key and value classes names to be indexed.
- */
- public String[] indexedTypes() {
- return indexedTypes;
- }
-
- /**
- * @return Number of SQL rows which will be cached onheap to avoid deserialization on each SQL index access.
- */
- public int sqlOnheapRowCacheSize() {
- return sqlOnheapRowCacheSize;
- }
-
- /**
- * @return Schema name, which is used by SQL engine for SQL statements generation.
- */
- public String sqlSchema() {
- return sqlSchema;
- }
-}
http://git-wip-us.apache.org/repos/asf/ignite/blob/12dfe9e8/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheQueryDetailMetrics.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheQueryDetailMetrics.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheQueryDetailMetrics.java
deleted file mode 100644
index dc46906..0000000
--- a/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheQueryDetailMetrics.java
+++ /dev/null
@@ -1,167 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.internal.visor.cache;
-
-import java.io.Serializable;
-import org.apache.ignite.cache.query.QueryDetailMetrics;
-import org.apache.ignite.internal.util.typedef.internal.S;
-
-/**
- * Data transfer object for cache query detail metrics.
- */
-public class VisorCacheQueryDetailMetrics implements Serializable {
- /** */
- private static final long serialVersionUID = 0L;
-
- /** Query type. */
- private String qryType;
-
- /** Textual query representation. */
- private String qry;
-
- /** Cache name. */
- private String cache;
-
- /** Number of executions. */
- private int execs;
-
- /** Number of completions executions. */
- private int completions;
-
- /** Number of failures. */
- private int failures;
-
- /** Minimum time of execution. */
- private long minTime;
-
- /** Maximum time of execution. */
- private long maxTime;
-
- /** Average time of execution. */
- private double avgTime;
-
- /** Sum of execution time of completions time. */
- private long totalTime;
-
- /** Sum of execution time of completions time. */
- private long lastStartTime;
-
- /**
- * @param m Cache query metrics.
- * @return Data transfer object for given cache metrics.
- */
- public VisorCacheQueryDetailMetrics from(QueryDetailMetrics m) {
- qryType = m.queryType();
- qry = m.query();
- cache = m.cache();
-
- execs = m.executions();
- completions = m.completions();
- failures = m.failures();
-
- minTime = m.minimumTime();
- maxTime = m.maximumTime();
- avgTime = m.averageTime();
- totalTime = m.totalTime();
- lastStartTime = m.lastStartTime();
-
- return this;
- }
-
- /**
- * @return Query type
- */
- public String getQueryType() {
- return qryType;
- }
-
- /**
- * @return Query type
- */
- public String getQuery() {
- return qry;
- }
-
- /**
- * @return Cache name where query was executed.
- */
- public String getCache() {
- return cache;
- }
-
- /**
- * @return Number of executions.
- */
- public int getExecutions() {
- return execs;
- }
-
- /**
- * @return Number of completed executions.
- */
- public int getCompletions() {
- return completions;
- }
-
- /**
- * @return Total number of times a query execution failed.
- */
- public int getFailures() {
- return failures;
- }
-
- /**
- * @return Minimum execution time of query.
- */
- public long getMinimumTime() {
- return minTime;
- }
-
- /**
- * @return Maximum execution time of query.
- */
- public long getMaximumTime() {
- return maxTime;
- }
-
- /**
- * @return Average execution time of query.
- */
- public double getAverageTime() {
- return avgTime;
- }
-
- /**
- * @return Total time of all query executions.
- */
- public long getTotalTime() {
- return totalTime;
- }
-
- /**
- * @return Latest time query was stared.
- */
- public long getLastStartTime() {
- return lastStartTime;
- }
-
- /** {@inheritDoc} */
- @Override public String toString() {
- return S.toString(VisorCacheQueryDetailMetrics.class, this);
- }
-}
http://git-wip-us.apache.org/repos/asf/ignite/blob/12dfe9e8/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheQueryDetailMetricsCollectorTask.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheQueryDetailMetricsCollectorTask.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheQueryDetailMetricsCollectorTask.java
deleted file mode 100644
index aee5063..0000000
--- a/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheQueryDetailMetricsCollectorTask.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.internal.visor.cache;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import org.apache.ignite.IgniteException;
-import org.apache.ignite.cache.query.QueryDetailMetrics;
-import org.apache.ignite.compute.ComputeJobResult;
-import org.apache.ignite.configuration.IgniteConfiguration;
-import org.apache.ignite.internal.processors.cache.GridCacheProcessor;
-import org.apache.ignite.internal.processors.cache.IgniteInternalCache;
-import org.apache.ignite.internal.processors.cache.query.GridCacheQueryDetailMetricsAdapter;
-import org.apache.ignite.internal.processors.cache.query.GridCacheQueryDetailMetricsKey;
-import org.apache.ignite.internal.processors.task.GridInternal;
-import org.apache.ignite.internal.util.typedef.internal.S;
-import org.apache.ignite.internal.visor.VisorJob;
-import org.apache.ignite.internal.visor.VisorMultiNodeTask;
-import org.jetbrains.annotations.Nullable;
-
-import static org.apache.ignite.internal.processors.cache.GridCacheUtils.isIgfsCache;
-import static org.apache.ignite.internal.processors.cache.GridCacheUtils.isSystemCache;
-
-/**
- * Task to collect cache query metrics.
- */
-@GridInternal
-public class VisorCacheQueryDetailMetricsCollectorTask extends VisorMultiNodeTask<Long, Collection<VisorCacheQueryDetailMetrics>,
- Collection<? extends QueryDetailMetrics>> {
- /** */
- private static final long serialVersionUID = 0L;
-
- /** {@inheritDoc} */
- @Override protected VisorCacheQueryDetailMetricsCollectorJob job(Long arg) {
- return new VisorCacheQueryDetailMetricsCollectorJob(arg, debug);
- }
-
- /** {@inheritDoc} */
- @Nullable @Override protected Collection<VisorCacheQueryDetailMetrics> reduce0(List<ComputeJobResult> results)
- throws IgniteException {
- Map<GridCacheQueryDetailMetricsKey, GridCacheQueryDetailMetricsAdapter> taskRes = new HashMap<>();
-
- for (ComputeJobResult res : results) {
- if (res.getException() != null)
- throw res.getException();
-
- Collection<GridCacheQueryDetailMetricsAdapter> metrics = res.getData();
-
- VisorCacheQueryDetailMetricsCollectorJob.aggregateMetrics(-1, taskRes, metrics);
- }
-
- Collection<GridCacheQueryDetailMetricsAdapter> aggMetrics = taskRes.values();
-
- Collection<VisorCacheQueryDetailMetrics> res = new ArrayList<>(aggMetrics.size());
-
- for (GridCacheQueryDetailMetricsAdapter m : aggMetrics)
- res.add(new VisorCacheQueryDetailMetrics().from(m));
-
- return res;
- }
-
- /**
- * Job that will actually collect query metrics.
- */
- private static class VisorCacheQueryDetailMetricsCollectorJob extends VisorJob<Long, Collection<? extends QueryDetailMetrics>> {
- /** */
- private static final long serialVersionUID = 0L;
-
- /**
- * Create job with specified argument.
- *
- * @param arg Last time when metrics were collected.
- * @param debug Debug flag.
- */
- protected VisorCacheQueryDetailMetricsCollectorJob(@Nullable Long arg, boolean debug) {
- super(arg, debug);
- }
-
- /**
- * @param since Time when metrics were collected last time.
- * @param res Response.
- * @param metrics Metrics.
- */
- private static void aggregateMetrics(long since, Map<GridCacheQueryDetailMetricsKey,
- GridCacheQueryDetailMetricsAdapter> res, Collection<GridCacheQueryDetailMetricsAdapter> metrics) {
- for (GridCacheQueryDetailMetricsAdapter m : metrics) {
- if (m.lastStartTime() > since) {
- GridCacheQueryDetailMetricsKey key = m.key();
-
- GridCacheQueryDetailMetricsAdapter aggMetrics = res.get(key);
-
- res.put(key, aggMetrics == null ? m : aggMetrics.aggregate(m));
- }
- }
- }
-
- /** {@inheritDoc} */
- @Override protected Collection<? extends QueryDetailMetrics> run(@Nullable Long arg) throws IgniteException {
- assert arg != null;
-
- IgniteConfiguration cfg = ignite.configuration();
-
- GridCacheProcessor cacheProc = ignite.context().cache();
-
- Collection<String> cacheNames = cacheProc.cacheNames();
-
- Map<GridCacheQueryDetailMetricsKey, GridCacheQueryDetailMetricsAdapter> aggMetrics = new HashMap<>();
-
- for (String cacheName : cacheNames) {
- if (!isSystemCache(cacheName) && !isIgfsCache(cfg, cacheName)) {
- IgniteInternalCache<Object, Object> cache = cacheProc.cache(cacheName);
-
- if (cache == null || !cache.context().started())
- continue;
-
- aggregateMetrics(arg, aggMetrics, cache.context().queries().detailMetrics());
- }
- }
-
- return new ArrayList<>(aggMetrics.values());
- }
-
- /** {@inheritDoc} */
- @Override public String toString() {
- return S.toString(VisorCacheQueryDetailMetricsCollectorJob.class, this);
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/ignite/blob/12dfe9e8/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheQueryMetrics.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheQueryMetrics.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheQueryMetrics.java
deleted file mode 100644
index a3d77e5..0000000
--- a/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheQueryMetrics.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.internal.visor.cache;
-
-import java.io.Serializable;
-import org.apache.ignite.cache.query.QueryMetrics;
-import org.apache.ignite.internal.LessNamingBean;
-import org.apache.ignite.internal.util.typedef.internal.S;
-
-/**
- * Data transfer object for cache query metrics.
- */
-public class VisorCacheQueryMetrics implements Serializable, LessNamingBean {
- /** */
- private static final long serialVersionUID = 0L;
-
- /** Minimum execution time of query. */
- private long minTime;
-
- /** Maximum execution time of query. */
- private long maxTime;
-
- /** Average execution time of query. */
- private double avgTime;
-
- /** Number of executions. */
- private int execs;
-
- /** Total number of times a query execution failed. */
- private int fails;
-
- /**
- * @param m Cache query metrics.
- * @return Data transfer object for given cache metrics.
- */
- public static VisorCacheQueryMetrics from(QueryMetrics m) {
- VisorCacheQueryMetrics qm = new VisorCacheQueryMetrics();
-
- qm.minTime = m.minimumTime();
- qm.maxTime = m.maximumTime();
- qm.avgTime = m.averageTime();
- qm.execs = m.executions();
- qm.fails = m.fails();
-
- return qm;
- }
-
- /**
- * @return Minimum execution time of query.
- */
- public long minimumTime() {
- return minTime;
- }
-
- /**
- * @return Maximum execution time of query.
- */
- public long maximumTime() {
- return maxTime;
- }
-
- /**
- * @return Average execution time of query.
- */
- public double averageTime() {
- return avgTime;
- }
-
- /**
- * @return Number of executions.
- */
- public int executions() {
- return execs;
- }
-
- /**
- * @return Total number of times a query execution failed.
- */
- public int fails() {
- return fails;
- }
-
- /** {@inheritDoc} */
- @Override public String toString() {
- return S.toString(VisorCacheQueryMetrics.class, this);
- }
-}
http://git-wip-us.apache.org/repos/asf/ignite/blob/12dfe9e8/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheRebalanceConfiguration.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheRebalanceConfiguration.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheRebalanceConfiguration.java
index 4c28d00..618fa97 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheRebalanceConfiguration.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheRebalanceConfiguration.java
@@ -17,25 +17,25 @@
package org.apache.ignite.internal.visor.cache;
-import java.io.Serializable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
import org.apache.ignite.cache.CacheRebalanceMode;
import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.internal.LessNamingBean;
import org.apache.ignite.internal.util.typedef.internal.S;
+import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.internal.visor.VisorDataTransferObject;
/**
* Data transfer object for cache rebalance configuration properties.
*/
-public class VisorCacheRebalanceConfiguration implements Serializable, LessNamingBean {
+public class VisorCacheRebalanceConfiguration extends VisorDataTransferObject {
/** */
private static final long serialVersionUID = 0L;
/** Cache rebalance mode. */
private CacheRebalanceMode mode;
- /** Rebalance thread pool size. */
- private int threadPoolSize;
-
/** Cache rebalance batch size. */
private int batchSize;
@@ -49,65 +49,78 @@ public class VisorCacheRebalanceConfiguration implements Serializable, LessNamin
private long timeout;
/**
- * @param ccfg Cache configuration.
- * @return Data transfer object for rebalance configuration properties.
+ * Default constructor.
*/
- public static VisorCacheRebalanceConfiguration from(CacheConfiguration ccfg) {
- VisorCacheRebalanceConfiguration cfg = new VisorCacheRebalanceConfiguration();
-
- cfg.mode = ccfg.getRebalanceMode();
- cfg.batchSize = ccfg.getRebalanceBatchSize();
- cfg.threadPoolSize = ccfg.getRebalanceThreadPoolSize();
- cfg.partitionedDelay = ccfg.getRebalanceDelay();
- cfg.throttle = ccfg.getRebalanceThrottle();
- cfg.timeout = ccfg.getRebalanceTimeout();
-
- return cfg;
+ public VisorCacheRebalanceConfiguration() {
+ // No-op.
}
/**
- * @return Cache rebalance mode.
+ * Create data transfer object for rebalance configuration properties.
+ * @param ccfg Cache configuration.
*/
- public CacheRebalanceMode mode() {
- return mode;
+ public VisorCacheRebalanceConfiguration(CacheConfiguration ccfg) {
+ mode = ccfg.getRebalanceMode();
+ batchSize = ccfg.getRebalanceBatchSize();
+ partitionedDelay = ccfg.getRebalanceDelay();
+ throttle = ccfg.getRebalanceThrottle();
+ timeout = ccfg.getRebalanceTimeout();
}
/**
- * @return Rebalance thread pool size.
+ * @return Cache rebalance mode.
*/
- public int threadPoolSize() {
- return threadPoolSize;
+ public CacheRebalanceMode getMode() {
+ return mode;
}
/**
* @return Cache rebalance batch size.
*/
- public int batchSize() {
+ public int getBatchSize() {
return batchSize;
}
/**
* @return Rebalance partitioned delay.
*/
- public long partitionedDelay() {
+ public long getPartitionedDelay() {
return partitionedDelay;
}
/**
* @return Time in milliseconds to wait between rebalance messages.
*/
- public long throttle() {
+ public long getThrottle() {
return throttle;
}
/**
* @return Rebalance timeout.
*/
- public long timeout() {
+ public long getTimeout() {
return timeout;
}
/** {@inheritDoc} */
+ @Override protected void writeExternalData(ObjectOutput out) throws IOException {
+ U.writeEnum(out, mode);
+ out.writeInt(batchSize);
+ out.writeLong(partitionedDelay);
+ out.writeLong(throttle);
+ out.writeLong(timeout);
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void readExternalData(byte protoVer, ObjectInput in) throws IOException, ClassNotFoundException {
+ mode = CacheRebalanceMode.fromOrdinal(in.readByte());
+ batchSize = in.readInt();
+ partitionedDelay = in.readLong();
+ throttle = in.readLong();
+ timeout = in.readLong();
+ }
+
+ /** {@inheritDoc} */
@Override public String toString() {
return S.toString(VisorCacheRebalanceConfiguration.class, this);
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/12dfe9e8/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheResetQueryDetailMetricsTask.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheResetQueryDetailMetricsTask.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheResetQueryDetailMetricsTask.java
deleted file mode 100644
index 84aae9d..0000000
--- a/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheResetQueryDetailMetricsTask.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.internal.visor.cache;
-
-import org.apache.ignite.IgniteCache;
-import org.apache.ignite.internal.processors.task.GridInternal;
-import org.apache.ignite.internal.util.typedef.internal.S;
-import org.apache.ignite.internal.visor.VisorJob;
-import org.apache.ignite.internal.visor.VisorOneNodeTask;
-
-/**
- * Reset query detail metrics.
- */
-@GridInternal
-public class VisorCacheResetQueryDetailMetricsTask extends VisorOneNodeTask<Void, Void> {
- /** */
- private static final long serialVersionUID = 0L;
-
- /** {@inheritDoc} */
- @Override protected VisorCacheResetQueryDetailMetricsJob job(Void arg) {
- return new VisorCacheResetQueryDetailMetricsJob(arg, debug);
- }
-
- /**
- * Job that reset query detail metrics.
- */
- private static class VisorCacheResetQueryDetailMetricsJob extends VisorJob<Void, Void> {
- /** */
- private static final long serialVersionUID = 0L;
-
- /**
- * @param arg Task argument.
- * @param debug Debug flag.
- */
- private VisorCacheResetQueryDetailMetricsJob(Void arg, boolean debug) {
- super(arg, debug);
- }
-
- /** {@inheritDoc} */
- @Override protected Void run(Void arg) {
- for (String cacheName : ignite.cacheNames()) {
- IgniteCache cache = ignite.cache(cacheName);
-
- if (cache != null)
- cache.resetQueryDetailMetrics();
- }
-
- return null;
- }
-
- /** {@inheritDoc} */
- @Override public String toString() {
- return S.toString(VisorCacheResetQueryDetailMetricsJob.class, this);
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/ignite/blob/12dfe9e8/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheResetQueryMetricsTask.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheResetQueryMetricsTask.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheResetQueryMetricsTask.java
deleted file mode 100644
index 5ba6156..0000000
--- a/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheResetQueryMetricsTask.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.internal.visor.cache;
-
-import org.apache.ignite.IgniteCache;
-import org.apache.ignite.internal.processors.task.GridInternal;
-import org.apache.ignite.internal.util.typedef.internal.S;
-import org.apache.ignite.internal.visor.VisorJob;
-import org.apache.ignite.internal.visor.VisorOneNodeTask;
-
-/**
- * Reset compute grid query metrics.
- */
-@GridInternal
-public class VisorCacheResetQueryMetricsTask extends VisorOneNodeTask<String, Void> {
- /** */
- private static final long serialVersionUID = 0L;
-
- /** {@inheritDoc} */
- @Override protected VisorCacheResetQueryMetricsJob job(String arg) {
- return new VisorCacheResetQueryMetricsJob(arg, debug);
- }
-
- /**
- * Job that reset cache query metrics.
- */
- private static class VisorCacheResetQueryMetricsJob extends VisorJob<String, Void> {
- /** */
- private static final long serialVersionUID = 0L;
-
- /**
- * @param arg Cache name to reset query metrics for.
- * @param debug Debug flag.
- */
- private VisorCacheResetQueryMetricsJob(String arg, boolean debug) {
- super(arg, debug);
- }
-
- /** {@inheritDoc} */
- @Override protected Void run(String cacheName) {
- IgniteCache cache = ignite.cache(cacheName);
-
- if (cache != null)
- cache.resetQueryMetrics();
-
- return null;
- }
-
- /** {@inheritDoc} */
- @Override public String toString() {
- return S.toString(VisorCacheResetQueryMetricsJob.class, this);
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/ignite/blob/12dfe9e8/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheSqlIndexMetadata.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheSqlIndexMetadata.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheSqlIndexMetadata.java
new file mode 100644
index 0000000..cd4c95c
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheSqlIndexMetadata.java
@@ -0,0 +1,115 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.visor.cache;
+
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+import java.util.List;
+import org.apache.ignite.internal.processors.cache.query.GridCacheSqlIndexMetadata;
+import org.apache.ignite.internal.util.typedef.internal.S;
+import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.internal.visor.VisorDataTransferObject;
+
+/**
+ * Data transfer object for cache SQL index metadata.
+ */
+public class VisorCacheSqlIndexMetadata extends VisorDataTransferObject {
+ /** */
+ private static final long serialVersionUID = 0L;
+
+ /** */
+ private String name;
+
+ /** */
+ private List<String> fields;
+
+ /** */
+ private List<String> descendings;
+
+ /** */
+ private boolean unique;
+
+ /**
+ * Default constructor.
+ */
+ public VisorCacheSqlIndexMetadata() {
+ // No-op.
+ }
+
+ /**
+ * Create data transfer object.
+ *
+ * @param meta SQL index metadata.
+ */
+ public VisorCacheSqlIndexMetadata(GridCacheSqlIndexMetadata meta) {
+ name = meta.name();
+ fields = toList(meta.fields());
+ descendings = toList(meta.descendings());
+ unique = meta.unique();
+ }
+
+ /**
+ * @return Index name.
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * @return Indexed fields names.
+ */
+ public List<String> getFields() {
+ return fields;
+ }
+
+ /**
+ * @return Descendings.
+ */
+ public List<String> getDescendings() {
+ return descendings;
+ }
+
+ /**
+ * @return {@code True} if index is unique, {@code false} otherwise.
+ */
+ public boolean isUnique() {
+ return unique;
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void writeExternalData(ObjectOutput out) throws IOException {
+ U.writeString(out, name);
+ U.writeCollection(out, fields);
+ U.writeCollection(out, descendings);
+ out.writeBoolean(unique);
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void readExternalData(byte protoVer, ObjectInput in) throws IOException, ClassNotFoundException {
+ name = U.readString(in);
+ fields = U.readList(in);
+ descendings = U.readList(in);
+ unique = in.readBoolean();
+ }
+
+ /** {@inheritDoc} */
+ @Override public String toString() {
+ return S.toString(VisorCacheSqlIndexMetadata.class, this);
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/12dfe9e8/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheSqlMetadata.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheSqlMetadata.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheSqlMetadata.java
new file mode 100644
index 0000000..c7ff3a7
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheSqlMetadata.java
@@ -0,0 +1,162 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.visor.cache;
+
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import org.apache.ignite.internal.processors.cache.query.GridCacheSqlIndexMetadata;
+import org.apache.ignite.internal.processors.cache.query.GridCacheSqlMetadata;
+import org.apache.ignite.internal.processors.igfs.IgfsUtils;
+import org.apache.ignite.internal.util.typedef.internal.S;
+import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.internal.visor.VisorDataTransferObject;
+
+/**
+ * Data transfer object for cache SQL metadata.
+ */
+public class VisorCacheSqlMetadata extends VisorDataTransferObject {
+ /** */
+ private static final long serialVersionUID = 0L;
+
+ /** */
+ private String cacheName;
+
+ /** */
+ private List<String> types;
+
+ /** */
+ private Map<String, String> keyClasses;
+
+ /** */
+ private Map<String, String> valClasses;
+
+ /** */
+ private Map<String, Map<String, String>> fields;
+
+ /** */
+ private Map<String, List<VisorCacheSqlIndexMetadata>> indexes;
+
+ /**
+ * Default constructor.
+ */
+ public VisorCacheSqlMetadata() {
+ // No-op.
+ }
+
+ /**
+ * Create data transfer object.
+ *
+ * @param meta Cache SQL metadata.
+ */
+ public VisorCacheSqlMetadata(GridCacheSqlMetadata meta) {
+ cacheName = meta.cacheName();
+ types = toList(meta.types());
+ keyClasses = meta.keyClasses();
+ valClasses = meta.valClasses();
+ fields = meta.fields();
+ indexes = new HashMap<>();
+
+ Map<String, Collection<GridCacheSqlIndexMetadata>> src = meta.indexes();
+
+ if (src != null) {
+ for (Map.Entry<String, Collection<GridCacheSqlIndexMetadata>> entry: src.entrySet()) {
+ Collection<GridCacheSqlIndexMetadata> idxs = entry.getValue();
+
+ List<VisorCacheSqlIndexMetadata> res = new ArrayList<>(idxs.size());
+
+ for (GridCacheSqlIndexMetadata idx : idxs)
+ res.add(new VisorCacheSqlIndexMetadata(idx));
+
+ indexes.put(entry.getKey(), res);
+ }
+ }
+ }
+
+ /**
+ * @return Cache name.
+ */
+ public String getCacheName() {
+ return cacheName;
+ }
+
+ /**
+ * @return Collection of available types.
+ */
+ public List<String> getTypes() {
+ return types;
+ }
+
+ /**
+ * @return Key classes.
+ */
+ public Map<String, String> getKeyClasses() {
+ return keyClasses;
+ }
+
+ /**
+ * @return Value classes.
+ */
+ public Map<String, String> getValueClasses() {
+ return valClasses;
+ }
+
+ /**
+ * @return Fields.
+ */
+ public Map<String, Map<String, String>> getFields() {
+ return fields;
+ }
+
+ /**
+ * @return Indexes.
+ */
+ public Map<String, List<VisorCacheSqlIndexMetadata>> getIndexes() {
+ return indexes;
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void writeExternalData(ObjectOutput out) throws IOException {
+ U.writeString(out, cacheName);
+ U.writeCollection(out, types);
+ IgfsUtils.writeStringMap(out, keyClasses);
+ IgfsUtils.writeStringMap(out, valClasses);
+ U.writeMap(out, fields);
+ U.writeMap(out, indexes);
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void readExternalData(byte protoVer, ObjectInput in) throws IOException, ClassNotFoundException {
+ cacheName = U.readString(in);
+ types = U.readList(in);
+ keyClasses = IgfsUtils.readStringMap(in);
+ valClasses = IgfsUtils.readStringMap(in);
+ fields = U.readMap(in);
+ indexes = U.readMap(in);
+ }
+
+ /** {@inheritDoc} */
+ @Override public String toString() {
+ return S.toString(VisorCacheSqlMetadata.class, this);
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/12dfe9e8/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheStartArg.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheStartArg.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheStartArg.java
new file mode 100644
index 0000000..a2fd518
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheStartArg.java
@@ -0,0 +1,100 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.visor.cache;
+
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+import org.apache.ignite.internal.util.typedef.internal.S;
+import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.internal.visor.VisorDataTransferObject;
+
+/**
+ * Cache start arguments.
+ */
+public class VisorCacheStartArg extends VisorDataTransferObject {
+ /** */
+ private static final long serialVersionUID = 0L;
+
+ /** */
+ private boolean near;
+
+ /** */
+ private String name;
+
+ /** */
+ private String cfg;
+
+ /**
+ * Default constructor.
+ */
+ public VisorCacheStartArg() {
+ // No-op.
+ }
+
+ /**
+ * @param near {@code true} if near cache should be started.
+ * @param name Name for near cache.
+ * @param cfg Cache XML configuration.
+ */
+ public VisorCacheStartArg(boolean near, String name, String cfg) {
+ this.near = near;
+ this.name = name;
+ this.cfg = cfg;
+ }
+
+ /**
+ * @return {@code true} if near cache should be started.
+ */
+ public boolean isNear() {
+ return near;
+ }
+
+ /**
+ * @return Name for near cache.
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * @return Cache XML configuration.
+ */
+ public String getConfiguration() {
+ return cfg;
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void writeExternalData(ObjectOutput out) throws IOException {
+ out.writeBoolean(near);
+ U.writeString(out, name);
+ U.writeString(out, cfg);
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void readExternalData(byte protoVer, ObjectInput in) throws IOException, ClassNotFoundException {
+ near = in.readBoolean();
+ name = U.readString(in);
+ cfg = U.readString(in);
+ }
+
+ /** {@inheritDoc} */
+ @Override public String toString() {
+ return S.toString(VisorCacheStartArg.class, this);
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/12dfe9e8/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheStartTask.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheStartTask.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheStartTask.java
index 758f39a..af51a38 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheStartTask.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheStartTask.java
@@ -19,7 +19,6 @@ package org.apache.ignite.internal.visor.cache;
import java.io.ByteArrayInputStream;
import java.io.IOException;
-import java.io.Serializable;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -41,8 +40,7 @@ import org.jetbrains.annotations.Nullable;
* Task that start cache or near cache with specified configuration.
*/
@GridInternal
-public class VisorCacheStartTask extends
- VisorMultiNodeTask<VisorCacheStartTask.VisorCacheStartArg, Map<UUID, IgniteException>, Void> {
+public class VisorCacheStartTask extends VisorMultiNodeTask<VisorCacheStartArg, Map<UUID, IgniteException>, Void> {
/** */
private static final long serialVersionUID = 0L;
@@ -63,56 +61,6 @@ public class VisorCacheStartTask extends
}
/**
- * Cache start arguments.
- */
- @SuppressWarnings("PublicInnerClass")
- public static class VisorCacheStartArg implements Serializable {
- /** */
- private static final long serialVersionUID = 0L;
-
- /** */
- private final boolean near;
-
- /** */
- private final String name;
-
- /** */
- private final String cfg;
-
- /**
- * @param near {@code true} if near cache should be started.
- * @param name Name for near cache.
- * @param cfg Cache XML configuration.
- */
- public VisorCacheStartArg(boolean near, String name, String cfg) {
- this.near = near;
- this.name = name;
- this.cfg = cfg;
- }
-
- /**
- * @return {@code true} if near cache should be started.
- */
- public boolean near() {
- return near;
- }
-
- /**
- * @return Name for near cache.
- */
- public String name() {
- return name;
- }
-
- /**
- * @return Cache XML configuration.
- */
- public String configuration() {
- return cfg;
- }
- }
-
- /**
* Job that start cache or near cache with specified configuration.
*/
private static class VisorCacheStartJob extends VisorJob<VisorCacheStartArg, Void> {
@@ -131,15 +79,15 @@ public class VisorCacheStartTask extends
/** {@inheritDoc} */
@Override protected Void run(VisorCacheStartArg arg) throws IgniteException {
- String cfg = arg.configuration();
+ String cfg = arg.getConfiguration();
assert !F.isEmpty(cfg);
try (ByteArrayInputStream bais = new ByteArrayInputStream(cfg.getBytes())) {
- if (arg.near) {
+ if (arg.isNear()) {
NearCacheConfiguration nearCfg = Ignition.loadSpringBean(bais, "nearCacheConfiguration");
- ignite.getOrCreateNearCache(VisorTaskUtils.unescapeName(arg.name()), nearCfg);
+ ignite.getOrCreateNearCache(VisorTaskUtils.unescapeName(arg.getName()), nearCfg);
}
else {
CacheConfiguration cacheCfg = Ignition.loadSpringBean(bais, "cacheConfiguration");