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 2018/04/25 18:01:25 UTC
ignite git commit: IGNITE-8372 ZookeeperClusterNode was made
Externalizable to preserve serializing local node's metrics - Fixes #3907.
Repository: ignite
Updated Branches:
refs/heads/master 1fb236935 -> 6bf7532d8
IGNITE-8372 ZookeeperClusterNode was made Externalizable to preserve serializing local node's metrics - Fixes #3907.
Signed-off-by: Alexey Goncharuk <al...@gmail.com>
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/6bf7532d
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/6bf7532d
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/6bf7532d
Branch: refs/heads/master
Commit: 6bf7532d8eea481c829200861fd116d64c6f1b13
Parents: 1fb2369
Author: Sergey Chugunov <se...@gmail.com>
Authored: Wed Apr 25 20:59:25 2018 +0300
Committer: Alexey Goncharuk <al...@gmail.com>
Committed: Wed Apr 25 20:59:25 2018 +0300
----------------------------------------------------------------------
.../zk/internal/ZookeeperClusterNode.java | 56 +++++++++++++++++++-
.../zk/internal/ZookeeperDiscoveryImpl.java | 5 --
2 files changed, 55 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/6bf7532d/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperClusterNode.java
----------------------------------------------------------------------
diff --git a/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperClusterNode.java b/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperClusterNode.java
index 3cb5fad..2fe3052 100644
--- a/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperClusterNode.java
+++ b/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperClusterNode.java
@@ -17,6 +17,10 @@
package org.apache.ignite.spi.discovery.zk.internal;
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
import java.io.Serializable;
import java.util.Collection;
import java.util.Collections;
@@ -25,6 +29,7 @@ import java.util.Map;
import java.util.UUID;
import org.apache.ignite.cache.CacheMetrics;
import org.apache.ignite.cluster.ClusterMetrics;
+import org.apache.ignite.internal.ClusterMetricsSnapshot;
import org.apache.ignite.internal.IgniteNodeAttributes;
import org.apache.ignite.internal.managers.discovery.IgniteClusterNode;
import org.apache.ignite.internal.util.tostring.GridToStringExclude;
@@ -41,7 +46,7 @@ import static org.apache.ignite.internal.IgniteNodeAttributes.ATTR_NODE_CONSISTE
/**
* Zookeeper Cluster Node.
*/
-public class ZookeeperClusterNode implements IgniteClusterNode, Serializable, Comparable<ZookeeperClusterNode> {
+public class ZookeeperClusterNode implements IgniteClusterNode, Externalizable, Comparable<ZookeeperClusterNode> {
/** */
private static final long serialVersionUID = 0L;
@@ -99,6 +104,11 @@ public class ZookeeperClusterNode implements IgniteClusterNode, Serializable, Co
@GridToStringExclude
private transient volatile boolean daemonInit;
+ /** */
+ public ZookeeperClusterNode() {
+ //No-op
+ }
+
/**
* @param id Node ID.
* @param addrs Node addresses.
@@ -326,6 +336,50 @@ public class ZookeeperClusterNode implements IgniteClusterNode, Serializable, Co
}
/** {@inheritDoc} */
+ @Override public void writeExternal(ObjectOutput out) throws IOException {
+ U.writeUuid(out, id);
+ out.writeObject(consistentId);
+ out.writeLong(internalId);
+ out.writeLong(order);
+ out.writeObject(ver);
+ U.writeMap(out, attrs);
+ U.writeCollection(out, addrs);
+ U.writeCollection(out, hostNames);
+ out.writeLong(sesTimeout);
+ out.writeByte(flags);
+
+ // Cluster metrics
+ byte[] mtr = null;
+
+ ClusterMetrics metrics = this.metrics;
+
+ if (metrics != null)
+ mtr = ClusterMetricsSnapshot.serialize(metrics);
+
+ U.writeByteArray(out, mtr);
+ }
+
+ /** {@inheritDoc} */
+ @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+ id = U.readUuid(in);
+ consistentId = (Serializable) in.readObject();
+ internalId = in.readLong();
+ order = in.readLong();
+ ver = (IgniteProductVersion) in.readObject();
+ attrs = U.sealMap(U.readMap(in));
+ addrs = U.readCollection(in);
+ hostNames = U.readCollection(in);
+ sesTimeout = in.readLong();
+ flags = in.readByte();
+
+ // Cluster metrics
+ byte[] mtr = U.readByteArray(in);
+
+ if (mtr != null)
+ metrics = ClusterMetricsSnapshot.deserialize(mtr, 0);
+ }
+
+ /** {@inheritDoc} */
@Override public int compareTo(@Nullable ZookeeperClusterNode node) {
if (node == null)
return 1;
http://git-wip-us.apache.org/repos/asf/ignite/blob/6bf7532d/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryImpl.java
----------------------------------------------------------------------
diff --git a/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryImpl.java b/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryImpl.java
index 74670ac..0604458 100644
--- a/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryImpl.java
+++ b/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryImpl.java
@@ -51,7 +51,6 @@ import org.apache.ignite.IgniteSystemProperties;
import org.apache.ignite.cluster.ClusterNode;
import org.apache.ignite.configuration.CommunicationFailureResolver;
import org.apache.ignite.events.EventType;
-import org.apache.ignite.internal.ClusterMetricsSnapshot;
import org.apache.ignite.internal.IgniteClientDisconnectedCheckedException;
import org.apache.ignite.internal.IgniteFutureTimeoutCheckedException;
import org.apache.ignite.internal.IgniteInternalFuture;
@@ -2955,8 +2954,6 @@ public class ZookeeperDiscoveryImpl {
if (node.order() >= locNode.order())
break;
- node.setMetrics(new ClusterMetricsSnapshot());
-
rtState.top.addNode(node);
}
@@ -3448,8 +3445,6 @@ public class ZookeeperDiscoveryImpl {
joinedNode.order(joinedEvtData.topVer);
joinedNode.internalId(joinedEvtData.joinedInternalId);
- joinedNode.setMetrics(new ClusterMetricsSnapshot());
-
rtState.top.addNode(joinedNode);
final List<ClusterNode> topSnapshot = rtState.top.topologySnapshot();