You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ag...@apache.org on 2017/06/02 17:13:33 UTC
[20/49] ignite git commit: Added Affinity topology version and
Pending exchanges to Visor data collector task. (cherry picked from commit
7402ea1)
Added Affinity topology version and Pending exchanges to Visor data collector task.
(cherry picked from commit 7402ea1)
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/b29b918a
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/b29b918a
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/b29b918a
Branch: refs/heads/ignite-5398
Commit: b29b918aece6a99a12c8bf3f21c5419a9d97de25
Parents: d4c9997
Author: Alexey Kuznetsov <ak...@apache.org>
Authored: Fri May 19 14:18:23 2017 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Fri May 19 15:01:23 2017 +0700
----------------------------------------------------------------------
.../node/VisorAffinityTopologyVersion.java | 72 ++++++++++++++++++++
.../visor/node/VisorNodeDataCollectorJob.java | 6 ++
.../node/VisorNodeDataCollectorJobResult.java | 40 +++++++++++
.../visor/node/VisorNodeDataCollectorTask.java | 4 ++
.../node/VisorNodeDataCollectorTaskResult.java | 31 ++++++++-
5 files changed, 152 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/b29b918a/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorAffinityTopologyVersion.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorAffinityTopologyVersion.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorAffinityTopologyVersion.java
new file mode 100644
index 0000000..b3f6c48
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorAffinityTopologyVersion.java
@@ -0,0 +1,72 @@
+/*
+ * 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.node;
+
+import java.io.Serializable;
+import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion;
+import org.apache.ignite.internal.util.typedef.internal.S;
+
+/**
+ * Data transfer object for {@link AffinityTopologyVersion}
+ */
+public class VisorAffinityTopologyVersion implements Serializable {
+ /** */
+ private static final long serialVersionUID = 0L;
+
+ /** */
+ private long topVer;
+
+ /** */
+ private int minorTopVer;
+
+ /**
+ * Default constructor.
+ */
+ public VisorAffinityTopologyVersion() {
+ // No-op.
+ }
+
+ /**
+ * Create data transfer object for affinity topology version.
+ *
+ * @param affTopVer Affinity topology version.
+ */
+ public VisorAffinityTopologyVersion(AffinityTopologyVersion affTopVer) {
+ topVer = affTopVer.topologyVersion();
+ minorTopVer = affTopVer.minorTopologyVersion();
+ }
+
+ /**
+ * @return Topology version.
+ */
+ public long getTopologyVersion() {
+ return topVer;
+ }
+
+ /**
+ * @return Minor topology version.
+ */
+ public int getMinorTopologyVersion() {
+ return minorTopVer;
+ }
+
+ /** {@inheritDoc} */
+ @Override public String toString() {
+ return S.toString(VisorAffinityTopologyVersion.class, this);
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/b29b918a/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorNodeDataCollectorJob.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorNodeDataCollectorJob.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorNodeDataCollectorJob.java
index 694bc94..bfc3ac8 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorNodeDataCollectorJob.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorNodeDataCollectorJob.java
@@ -24,6 +24,7 @@ import org.apache.ignite.cluster.ClusterNode;
import org.apache.ignite.configuration.FileSystemConfiguration;
import org.apache.ignite.configuration.IgniteConfiguration;
import org.apache.ignite.internal.managers.discovery.GridDiscoveryManager;
+import org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager;
import org.apache.ignite.internal.processors.igfs.IgfsProcessorAdapter;
import org.apache.ignite.internal.util.ipc.IpcServerEndpoint;
import org.apache.ignite.internal.util.typedef.internal.S;
@@ -236,6 +237,11 @@ public class VisorNodeDataCollectorJob extends VisorJob<VisorNodeDataCollectorTa
VisorNodeDataCollectorTaskArg arg) {
res.gridName(ignite.name());
+ GridCachePartitionExchangeManager<Object, Object> exchange = ignite.context().cache().context().exchange();
+
+ res.readyAffinityVersion(new VisorAffinityTopologyVersion(exchange.readyAffinityVersion()));
+ res.hasPendingExchange(exchange.hasPendingExchange());
+
res.topologyVersion(ignite.cluster().topologyVersion());
long start0 = U.currentTimeMillis();
http://git-wip-us.apache.org/repos/asf/ignite/blob/b29b918a/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorNodeDataCollectorJobResult.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorNodeDataCollectorJobResult.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorNodeDataCollectorJobResult.java
index 2c28c5e..d129e5f 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorNodeDataCollectorJobResult.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorNodeDataCollectorJobResult.java
@@ -20,6 +20,7 @@ package org.apache.ignite.internal.visor.node;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
+import org.apache.ignite.internal.util.typedef.internal.S;
import org.apache.ignite.internal.visor.cache.VisorCache;
import org.apache.ignite.internal.visor.event.VisorGridEvent;
import org.apache.ignite.internal.visor.igfs.VisorIgfs;
@@ -65,6 +66,12 @@ public class VisorNodeDataCollectorJobResult implements Serializable {
/** Errors count. */
private long errCnt;
+ /** Topology version of latest completed partition exchange. */
+ private VisorAffinityTopologyVersion readyTopVer;
+
+ /** Whether pending exchange future exists. */
+ private boolean hasPendingExchange;
+
/**
* @return Grid name.
*/
@@ -190,4 +197,37 @@ public class VisorNodeDataCollectorJobResult implements Serializable {
public void errorCount(long errCnt) {
this.errCnt = errCnt;
}
+
+ /**
+ * @return Topology version of latest completed partition exchange.
+ */
+ public VisorAffinityTopologyVersion readyAffinityVersion() {
+ return readyTopVer;
+ }
+
+ /**
+ * @param readyTopVer Topology version of latest completed partition exchange.
+ */
+ public void readyAffinityVersion(VisorAffinityTopologyVersion readyTopVer) {
+ this.readyTopVer = readyTopVer;
+ }
+
+ /**
+ * @return Whether pending exchange future exists.
+ */
+ public boolean hasPendingExchange() {
+ return hasPendingExchange;
+ }
+
+ /**
+ * @param hasPendingExchange Whether pending exchange future exists.
+ */
+ public void hasPendingExchange(boolean hasPendingExchange) {
+ this.hasPendingExchange = hasPendingExchange;
+ }
+
+ /** {@inheritDoc} */
+ @Override public String toString() {
+ return S.toString(VisorNodeDataCollectorJobResult.class, this);
+ }
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/b29b918a/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorNodeDataCollectorTask.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorNodeDataCollectorTask.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorNodeDataCollectorTask.java
index 0880ad7..061e2a7 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorNodeDataCollectorTask.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorNodeDataCollectorTask.java
@@ -113,5 +113,9 @@ public class VisorNodeDataCollectorTask extends VisorMultiNodeTask<VisorNodeData
if (jobRes.igfssEx() != null)
taskRes.igfssEx().put(nid, new VisorExceptionWrapper(jobRes.igfssEx()));
+
+ taskRes.readyAffinityVersions().put(nid, jobRes.readyAffinityVersion());
+
+ taskRes.pendingExchanges().put(nid, jobRes.hasPendingExchange());
}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/b29b918a/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorNodeDataCollectorTaskResult.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorNodeDataCollectorTaskResult.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorNodeDataCollectorTaskResult.java
index c6fe418..673c247 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorNodeDataCollectorTaskResult.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorNodeDataCollectorTaskResult.java
@@ -25,6 +25,7 @@ import java.util.List;
import java.util.Map;
import java.util.UUID;
import org.apache.ignite.internal.LessNamingBean;
+import org.apache.ignite.internal.util.typedef.internal.S;
import org.apache.ignite.internal.visor.cache.VisorCache;
import org.apache.ignite.internal.visor.event.VisorGridEvent;
import org.apache.ignite.internal.visor.igfs.VisorIgfs;
@@ -77,6 +78,13 @@ public class VisorNodeDataCollectorTaskResult implements Serializable, LessNamin
/** Exceptions caught during collecting IGFS from nodes. */
private final Map<UUID, VisorExceptionWrapper> igfssEx = new HashMap<>();
+ /** Topology version of latest completed partition exchange from nodes. */
+ private Map<UUID, VisorAffinityTopologyVersion> readyTopVers = new HashMap<>();
+
+ /** Whether pending exchange future exists from nodes. */
+ private Map<UUID, Boolean> pendingExchanges = new HashMap<>();
+
+
/**
* @return {@code true} If no data was collected.
*/
@@ -92,7 +100,9 @@ public class VisorNodeDataCollectorTaskResult implements Serializable, LessNamin
cachesEx.isEmpty() &&
igfss.isEmpty() &&
igfsEndpoints.isEmpty() &&
- igfssEx.isEmpty();
+ igfssEx.isEmpty() &&
+ readyTopVers.isEmpty() &&
+ pendingExchanges.isEmpty();
}
/**
@@ -192,4 +202,23 @@ public class VisorNodeDataCollectorTaskResult implements Serializable, LessNamin
public Map<UUID, Long> errorCounts() {
return errCnts;
}
+
+ /**
+ * @return Topology version of latest completed partition exchange from nodes.
+ */
+ public Map<UUID, VisorAffinityTopologyVersion> readyAffinityVersions() {
+ return readyTopVers;
+ }
+
+ /**
+ * @return Whether pending exchange future exists from nodes.
+ */
+ public Map<UUID, Boolean> pendingExchanges() {
+ return pendingExchanges;
+ }
+
+ /** {@inheritDoc} */
+ @Override public String toString() {
+ return S.toString(VisorNodeDataCollectorTaskResult.class, this);
+ }
}