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/26 12:45:09 UTC
[2/3] ignite git commit: ignite-4799 TcpDiscoverySpi: removed
missedHeartbeats properties,
heartbeatFrequency (instead use IgiteConfiguration.metricsUpdateFrequency).
Added IgiteConfiguration.clientFailureDetectionTimeout.
http://git-wip-us.apache.org/repos/asf/ignite/blob/6998785a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryHeartbeatMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryHeartbeatMessage.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryHeartbeatMessage.java
deleted file mode 100644
index 0ae253a..0000000
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryHeartbeatMessage.java
+++ /dev/null
@@ -1,338 +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.spi.discovery.tcp.messages;
-
-import java.io.Externalizable;
-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.HashSet;
-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.util.tostring.GridToStringExclude;
-import org.apache.ignite.internal.util.typedef.C1;
-import org.apache.ignite.internal.util.typedef.F;
-import org.apache.ignite.internal.util.typedef.T2;
-import org.apache.ignite.internal.util.typedef.internal.S;
-import org.apache.ignite.internal.util.typedef.internal.U;
-
-/**
- * Heartbeat message.
- * <p>
- * It is sent by coordinator node across the ring once a configured period.
- * Message makes two passes:
- * <ol>
- * <li>During first pass, all nodes add their metrics to the message and
- * update local metrics with metrics currently present in the message.</li>
- * <li>During second pass, all nodes update all metrics present in the message
- * and remove their own metrics from the message.</li>
- * </ol>
- * When message reaches coordinator second time it is discarded (it finishes the
- * second pass).
- */
-@TcpDiscoveryRedirectToClient
-public class TcpDiscoveryHeartbeatMessage extends TcpDiscoveryAbstractMessage {
- /** */
- private static final long serialVersionUID = 0L;
-
- /** Map to store nodes metrics. */
- @GridToStringExclude
- private final Map<UUID, MetricsSet> metrics = new HashMap<>();
-
- /** Client node IDs. */
- private final Collection<UUID> clientNodeIds = new HashSet<>();
-
- /** Cahce metrics by node. */
- @GridToStringExclude
- private final Map<UUID, Map<Integer, CacheMetrics>> cacheMetrics = new HashMap<>();
-
- /**
- * Constructor.
- *
- * @param creatorNodeId Creator node.
- */
- public TcpDiscoveryHeartbeatMessage(UUID creatorNodeId) {
- super(creatorNodeId);
- }
-
- /**
- * Sets metrics for particular node.
- *
- * @param nodeId Node ID.
- * @param metrics Node metrics.
- */
- public void setMetrics(UUID nodeId, ClusterMetrics metrics) {
- assert nodeId != null;
- assert metrics != null;
- assert !this.metrics.containsKey(nodeId);
-
- this.metrics.put(nodeId, new MetricsSet(metrics));
- }
-
- /**
- * Sets cache metrics for particular node.
- *
- * @param nodeId Node ID.
- * @param metrics Node cache metrics.
- */
- public void setCacheMetrics(UUID nodeId, Map<Integer, CacheMetrics> metrics) {
- assert nodeId != null;
- assert metrics != null;
- assert !this.cacheMetrics.containsKey(nodeId);
-
- if (!F.isEmpty(metrics))
- this.cacheMetrics.put(nodeId, metrics);
- }
-
- /**
- * Sets metrics for a client node.
- *
- * @param nodeId Server node ID.
- * @param clientNodeId Client node ID.
- * @param metrics Node metrics.
- */
- public void setClientMetrics(UUID nodeId, UUID clientNodeId, ClusterMetrics metrics) {
- assert nodeId != null;
- assert clientNodeId != null;
- assert metrics != null;
- assert this.metrics.containsKey(nodeId);
-
- this.metrics.get(nodeId).addClientMetrics(clientNodeId, metrics);
- }
-
- /**
- * Removes metrics for particular node from the message.
- *
- * @param nodeId Node ID.
- */
- public void removeMetrics(UUID nodeId) {
- assert nodeId != null;
-
- metrics.remove(nodeId);
- }
-
- /**
- * Removes cache metrics for particular node from the message.
- *
- * @param nodeId Node ID.
- */
- public void removeCacheMetrics(UUID nodeId) {
- assert nodeId != null;
-
- cacheMetrics.remove(nodeId);
- }
-
- /**
- * Gets metrics map.
- *
- * @return Metrics map.
- */
- public Map<UUID, MetricsSet> metrics() {
- return metrics;
- }
-
- /**
- * Gets cache metrics map.
- *
- * @return Cache metrics map.
- */
- public Map<UUID, Map<Integer, CacheMetrics>> cacheMetrics() {
- return cacheMetrics;
- }
-
- /**
- * @return {@code True} if this message contains metrics.
- */
- public boolean hasMetrics() {
- return !metrics.isEmpty();
- }
-
- /**
- * @return {@code True} this message contains cache metrics.
- */
- public boolean hasCacheMetrics() {
- return !cacheMetrics.isEmpty();
- }
-
- /**
- * @return {@code True} if this message contains metrics.
- */
- public boolean hasMetrics(UUID nodeId) {
- assert nodeId != null;
-
- return metrics.get(nodeId) != null;
- }
-
- /**
- * @param nodeId Node ID.
- *
- * @return {@code True} if this message contains cache metrics for particular node.
- */
- public boolean hasCacheMetrics(UUID nodeId) {
- assert nodeId != null;
-
- return cacheMetrics.get(nodeId) != null;
- }
-
- /**
- * Gets client node IDs for particular node.
- *
- * @return Client node IDs.
- */
- public Collection<UUID> clientNodeIds() {
- return clientNodeIds;
- }
-
- /**
- * Adds client node ID.
- *
- * @param clientNodeId Client node ID.
- */
- public void addClientNodeId(UUID clientNodeId) {
- clientNodeIds.add(clientNodeId);
- }
-
- /** {@inheritDoc} */
- @Override public boolean traceLogLevel() {
- return true;
- }
-
- /** {@inheritDoc} */
- @Override public boolean highPriority() {
- return true;
- }
-
- /** {@inheritDoc} */
- @Override public String toString() {
- return S.toString(TcpDiscoveryHeartbeatMessage.class, this, "super", super.toString());
- }
-
- /**
- * @param nodeId Node ID.
- * @param metrics Metrics.
- * @return Serialized metrics.
- */
- private static byte[] serializeMetrics(UUID nodeId, ClusterMetrics metrics) {
- assert nodeId != null;
- assert metrics != null;
-
- byte[] buf = new byte[16 + ClusterMetricsSnapshot.METRICS_SIZE];
-
- U.longToBytes(nodeId.getMostSignificantBits(), buf, 0);
- U.longToBytes(nodeId.getLeastSignificantBits(), buf, 8);
-
- ClusterMetricsSnapshot.serialize(buf, 16, metrics);
-
- return buf;
- }
-
- /**
- */
- @SuppressWarnings("PublicInnerClass")
- public static class MetricsSet implements Externalizable {
- /** */
- private static final long serialVersionUID = 0L;
-
- /** Metrics. */
- private byte[] metrics;
-
- /** Client metrics. */
- private Collection<byte[]> clientMetrics;
-
- /**
- */
- public MetricsSet() {
- // No-op.
- }
-
- /**
- * @param metrics Metrics.
- */
- public MetricsSet(ClusterMetrics metrics) {
- assert metrics != null;
-
- this.metrics = ClusterMetricsSnapshot.serialize(metrics);
- }
-
- /**
- * @return Deserialized metrics.
- */
- public ClusterMetrics metrics() {
- return ClusterMetricsSnapshot.deserialize(metrics, 0);
- }
-
- /**
- * @return Client metrics.
- */
- public Collection<T2<UUID, ClusterMetrics>> clientMetrics() {
- return F.viewReadOnly(clientMetrics, new C1<byte[], T2<UUID, ClusterMetrics>>() {
- @Override public T2<UUID, ClusterMetrics> apply(byte[] bytes) {
- UUID nodeId = new UUID(U.bytesToLong(bytes, 0), U.bytesToLong(bytes, 8));
-
- return new T2<>(nodeId, ClusterMetricsSnapshot.deserialize(bytes, 16));
- }
- });
- }
-
- /**
- * @param nodeId Client node ID.
- * @param metrics Client metrics.
- */
- private void addClientMetrics(UUID nodeId, ClusterMetrics metrics) {
- assert nodeId != null;
- assert metrics != null;
-
- if (clientMetrics == null)
- clientMetrics = new ArrayList<>();
-
- clientMetrics.add(serializeMetrics(nodeId, metrics));
- }
-
- /** {@inheritDoc} */
- @Override public void writeExternal(ObjectOutput out) throws IOException {
- U.writeByteArray(out, metrics);
-
- out.writeInt(clientMetrics != null ? clientMetrics.size() : -1);
-
- if (clientMetrics != null) {
- for (byte[] arr : clientMetrics)
- U.writeByteArray(out, arr);
- }
- }
-
- /** {@inheritDoc} */
- @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
- metrics = U.readByteArray(in);
-
- int clientMetricsSize = in.readInt();
-
- if (clientMetricsSize >= 0) {
- clientMetrics = new ArrayList<>(clientMetricsSize);
-
- for (int i = 0; i < clientMetricsSize; i++)
- clientMetrics.add(U.readByteArray(in));
- }
- }
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/6998785a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryMetricsUpdateMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryMetricsUpdateMessage.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryMetricsUpdateMessage.java
new file mode 100644
index 0000000..9bf33cf
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryMetricsUpdateMessage.java
@@ -0,0 +1,338 @@
+/*
+ * 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.spi.discovery.tcp.messages;
+
+import java.io.Externalizable;
+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.HashSet;
+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.util.tostring.GridToStringExclude;
+import org.apache.ignite.internal.util.typedef.C1;
+import org.apache.ignite.internal.util.typedef.F;
+import org.apache.ignite.internal.util.typedef.T2;
+import org.apache.ignite.internal.util.typedef.internal.S;
+import org.apache.ignite.internal.util.typedef.internal.U;
+
+/**
+ * Metrics update message.
+ * <p>
+ * It is sent by coordinator node across the ring once a configured period.
+ * Message makes two passes:
+ * <ol>
+ * <li>During first pass, all nodes add their metrics to the message and
+ * update local metrics with metrics currently present in the message.</li>
+ * <li>During second pass, all nodes update all metrics present in the message
+ * and remove their own metrics from the message.</li>
+ * </ol>
+ * When message reaches coordinator second time it is discarded (it finishes the
+ * second pass).
+ */
+@TcpDiscoveryRedirectToClient
+public class TcpDiscoveryMetricsUpdateMessage extends TcpDiscoveryAbstractMessage {
+ /** */
+ private static final long serialVersionUID = 0L;
+
+ /** Map to store nodes metrics. */
+ @GridToStringExclude
+ private final Map<UUID, MetricsSet> metrics = new HashMap<>();
+
+ /** Client node IDs. */
+ private final Collection<UUID> clientNodeIds = new HashSet<>();
+
+ /** Cahce metrics by node. */
+ @GridToStringExclude
+ private final Map<UUID, Map<Integer, CacheMetrics>> cacheMetrics = new HashMap<>();
+
+ /**
+ * Constructor.
+ *
+ * @param creatorNodeId Creator node.
+ */
+ public TcpDiscoveryMetricsUpdateMessage(UUID creatorNodeId) {
+ super(creatorNodeId);
+ }
+
+ /**
+ * Sets metrics for particular node.
+ *
+ * @param nodeId Node ID.
+ * @param metrics Node metrics.
+ */
+ public void setMetrics(UUID nodeId, ClusterMetrics metrics) {
+ assert nodeId != null;
+ assert metrics != null;
+ assert !this.metrics.containsKey(nodeId);
+
+ this.metrics.put(nodeId, new MetricsSet(metrics));
+ }
+
+ /**
+ * Sets cache metrics for particular node.
+ *
+ * @param nodeId Node ID.
+ * @param metrics Node cache metrics.
+ */
+ public void setCacheMetrics(UUID nodeId, Map<Integer, CacheMetrics> metrics) {
+ assert nodeId != null;
+ assert metrics != null;
+ assert !this.cacheMetrics.containsKey(nodeId);
+
+ if (!F.isEmpty(metrics))
+ this.cacheMetrics.put(nodeId, metrics);
+ }
+
+ /**
+ * Sets metrics for a client node.
+ *
+ * @param nodeId Server node ID.
+ * @param clientNodeId Client node ID.
+ * @param metrics Node metrics.
+ */
+ public void setClientMetrics(UUID nodeId, UUID clientNodeId, ClusterMetrics metrics) {
+ assert nodeId != null;
+ assert clientNodeId != null;
+ assert metrics != null;
+ assert this.metrics.containsKey(nodeId);
+
+ this.metrics.get(nodeId).addClientMetrics(clientNodeId, metrics);
+ }
+
+ /**
+ * Removes metrics for particular node from the message.
+ *
+ * @param nodeId Node ID.
+ */
+ public void removeMetrics(UUID nodeId) {
+ assert nodeId != null;
+
+ metrics.remove(nodeId);
+ }
+
+ /**
+ * Removes cache metrics for particular node from the message.
+ *
+ * @param nodeId Node ID.
+ */
+ public void removeCacheMetrics(UUID nodeId) {
+ assert nodeId != null;
+
+ cacheMetrics.remove(nodeId);
+ }
+
+ /**
+ * Gets metrics map.
+ *
+ * @return Metrics map.
+ */
+ public Map<UUID, MetricsSet> metrics() {
+ return metrics;
+ }
+
+ /**
+ * Gets cache metrics map.
+ *
+ * @return Cache metrics map.
+ */
+ public Map<UUID, Map<Integer, CacheMetrics>> cacheMetrics() {
+ return cacheMetrics;
+ }
+
+ /**
+ * @return {@code True} if this message contains metrics.
+ */
+ public boolean hasMetrics() {
+ return !metrics.isEmpty();
+ }
+
+ /**
+ * @return {@code True} this message contains cache metrics.
+ */
+ public boolean hasCacheMetrics() {
+ return !cacheMetrics.isEmpty();
+ }
+
+ /**
+ * @return {@code True} if this message contains metrics.
+ */
+ public boolean hasMetrics(UUID nodeId) {
+ assert nodeId != null;
+
+ return metrics.get(nodeId) != null;
+ }
+
+ /**
+ * @param nodeId Node ID.
+ *
+ * @return {@code True} if this message contains cache metrics for particular node.
+ */
+ public boolean hasCacheMetrics(UUID nodeId) {
+ assert nodeId != null;
+
+ return cacheMetrics.get(nodeId) != null;
+ }
+
+ /**
+ * Gets client node IDs for particular node.
+ *
+ * @return Client node IDs.
+ */
+ public Collection<UUID> clientNodeIds() {
+ return clientNodeIds;
+ }
+
+ /**
+ * Adds client node ID.
+ *
+ * @param clientNodeId Client node ID.
+ */
+ public void addClientNodeId(UUID clientNodeId) {
+ clientNodeIds.add(clientNodeId);
+ }
+
+ /** {@inheritDoc} */
+ @Override public boolean traceLogLevel() {
+ return true;
+ }
+
+ /** {@inheritDoc} */
+ @Override public boolean highPriority() {
+ return true;
+ }
+
+ /** {@inheritDoc} */
+ @Override public String toString() {
+ return S.toString(TcpDiscoveryMetricsUpdateMessage.class, this, "super", super.toString());
+ }
+
+ /**
+ * @param nodeId Node ID.
+ * @param metrics Metrics.
+ * @return Serialized metrics.
+ */
+ private static byte[] serializeMetrics(UUID nodeId, ClusterMetrics metrics) {
+ assert nodeId != null;
+ assert metrics != null;
+
+ byte[] buf = new byte[16 + ClusterMetricsSnapshot.METRICS_SIZE];
+
+ U.longToBytes(nodeId.getMostSignificantBits(), buf, 0);
+ U.longToBytes(nodeId.getLeastSignificantBits(), buf, 8);
+
+ ClusterMetricsSnapshot.serialize(buf, 16, metrics);
+
+ return buf;
+ }
+
+ /**
+ */
+ @SuppressWarnings("PublicInnerClass")
+ public static class MetricsSet implements Externalizable {
+ /** */
+ private static final long serialVersionUID = 0L;
+
+ /** Metrics. */
+ private byte[] metrics;
+
+ /** Client metrics. */
+ private Collection<byte[]> clientMetrics;
+
+ /**
+ */
+ public MetricsSet() {
+ // No-op.
+ }
+
+ /**
+ * @param metrics Metrics.
+ */
+ public MetricsSet(ClusterMetrics metrics) {
+ assert metrics != null;
+
+ this.metrics = ClusterMetricsSnapshot.serialize(metrics);
+ }
+
+ /**
+ * @return Deserialized metrics.
+ */
+ public ClusterMetrics metrics() {
+ return ClusterMetricsSnapshot.deserialize(metrics, 0);
+ }
+
+ /**
+ * @return Client metrics.
+ */
+ public Collection<T2<UUID, ClusterMetrics>> clientMetrics() {
+ return F.viewReadOnly(clientMetrics, new C1<byte[], T2<UUID, ClusterMetrics>>() {
+ @Override public T2<UUID, ClusterMetrics> apply(byte[] bytes) {
+ UUID nodeId = new UUID(U.bytesToLong(bytes, 0), U.bytesToLong(bytes, 8));
+
+ return new T2<>(nodeId, ClusterMetricsSnapshot.deserialize(bytes, 16));
+ }
+ });
+ }
+
+ /**
+ * @param nodeId Client node ID.
+ * @param metrics Client metrics.
+ */
+ private void addClientMetrics(UUID nodeId, ClusterMetrics metrics) {
+ assert nodeId != null;
+ assert metrics != null;
+
+ if (clientMetrics == null)
+ clientMetrics = new ArrayList<>();
+
+ clientMetrics.add(serializeMetrics(nodeId, metrics));
+ }
+
+ /** {@inheritDoc} */
+ @Override public void writeExternal(ObjectOutput out) throws IOException {
+ U.writeByteArray(out, metrics);
+
+ out.writeInt(clientMetrics != null ? clientMetrics.size() : -1);
+
+ if (clientMetrics != null) {
+ for (byte[] arr : clientMetrics)
+ U.writeByteArray(out, arr);
+ }
+ }
+
+ /** {@inheritDoc} */
+ @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+ metrics = U.readByteArray(in);
+
+ int clientMetricsSize = in.readInt();
+
+ if (clientMetricsSize >= 0) {
+ clientMetrics = new ArrayList<>(clientMetricsSize);
+
+ for (int i = 0; i < clientMetricsSize; i++)
+ clientMetrics.add(U.readByteArray(in));
+ }
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/6998785a/modules/core/src/main/java/org/apache/ignite/spi/loadbalancing/adaptive/AdaptiveLoadBalancingSpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/loadbalancing/adaptive/AdaptiveLoadBalancingSpi.java b/modules/core/src/main/java/org/apache/ignite/spi/loadbalancing/adaptive/AdaptiveLoadBalancingSpi.java
index cfd4fc7..1a3a7fe 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/loadbalancing/adaptive/AdaptiveLoadBalancingSpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/loadbalancing/adaptive/AdaptiveLoadBalancingSpi.java
@@ -97,13 +97,13 @@ import static org.apache.ignite.events.EventType.EVT_TASK_FINISHED;
* You should tune these values based on the level of accuracy needed vs. the additional memory
* that would be required for storing metrics.
* <p>
- * You should also keep in mind that metrics for remote nodes are delayed (usually by the
- * heartbeat frequency). So if it is acceptable in your environment, set the heartbeat frequency
- * to be more inline with job execution time. Generally, the more often heartbeats between nodes
+ * You should also keep in mind that metrics for remote nodes are delayed (usually by the metrics
+ * update frequency). So if it is acceptable in your environment, set the metrics update frequency
+ * to be more inline with job execution time. Generally, the more often metrics update between nodes
* are exchanged, the more precise the metrics are. However, you should keep in mind that if
- * heartbeats are exchanged too often then it may create unnecessary traffic in the network.
- * Heartbeats (or metrics update frequency) can be configured via underlying
- * {@link org.apache.ignite.spi.discovery.DiscoverySpi} used in your grid.
+ * metrics update are exchanged too often then it may create unnecessary traffic in the network.
+ * Metrics update frequency can be configured via underlying
+ * {@link org.apache.ignite.configuration.IgniteConfiguration} used in your grid.
* <p>
* Here is an example of how probing can be implemented to use
* number of active and waiting jobs as probing mechanism:
http://git-wip-us.apache.org/repos/asf/ignite/blob/6998785a/modules/core/src/main/resources/META-INF/classnames.properties
----------------------------------------------------------------------
diff --git a/modules/core/src/main/resources/META-INF/classnames.properties b/modules/core/src/main/resources/META-INF/classnames.properties
index 2cc83a4..bc1e534 100644
--- a/modules/core/src/main/resources/META-INF/classnames.properties
+++ b/modules/core/src/main/resources/META-INF/classnames.properties
@@ -1962,7 +1962,7 @@ org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryAbstractMessage
org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryAuthFailedMessage
org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryCheckFailedMessage
org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryClientAckResponse
-org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryClientHeartbeatMessage
+org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryClientMetricsUpdateMessage
org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryClientPingRequest
org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryClientPingResponse
org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryClientReconnectMessage
@@ -1972,9 +1972,9 @@ org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryDiscardMessage
org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryDuplicateIdMessage
org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryHandshakeRequest
org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryHandshakeResponse
-org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryHeartbeatMessage
-org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryHeartbeatMessage$MetricsSet
-org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryHeartbeatMessage$MetricsSet$1
+org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryMetricsUpdateMessage
+org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryMetricsUpdateMessage$MetricsSet
+org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryMetricsUpdateMessage$MetricsSet$1
org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryJoinRequestMessage
org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryLoopbackProblemMessage
org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryNodeAddFinishedMessage
http://git-wip-us.apache.org/repos/asf/ignite/blob/6998785a/modules/core/src/test/config/load/dsi-load-base.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/load/dsi-load-base.xml b/modules/core/src/test/config/load/dsi-load-base.xml
index c57b5e0..7d7f2ba 100644
--- a/modules/core/src/test/config/load/dsi-load-base.xml
+++ b/modules/core/src/test/config/load/dsi-load-base.xml
@@ -48,10 +48,11 @@
<property name="ackTimeout" value="4000"/>
<property name="socketTimeout" value="4000"/>
- <property name="heartbeatFrequency" value="6000"/>
</bean>
</property>
+ <property name="metricsUpdateFrequency" value="6000"/>
+
<property name="lifecycleBeans" ref="lifecycleBeans"/>
<property name="peerClassLoadingEnabled" value="false"/>
http://git-wip-us.apache.org/repos/asf/ignite/blob/6998785a/modules/core/src/test/config/load/merge-sort-base.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/load/merge-sort-base.xml b/modules/core/src/test/config/load/merge-sort-base.xml
index aba0108..44b26bb 100644
--- a/modules/core/src/test/config/load/merge-sort-base.xml
+++ b/modules/core/src/test/config/load/merge-sort-base.xml
@@ -68,6 +68,10 @@
<property name="peerClassLoadingThreadPoolSize" value="100"/>
+ <property name="metricsUpdateFrequency" value="10000"/>
+
+ <property name="failureDetectionTimeout" value="60000"/>
+
<!-- Discovery SPI configuration. -->
<property name="discoverySpi">
<bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
@@ -75,9 +79,6 @@
<property name="socketTimeout" value="5000"/>
<property name="ackTimeout" value="5000"/>
- <property name="heartbeatFrequency" value="10000"/>
- <property name="maxMissedHeartbeats" value="6"/>
-
<property name="statisticsPrintFrequency" value="60000"/>
<property name="ipFinder">
http://git-wip-us.apache.org/repos/asf/ignite/blob/6998785a/modules/core/src/test/config/streamer/spring-streamer-base.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/streamer/spring-streamer-base.xml b/modules/core/src/test/config/streamer/spring-streamer-base.xml
index 746dd95..ddb96a7 100644
--- a/modules/core/src/test/config/streamer/spring-streamer-base.xml
+++ b/modules/core/src/test/config/streamer/spring-streamer-base.xml
@@ -66,12 +66,13 @@
<constructor-arg value="127.0.0.1"/>
</bean>
+ <property name="failureDetectionTimeout" value="45000"/>
+ <property name="metricsUpdateFrequency" value="15000"/>
+
<bean id="discoSpi" class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
<property name="ackTimeout" value="5000"/>
<property name="socketTimeout" value="5000"/>
<property name="reconnectCount" value="5"/>
- <property name="heartbeatFrequency" value="15000"/>
- <property name="maxMissedHeartbeats" value="3"/>
<property name="ipFinder">
<bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
http://git-wip-us.apache.org/repos/asf/ignite/blob/6998785a/modules/core/src/test/java/org/apache/ignite/GridTestJob.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/GridTestJob.java b/modules/core/src/test/java/org/apache/ignite/GridTestJob.java
index a4dbe53..3750585 100644
--- a/modules/core/src/test/java/org/apache/ignite/GridTestJob.java
+++ b/modules/core/src/test/java/org/apache/ignite/GridTestJob.java
@@ -20,6 +20,8 @@ package org.apache.ignite;
import org.apache.ignite.compute.ComputeJobAdapter;
import org.apache.ignite.resources.LoggerResource;
+import java.util.concurrent.CountDownLatch;
+
/**
* Test job.
*/
@@ -28,6 +30,8 @@ public class GridTestJob extends ComputeJobAdapter {
@LoggerResource
private IgniteLogger log;
+ CountDownLatch latch;
+
/** */
public GridTestJob() {
// No-op.
@@ -40,10 +44,25 @@ public class GridTestJob extends ComputeJobAdapter {
super(arg);
}
+ /**
+ * @param arg Job argument.
+ */
+ public GridTestJob(String arg, CountDownLatch latch) {
+ super(arg);
+ this.latch = latch;
+ }
+
/** {@inheritDoc} */
@Override public String execute() {
if (log.isDebugEnabled())
log.debug("Executing job [job=" + this + ", arg=" + argument(0) + ']');
+ if (latch != null) {
+ try {
+ latch.await();
+ } catch (InterruptedException e) {
+ // Nothing to do
+ }
+ }
return argument(0);
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/6998785a/modules/core/src/test/java/org/apache/ignite/GridTestTask.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/GridTestTask.java b/modules/core/src/test/java/org/apache/ignite/GridTestTask.java
index dbe34c6..8dc0569 100644
--- a/modules/core/src/test/java/org/apache/ignite/GridTestTask.java
+++ b/modules/core/src/test/java/org/apache/ignite/GridTestTask.java
@@ -20,6 +20,8 @@ package org.apache.ignite;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
+import java.util.concurrent.CountDownLatch;
+
import org.apache.ignite.compute.ComputeJob;
import org.apache.ignite.compute.ComputeJobResult;
import org.apache.ignite.compute.ComputeTaskSplitAdapter;
@@ -33,6 +35,20 @@ public class GridTestTask extends ComputeTaskSplitAdapter<Object, Object> {
@LoggerResource
private IgniteLogger log;
+ /**
+ * Optional latch to wait for
+ */
+ CountDownLatch latch;
+
+ public GridTestTask (CountDownLatch latch) {
+ super();
+ this.latch = latch;
+ }
+
+ public GridTestTask() {
+ super();
+ }
+
/** {@inheritDoc} */
@Override public Collection<? extends ComputeJob> split(int gridSize, Object arg) {
if (log.isDebugEnabled())
@@ -41,7 +57,7 @@ public class GridTestTask extends ComputeTaskSplitAdapter<Object, Object> {
Collection<ComputeJob> refs = new ArrayList<>(gridSize);
for (int i = 0; i < gridSize; i++)
- refs.add(new GridTestJob(arg.toString() + i + 1));
+ refs.add(new GridTestJob(arg.toString() + i + 1, latch));
return refs;
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/6998785a/modules/core/src/test/java/org/apache/ignite/internal/ClusterNodeMetricsSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/ClusterNodeMetricsSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/ClusterNodeMetricsSelfTest.java
index dafc41f..d204a39 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/ClusterNodeMetricsSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/ClusterNodeMetricsSelfTest.java
@@ -87,7 +87,7 @@ public class ClusterNodeMetricsSelfTest extends GridCommonAbstractTest {
cfg.setDiscoverySpi(spi);
cfg.setCacheConfiguration();
- cfg.setMetricsUpdateFrequency(0);
+ cfg.setMetricsUpdateFrequency(500);
CacheConfiguration<Integer, Object> ccfg = defaultCacheConfiguration();
ccfg.setName(CACHE_NAME);
@@ -173,16 +173,18 @@ public class ClusterNodeMetricsSelfTest extends GridCommonAbstractTest {
public void testSingleTaskMetrics() throws Exception {
Ignite ignite = grid();
- ignite.compute().execute(new GridTestTask(), "testArg");
+ final CountDownLatch taskLatch = new CountDownLatch(2);
+ ignite.compute().executeAsync(new GridTestTask(taskLatch), "testArg");
// Let metrics update twice.
- final CountDownLatch latch = new CountDownLatch(2);
+ final CountDownLatch latch = new CountDownLatch(3);
ignite.events().localListen(new IgnitePredicate<Event>() {
@Override public boolean apply(Event evt) {
assert evt.type() == EVT_NODE_METRICS_UPDATED;
latch.countDown();
+ taskLatch.countDown();
return true;
}
@@ -203,7 +205,7 @@ public class ClusterNodeMetricsSelfTest extends GridCommonAbstractTest {
assert metrics.getAverageWaitingJobs() == 0;
assert metrics.getCurrentActiveJobs() == 0;
assert metrics.getCurrentCancelledJobs() == 0;
- assert metrics.getCurrentJobExecuteTime() == 0;
+ assert metrics.getCurrentJobExecuteTime() > 0;
assert metrics.getCurrentJobWaitTime() == 0;
assert metrics.getCurrentWaitingJobs() == 0;
assert metrics.getMaximumActiveJobs() == 1;
http://git-wip-us.apache.org/repos/asf/ignite/blob/6998785a/modules/core/src/test/java/org/apache/ignite/internal/GridAffinityMappedTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/GridAffinityMappedTest.java b/modules/core/src/test/java/org/apache/ignite/internal/GridAffinityMappedTest.java
index f6f641b..7535228 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/GridAffinityMappedTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/GridAffinityMappedTest.java
@@ -54,10 +54,13 @@ public class GridAffinityMappedTest extends GridCommonAbstractTest {
IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
TcpDiscoverySpi disco = new TcpDiscoverySpi();
- disco.setMaxMissedHeartbeats(Integer.MAX_VALUE);
+
disco.setIpFinder(ipFinder);
+
cfg.setDiscoverySpi(disco);
+ cfg.setFailureDetectionTimeout(Integer.MAX_VALUE);
+
if (igniteInstanceName.endsWith("1"))
cfg.setCacheConfiguration(); // Empty cache configuration.
else {
http://git-wip-us.apache.org/repos/asf/ignite/blob/6998785a/modules/core/src/test/java/org/apache/ignite/internal/GridAffinityP2PSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/GridAffinityP2PSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/GridAffinityP2PSelfTest.java
index 4e4586f..216c50e 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/GridAffinityP2PSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/GridAffinityP2PSelfTest.java
@@ -85,11 +85,12 @@ public class GridAffinityP2PSelfTest extends GridCommonAbstractTest {
TcpDiscoverySpi disco = new TcpDiscoverySpi();
- disco.setMaxMissedHeartbeats(Integer.MAX_VALUE);
disco.setIpFinder(ipFinder);
c.setDiscoverySpi(disco);
+ c.setFailureDetectionTimeout(Integer.MAX_VALUE);
+
c.setDeploymentMode(depMode);
if (igniteInstanceName.endsWith("1"))
http://git-wip-us.apache.org/repos/asf/ignite/blob/6998785a/modules/core/src/test/java/org/apache/ignite/internal/GridAffinitySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/GridAffinitySelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/GridAffinitySelfTest.java
index d2df1be..92933f9 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/GridAffinitySelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/GridAffinitySelfTest.java
@@ -49,11 +49,12 @@ public class GridAffinitySelfTest extends GridCommonAbstractTest {
TcpDiscoverySpi disco = new TcpDiscoverySpi();
- disco.setMaxMissedHeartbeats(Integer.MAX_VALUE);
disco.setIpFinder(IP_FINDER);
cfg.setDiscoverySpi(disco);
+ cfg.setFailureDetectionTimeout(Integer.MAX_VALUE);
+
if (igniteInstanceName.endsWith("1"))
cfg.setClientMode(true);
else {
http://git-wip-us.apache.org/repos/asf/ignite/blob/6998785a/modules/core/src/test/java/org/apache/ignite/internal/GridCancelledJobsMetricsSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/GridCancelledJobsMetricsSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/GridCancelledJobsMetricsSelfTest.java
index 39677c5..a5d60cc 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/GridCancelledJobsMetricsSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/GridCancelledJobsMetricsSelfTest.java
@@ -72,7 +72,7 @@ public class GridCancelledJobsMetricsSelfTest extends GridCommonAbstractTest {
assert discoSpi instanceof TcpDiscoverySpi;
- ((TcpDiscoverySpi)discoSpi).setHeartbeatFrequency(500);
+ cfg.setMetricsUpdateFrequency(500);
return cfg;
}
@@ -221,4 +221,4 @@ public class GridCancelledJobsMetricsSelfTest extends GridCommonAbstractTest {
tmp.onExternalCollision();
}
}
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/6998785a/modules/core/src/test/java/org/apache/ignite/internal/GridFailFastNodeFailureDetectionSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/GridFailFastNodeFailureDetectionSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/GridFailFastNodeFailureDetectionSelfTest.java
index 4d503bd..79dc81a 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/GridFailFastNodeFailureDetectionSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/GridFailFastNodeFailureDetectionSelfTest.java
@@ -49,7 +49,6 @@ public class GridFailFastNodeFailureDetectionSelfTest extends GridCommonAbstract
TcpDiscoverySpi disco = new TcpDiscoverySpi();
disco.setIpFinder(IP_FINDER);
- disco.setHeartbeatFrequency(10_000);
// Set parameters for fast ping failure.
disco.setSocketTimeout(100);
@@ -57,6 +56,7 @@ public class GridFailFastNodeFailureDetectionSelfTest extends GridCommonAbstract
disco.setReconnectCount(2);
cfg.setDiscoverySpi(disco);
+ cfg.setMetricsUpdateFrequency(10_000);
return cfg;
}
@@ -129,4 +129,4 @@ public class GridFailFastNodeFailureDetectionSelfTest extends GridCommonAbstract
U.invoke(comm.getClass(), comm, "simulateNodeFailure");
}
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/6998785a/modules/core/src/test/java/org/apache/ignite/internal/GridJobCollisionCancelSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/GridJobCollisionCancelSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/GridJobCollisionCancelSelfTest.java
index c213464..80b5599 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/GridJobCollisionCancelSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/GridJobCollisionCancelSelfTest.java
@@ -102,7 +102,7 @@ public class GridJobCollisionCancelSelfTest extends GridCommonAbstractTest {
// Should be exactly the same as Jobs number.
assert cancelCnt <= SPLIT_COUNT : "Invalid cancel count: " + cancelCnt;
- // One per start and one per stop and some that come with heartbeats.
+ // One per start and one per stop and some that come with metrics update.
assert colResolutionCnt > SPLIT_COUNT + 1:
"Invalid collision resolution count: " + colResolutionCnt;
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/6998785a/modules/core/src/test/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManagerAliveCacheSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManagerAliveCacheSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManagerAliveCacheSelfTest.java
index f0c50eb..1847303 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManagerAliveCacheSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManagerAliveCacheSelfTest.java
@@ -101,15 +101,15 @@ public class GridDiscoveryManagerAliveCacheSelfTest extends GridCommonAbstractTe
if (clientMode && ((igniteInstanceName.charAt(igniteInstanceName.length() - 1) - '0') & 1) != 0)
cfg.setClientMode(true);
else
- disc.setMaxMissedClientHeartbeats(50);
+ cfg.setClientFailureDetectionTimeout(50000);
- disc.setHeartbeatFrequency(500);
disc.setIpFinder(IP_FINDER);
disc.setAckTimeout(1000);
disc.setSocketTimeout(1000);
cfg.setCacheConfiguration(cCfg);
cfg.setDiscoverySpi(disc);
+ cfg.setMetricsUpdateFrequency(500);
return cfg;
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/6998785a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFailoverSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFailoverSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFailoverSelfTest.java
index ccb879e..57a2420 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFailoverSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFailoverSelfTest.java
@@ -78,13 +78,13 @@ public abstract class GridCacheAbstractFailoverSelfTest extends GridCacheAbstrac
IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
cfg.setNetworkTimeout(60_000);
+ cfg.setMetricsUpdateFrequency(30_000);
TcpDiscoverySpi discoSpi = (TcpDiscoverySpi)cfg.getDiscoverySpi();
discoSpi.setSocketTimeout(30_000);
discoSpi.setAckTimeout(30_000);
discoSpi.setNetworkTimeout(60_000);
- discoSpi.setHeartbeatFrequency(30_000);
discoSpi.setReconnectCount(2);
((TcpCommunicationSpi)cfg.getCommunicationSpi()).setSharedMemoryPort(-1);
@@ -386,4 +386,4 @@ public abstract class GridCacheAbstractFailoverSelfTest extends GridCacheAbstrac
private IgniteCache<String,Integer> cache(Ignite g) {
return g.cache(null);
}
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/6998785a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractSelfTest.java
index 95f8bb8..c40d44d 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractSelfTest.java
@@ -201,9 +201,9 @@ public abstract class GridCacheAbstractSelfTest extends GridCommonAbstractTest {
@Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
- TcpDiscoverySpi disco = new TcpDiscoverySpi();
+ cfg.setFailureDetectionTimeout(Integer.MAX_VALUE);
- disco.setMaxMissedHeartbeats(Integer.MAX_VALUE);
+ TcpDiscoverySpi disco = new TcpDiscoverySpi();
disco.setIpFinder(ipFinder);
http://git-wip-us.apache.org/repos/asf/ignite/blob/6998785a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccManagerSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccManagerSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccManagerSelfTest.java
index 47b9473..957828c 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccManagerSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccManagerSelfTest.java
@@ -51,10 +51,11 @@ public class GridCacheMvccManagerSelfTest extends GridCommonAbstractTest {
TcpDiscoverySpi disco = new TcpDiscoverySpi();
- disco.setMaxMissedHeartbeats(Integer.MAX_VALUE);
disco.setIpFinder(ipFinder);
cfg.setDiscoverySpi(disco);
+
+ cfg.setFailureDetectionTimeout(Integer.MAX_VALUE);
cfg.setCacheConfiguration(cacheConfiguration());
return cfg;
http://git-wip-us.apache.org/repos/asf/ignite/blob/6998785a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAbstractTest.java
index 688e1cc..5133f61 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAbstractTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAbstractTest.java
@@ -93,17 +93,17 @@ public abstract class IgniteCacheAbstractTest extends GridCommonAbstractTest {
TcpDiscoverySpi disco = new TcpDiscoverySpi().setForceServerMode(true);
- disco.setMaxMissedHeartbeats(Integer.MAX_VALUE);
-
disco.setIpFinder(ipFinder);
if (isDebug())
disco.setAckTimeout(Integer.MAX_VALUE);
- MemoryEventStorageSpi eventSpi = new MemoryEventStorageSpi();
- eventSpi.setExpireCount(100);
+ MemoryEventStorageSpi evtSpi = new MemoryEventStorageSpi();
+ evtSpi.setExpireCount(100);
+
+ cfg.setFailureDetectionTimeout(Integer.MAX_VALUE);
- cfg.setEventStorageSpi(eventSpi);
+ cfg.setEventStorageSpi(evtSpi);
cfg.setDiscoverySpi(disco);
http://git-wip-us.apache.org/repos/asf/ignite/blob/6998785a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/binary/BinaryMetadataUpdatesFlowTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/binary/BinaryMetadataUpdatesFlowTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/binary/BinaryMetadataUpdatesFlowTest.java
index b76279d..e0fc205 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/binary/BinaryMetadataUpdatesFlowTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/binary/BinaryMetadataUpdatesFlowTest.java
@@ -147,9 +147,9 @@ public class BinaryMetadataUpdatesFlowTest extends GridCommonAbstractTest {
}
};
- discoSpi.setHeartbeatFrequency(1000);
-
cfg.setDiscoverySpi(discoSpi);
+
+ cfg.setMetricsUpdateFrequency(1000);
}
((TcpDiscoverySpi)cfg.getDiscoverySpi()).setIpFinder(ipFinder);
http://git-wip-us.apache.org/repos/asf/ignite/blob/6998785a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheLateAffinityAssignmentTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheLateAffinityAssignmentTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheLateAffinityAssignmentTest.java
index c68c8d0..9c24073 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheLateAffinityAssignmentTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheLateAffinityAssignmentTest.java
@@ -158,11 +158,12 @@ public class CacheLateAffinityAssignmentTest extends GridCommonAbstractTest {
discoSpi.setForceServerMode(forceSrvMode);
discoSpi.setIpFinder(ipFinder);
- discoSpi.setMaxMissedClientHeartbeats(100);
discoSpi.setNetworkTimeout(60_000);
cfg.setDiscoverySpi(discoSpi);
+ cfg.setClientFailureDetectionTimeout(100000);
+
CacheConfiguration[] ccfg;
if (cacheC != null)
http://git-wip-us.apache.org/repos/asf/ignite/blob/6998785a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheNodeFailureAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheNodeFailureAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheNodeFailureAbstractTest.java
index e11e198..cd475fe 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheNodeFailureAbstractTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheNodeFailureAbstractTest.java
@@ -87,10 +87,9 @@ public abstract class GridCacheNodeFailureAbstractTest extends GridCommonAbstrac
TcpDiscoverySpi disco = new TcpDiscoverySpi();
- disco.setMaxMissedHeartbeats(Integer.MAX_VALUE);
-
disco.setIpFinder(ipFinder);
+ c.setFailureDetectionTimeout(Integer.MAX_VALUE);
c.setDiscoverySpi(disco);
c.setDeploymentMode(DeploymentMode.SHARED);
http://git-wip-us.apache.org/repos/asf/ignite/blob/6998785a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCache150ClientsTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCache150ClientsTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCache150ClientsTest.java
index aaacd2d..6d7ec90 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCache150ClientsTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCache150ClientsTest.java
@@ -67,8 +67,8 @@ public class IgniteCache150ClientsTest extends GridCommonAbstractTest {
((TcpDiscoverySpi)cfg.getDiscoverySpi()).setIpFinder(ipFinder);
((TcpDiscoverySpi)cfg.getDiscoverySpi()).setJoinTimeout(0);
- ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setMaxMissedClientHeartbeats(200);
+ cfg.setClientFailureDetectionTimeout(200000);
cfg.setClientMode(!igniteInstanceName.equals(getTestIgniteInstanceName(0)));
CacheConfiguration[] ccfgs = new CacheConfiguration[CACHES];
http://git-wip-us.apache.org/repos/asf/ignite/blob/6998785a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheNearRestartRollbackSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheNearRestartRollbackSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheNearRestartRollbackSelfTest.java
index bbbcfd7..907922c 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheNearRestartRollbackSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheNearRestartRollbackSelfTest.java
@@ -71,8 +71,8 @@ public class IgniteCacheNearRestartRollbackSelfTest extends GridCommonAbstractTe
TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
discoSpi.setIpFinder(IP_FINDER);
- discoSpi.setMaxMissedClientHeartbeats(50);
+ cfg.setClientFailureDetectionTimeout(50000);
cfg.setDiscoverySpi(discoSpi);
cfg.setCacheConfiguration(cacheConfiguration(igniteInstanceName));
http://git-wip-us.apache.org/repos/asf/ignite/blob/6998785a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCacheColocatedTxSingleThreadedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCacheColocatedTxSingleThreadedSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCacheColocatedTxSingleThreadedSelfTest.java
index ba9f9e4..644fabd 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCacheColocatedTxSingleThreadedSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCacheColocatedTxSingleThreadedSelfTest.java
@@ -64,8 +64,8 @@ public class GridCacheColocatedTxSingleThreadedSelfTest extends IgniteTxSingleTh
TcpDiscoverySpi spi = new TcpDiscoverySpi();
spi.setIpFinder(ipFinder);
- spi.setMaxMissedHeartbeats(Integer.MAX_VALUE);
+ c.setFailureDetectionTimeout(Integer.MAX_VALUE);
c.setDiscoverySpi(spi);
c.setCacheConfiguration(cc);
http://git-wip-us.apache.org/repos/asf/ignite/blob/6998785a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCacheDhtPreloadDelayedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCacheDhtPreloadDelayedSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCacheDhtPreloadDelayedSelfTest.java
index b9afd65..3bdce46 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCacheDhtPreloadDelayedSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCacheDhtPreloadDelayedSelfTest.java
@@ -93,8 +93,8 @@ public class GridCacheDhtPreloadDelayedSelfTest extends GridCommonAbstractTest {
TcpDiscoverySpi disco = new TcpDiscoverySpi();
disco.setIpFinder(ipFinder);
- disco.setMaxMissedHeartbeats(Integer.MAX_VALUE);
+ c.setFailureDetectionTimeout(Integer.MAX_VALUE);
c.setDiscoverySpi(disco);
c.setCacheConfiguration(cc);
http://git-wip-us.apache.org/repos/asf/ignite/blob/6998785a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCacheDhtPreloadMessageCountTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCacheDhtPreloadMessageCountTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCacheDhtPreloadMessageCountTest.java
index f223c9b..af7aff4 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCacheDhtPreloadMessageCountTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCacheDhtPreloadMessageCountTest.java
@@ -66,8 +66,8 @@ public class GridCacheDhtPreloadMessageCountTest extends GridCommonAbstractTest
TcpDiscoverySpi disco = new TcpDiscoverySpi();
disco.setIpFinder(ipFinder);
- disco.setMaxMissedHeartbeats(Integer.MAX_VALUE);
+ c.setFailureDetectionTimeout(Integer.MAX_VALUE);
c.setDiscoverySpi(disco);
c.setCacheConfiguration(cc);
http://git-wip-us.apache.org/repos/asf/ignite/blob/6998785a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/IgniteCacheAtomicProtocolTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/IgniteCacheAtomicProtocolTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/IgniteCacheAtomicProtocolTest.java
index 591858a..6fdb354 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/IgniteCacheAtomicProtocolTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/IgniteCacheAtomicProtocolTest.java
@@ -82,7 +82,7 @@ public class IgniteCacheAtomicProtocolTest extends GridCommonAbstractTest {
cfg.setConsistentId(gridName);
((TcpDiscoverySpi)cfg.getDiscoverySpi()).setIpFinder(ipFinder);
- ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setMaxMissedClientHeartbeats(1000);
+ cfg.setClientFailureDetectionTimeout(Integer.MAX_VALUE);
TestRecordingCommunicationSpi commSpi = new TestRecordingCommunicationSpi();
http://git-wip-us.apache.org/repos/asf/ignite/blob/6998785a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheNearMultiGetSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheNearMultiGetSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheNearMultiGetSelfTest.java
index d041ae2..61cc580 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheNearMultiGetSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheNearMultiGetSelfTest.java
@@ -82,8 +82,8 @@ public class GridCacheNearMultiGetSelfTest extends GridCommonAbstractTest {
TcpDiscoverySpi spi = new TcpDiscoverySpi();
spi.setIpFinder(ipFinder);
- spi.setMaxMissedHeartbeats(Integer.MAX_VALUE);
+ c.setFailureDetectionTimeout(Integer.MAX_VALUE);
c.setDiscoverySpi(spi);
c.setCacheConfiguration(cc);
http://git-wip-us.apache.org/repos/asf/ignite/blob/6998785a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheNearMultiNodeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheNearMultiNodeSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheNearMultiNodeSelfTest.java
index e4ed64b..a6b8d79 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheNearMultiNodeSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheNearMultiNodeSelfTest.java
@@ -106,8 +106,8 @@ public class GridCacheNearMultiNodeSelfTest extends GridCommonAbstractTest {
TcpDiscoverySpi spi = new TcpDiscoverySpi();
spi.setIpFinder(ipFinder);
- spi.setMaxMissedHeartbeats(Integer.MAX_VALUE);
+ cfg.setFailureDetectionTimeout(Integer.MAX_VALUE);
cfg.setDiscoverySpi(spi);
CacheConfiguration cacheCfg = defaultCacheConfiguration();
http://git-wip-us.apache.org/repos/asf/ignite/blob/6998785a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedTxSingleThreadedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedTxSingleThreadedSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedTxSingleThreadedSelfTest.java
index 62e11a7..ef472a1 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedTxSingleThreadedSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedTxSingleThreadedSelfTest.java
@@ -63,8 +63,8 @@ public class GridCachePartitionedTxSingleThreadedSelfTest extends IgniteTxSingle
TcpDiscoverySpi spi = new TcpDiscoverySpi();
spi.setIpFinder(ipFinder);
- spi.setMaxMissedHeartbeats(Integer.MAX_VALUE);
+ c.setFailureDetectionTimeout(Integer.MAX_VALUE);
c.setDiscoverySpi(spi);
c.setCacheConfiguration(cc);
http://git-wip-us.apache.org/repos/asf/ignite/blob/6998785a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/IndexingSpiQuerySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/IndexingSpiQuerySelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/IndexingSpiQuerySelfTest.java
index 62adb77..7349a4e 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/IndexingSpiQuerySelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/IndexingSpiQuerySelfTest.java
@@ -74,12 +74,12 @@ public class IndexingSpiQuerySelfTest extends TestCase {
TcpDiscoveryVmIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
TcpDiscoverySpi disco = new TcpDiscoverySpi();
- disco.setMaxMissedHeartbeats(Integer.MAX_VALUE);
-
disco.setIpFinder(ipFinder);
cfg.setDiscoverySpi(disco);
+ cfg.setFailureDetectionTimeout(Integer.MAX_VALUE);
+
return cfg;
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/6998785a/modules/core/src/test/java/org/apache/ignite/internal/processors/service/GridServiceClientNodeTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/service/GridServiceClientNodeTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/service/GridServiceClientNodeTest.java
index 08f2709..1d6cbae 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/service/GridServiceClientNodeTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/service/GridServiceClientNodeTest.java
@@ -42,10 +42,11 @@ public class GridServiceClientNodeTest extends GridCommonAbstractTest {
IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
((TcpDiscoverySpi)cfg.getDiscoverySpi()).setIpFinder(ipFinder);
- ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setMaxMissedClientHeartbeats(30);
- ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setHeartbeatFrequency(1000);
+
+ cfg.setClientFailureDetectionTimeout(30000);
cfg.setClientMode(client);
+ cfg.setMetricsUpdateFrequency(1000);
return cfg;
}
@@ -150,4 +151,4 @@ public class GridServiceClientNodeTest extends GridCommonAbstractTest {
assertTrue(latch.await(5000, TimeUnit.MILLISECONDS));
}
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/6998785a/modules/core/src/test/java/org/apache/ignite/loadtests/direct/newnodes/GridSingleSplitsNewNodesAbstractLoadTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/loadtests/direct/newnodes/GridSingleSplitsNewNodesAbstractLoadTest.java b/modules/core/src/test/java/org/apache/ignite/loadtests/direct/newnodes/GridSingleSplitsNewNodesAbstractLoadTest.java
index 6fb7cdf..fedb4ac 100644
--- a/modules/core/src/test/java/org/apache/ignite/loadtests/direct/newnodes/GridSingleSplitsNewNodesAbstractLoadTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/loadtests/direct/newnodes/GridSingleSplitsNewNodesAbstractLoadTest.java
@@ -41,11 +41,6 @@ public abstract class GridSingleSplitsNewNodesAbstractLoadTest extends GridCommo
*/
protected abstract DiscoverySpi getDiscoverySpi(IgniteConfiguration cfg);
- /**
- * @return Discovery spi heartbeat frequency.
- */
- protected abstract int getHeartbeatFrequency();
-
/** {@inheritDoc} */
@SuppressWarnings("ConstantConditions")
@Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
@@ -120,11 +115,11 @@ public abstract class GridSingleSplitsNewNodesAbstractLoadTest extends GridCommo
startGrid(idx);
- Thread.sleep(getHeartbeatFrequency() * 3);
+ Thread.sleep(grid(idx).configuration().getMetricsUpdateFrequency() * 3);
stopGrid(idx);
- Thread.sleep(getHeartbeatFrequency() * 3);
+ Thread.sleep(grid(idx).configuration().getMetricsUpdateFrequency() * 3);
}
}
catch (Throwable e) {
@@ -175,4 +170,4 @@ public abstract class GridSingleSplitsNewNodesAbstractLoadTest extends GridCommo
G.stop(getTestIgniteInstanceName(), false);
}
}
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/6998785a/modules/core/src/test/java/org/apache/ignite/loadtests/direct/newnodes/GridSingleSplitsNewNodesMulticastLoadTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/loadtests/direct/newnodes/GridSingleSplitsNewNodesMulticastLoadTest.java b/modules/core/src/test/java/org/apache/ignite/loadtests/direct/newnodes/GridSingleSplitsNewNodesMulticastLoadTest.java
index 6d2c7aa..77142dc 100644
--- a/modules/core/src/test/java/org/apache/ignite/loadtests/direct/newnodes/GridSingleSplitsNewNodesMulticastLoadTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/loadtests/direct/newnodes/GridSingleSplitsNewNodesMulticastLoadTest.java
@@ -33,13 +33,6 @@ public class GridSingleSplitsNewNodesMulticastLoadTest extends GridSingleSplitsN
assert discoSpi instanceof TcpDiscoverySpi : "Wrong default SPI implementation.";
- ((TcpDiscoverySpi)discoSpi).setHeartbeatFrequency(getHeartbeatFrequency());
-
return discoSpi;
}
-
- /** {@inheritDoc} */
- @Override protected int getHeartbeatFrequency() {
- return 3000;
- }
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/6998785a/modules/core/src/test/java/org/apache/ignite/p2p/GridP2PSameClassLoaderSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/p2p/GridP2PSameClassLoaderSelfTest.java b/modules/core/src/test/java/org/apache/ignite/p2p/GridP2PSameClassLoaderSelfTest.java
index a126b4b..d2878e0 100644
--- a/modules/core/src/test/java/org/apache/ignite/p2p/GridP2PSameClassLoaderSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/p2p/GridP2PSameClassLoaderSelfTest.java
@@ -71,8 +71,8 @@ public class GridP2PSameClassLoaderSelfTest extends GridCommonAbstractTest {
IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
cfg.setDeploymentMode(depMode);
+ cfg.setMetricsUpdateFrequency(500);
- ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setHeartbeatFrequency(500);
((TcpDiscoverySpi)cfg.getDiscoverySpi()).setIpFinder(FINDER);
cfg.setCacheConfiguration();
http://git-wip-us.apache.org/repos/asf/ignite/blob/6998785a/modules/core/src/test/java/org/apache/ignite/spi/discovery/AbstractDiscoverySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/AbstractDiscoverySelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/AbstractDiscoverySelfTest.java
index daa3ec0..fa1a2ae 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/discovery/AbstractDiscoverySelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/AbstractDiscoverySelfTest.java
@@ -219,11 +219,11 @@ public abstract class AbstractDiscoverySelfTest<T extends IgniteSpi> extends Gri
}
/**
- * Tests whether local node heartbeats cause METRICS_UPDATE event.
+ * Tests whether local node metrics update cause METRICS_UPDATE event.
*
* @throws Exception If test failed.
*/
- public void testLocalHeartbeat() throws Exception {
+ public void testLocalMetricsUpdate() throws Exception {
AtomicInteger[] locUpdCnts = new AtomicInteger[getSpiCount()];
int i = 0;
@@ -231,7 +231,7 @@ public abstract class AbstractDiscoverySelfTest<T extends IgniteSpi> extends Gri
for (final DiscoverySpi spi : spis) {
final AtomicInteger spiCnt = new AtomicInteger(0);
- DiscoverySpiListener locHeartbeatLsnr = new DiscoverySpiListener() {
+ DiscoverySpiListener locMetricsUpdateLsnr = new DiscoverySpiListener() {
/** {@inheritDoc} */
@Override public void onLocalNodeInitialized(ClusterNode locNode) {
// No-op.
@@ -249,17 +249,16 @@ public abstract class AbstractDiscoverySelfTest<T extends IgniteSpi> extends Gri
locUpdCnts[i] = spiCnt;
- spi.setListener(locHeartbeatLsnr);
+ spi.setListener(locMetricsUpdateLsnr);
i++;
}
- // Sleep fro 3 Heartbeats.
+ // Sleep for 3 metrics update.
Thread.sleep(getMaxDiscoveryTime() * 3);
- for (AtomicInteger cnt : locUpdCnts) {
- assert cnt.get() > 1 : "One of the SPIs did not get at least 2 METRICS_UPDATE events from local node";
- }
+ for (AtomicInteger cnt : locUpdCnts)
+ assertTrue("One of the SPIs did not get at least 2 METRICS_UPDATE events from local node", cnt.get() > 1);
}
/**
@@ -491,9 +490,9 @@ public abstract class AbstractDiscoverySelfTest<T extends IgniteSpi> extends Gri
}
for (IgniteTestResources rscrs : spiRsrcs) {
- MBeanServer mBeanServer = rscrs.getMBeanServer();
+ MBeanServer mBeanSrv = rscrs.getMBeanServer();
- mBeanServer.unregisterMBean(new ObjectName(HTTP_ADAPTOR_MBEAN_NAME));
+ mBeanSrv.unregisterMBean(new ObjectName(HTTP_ADAPTOR_MBEAN_NAME));
rscrs.stopThreads();
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/6998785a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpiFailureTimeoutSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpiFailureTimeoutSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpiFailureTimeoutSelfTest.java
index a0545f5..689ac72 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpiFailureTimeoutSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpiFailureTimeoutSelfTest.java
@@ -19,6 +19,7 @@ package org.apache.ignite.spi.discovery.tcp;
import java.io.IOException;
import java.io.InputStream;
+import java.io.OutputStream;
import java.net.Socket;
import java.net.SocketTimeoutException;
import java.util.ArrayList;
@@ -28,15 +29,18 @@ import java.util.UUID;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicLong;
import org.apache.ignite.Ignite;
import org.apache.ignite.IgniteCheckedException;
import org.apache.ignite.events.DiscoveryEvent;
import org.apache.ignite.events.Event;
import org.apache.ignite.internal.util.typedef.G;
import org.apache.ignite.internal.util.typedef.X;
+import org.apache.ignite.internal.util.typedef.internal.U;
import org.apache.ignite.lang.IgnitePredicate;
import org.apache.ignite.spi.discovery.tcp.internal.TcpDiscoveryNode;
import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
+import org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryAbstractMessage;
import org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryPingRequest;
import org.jetbrains.annotations.Nullable;
@@ -53,8 +57,14 @@ public class TcpClientDiscoverySpiFailureTimeoutSelfTest extends TcpClientDiscov
private final static long FAILURE_THRESHOLD = 10_000;
/** */
+ private final static long CLIENT_FAILURE_THRESHOLD = 30_000;
+
+ /** Failure detection timeout for nodes configuration. */
private static long failureThreshold = FAILURE_THRESHOLD;
+ /** Client failure detection timeout for nodes configuration. */
+ private static long clientFailureThreshold = CLIENT_FAILURE_THRESHOLD;
+
/** */
private static boolean useTestSpi;
@@ -64,6 +74,11 @@ public class TcpClientDiscoverySpiFailureTimeoutSelfTest extends TcpClientDiscov
}
/** {@inheritDoc} */
+ @Override protected long clientFailureDetectionTimeout() {
+ return clientFailureThreshold;
+ }
+
+ /** {@inheritDoc} */
@Override protected long failureDetectionTimeout() {
return failureThreshold;
}
@@ -74,6 +89,11 @@ public class TcpClientDiscoverySpiFailureTimeoutSelfTest extends TcpClientDiscov
}
/** {@inheritDoc} */
+ @Override protected long awaitClientTime() {
+ return clientFailureDetectionTimeout() + FAILURE_AWAIT_TIME;
+ }
+
+ /** {@inheritDoc} */
@Override protected TcpDiscoverySpi getDiscoverySpi() {
return useTestSpi ? new TestTcpDiscoverySpi2() : super.getDiscoverySpi();
}
@@ -88,12 +108,12 @@ public class TcpClientDiscoverySpiFailureTimeoutSelfTest extends TcpClientDiscov
checkNodes(1, 1);
assertTrue(((TcpDiscoverySpi)(G.ignite("server-0").configuration().getDiscoverySpi())).
- failureDetectionTimeoutEnabled());
+ failureDetectionTimeoutEnabled());
assertEquals(failureDetectionTimeout(),
((TcpDiscoverySpi)(G.ignite("server-0").configuration().getDiscoverySpi())).failureDetectionTimeout());
assertTrue(((TcpDiscoverySpi)(G.ignite("client-0").configuration().getDiscoverySpi())).
- failureDetectionTimeoutEnabled());
+ failureDetectionTimeoutEnabled());
assertEquals(failureDetectionTimeout(),
((TcpDiscoverySpi)(G.ignite("client-0").configuration().getDiscoverySpi())).failureDetectionTimeout());
}
@@ -127,6 +147,123 @@ public class TcpClientDiscoverySpiFailureTimeoutSelfTest extends TcpClientDiscov
}
/**
+ * Test failure detection time between server and client if client fail with failure detection.
+ *
+ * @throws Exception in case of error.
+ */
+ public void testFailureTimeoutServerClient() throws Exception {
+ failureThreshold = 3000;
+ clientFailureThreshold = 2000;
+
+ try {
+ startServerNodes(1);
+
+ startClientNodes(1);
+
+ checkNodes(1, 1);
+
+ Ignite srvNode = G.ignite("server-0");
+ final TcpDiscoverySpi srvSpi = (TcpDiscoverySpi) srvNode.configuration().getDiscoverySpi();
+
+ Ignite clientNode = G.ignite("client-0");
+ final TcpDiscoverySpi clientSpi = (TcpDiscoverySpi)clientNode.configuration().getDiscoverySpi();
+
+ long failureTime = U.currentTimeMillis();
+
+ final long[] failureDetectTime = new long[1];
+ final CountDownLatch latch = new CountDownLatch(1);
+
+ clientSpi.simulateNodeFailure();
+
+ srvNode.events().localListen(new IgnitePredicate<Event>() {
+ @Override public boolean apply(Event evt) {
+ failureDetectTime[0] = U.currentTimeMillis();
+
+ latch.countDown();
+
+ return true;
+ }
+ }, EVT_NODE_FAILED);
+
+ assertTrue("Can't get node failure event", latch.await(15000, TimeUnit.MILLISECONDS));
+
+ long detectTime = failureDetectTime[0] - failureTime;
+
+ assertTrue("Client node failure detected too fast: " + detectTime + "ms",
+ detectTime > clientFailureThreshold - 200);
+ assertTrue("Client node failure detected too slow: " + detectTime + "ms",
+ detectTime < clientFailureThreshold + 5000);
+ }
+ finally {
+ failureThreshold = FAILURE_THRESHOLD;
+ clientFailureThreshold = CLIENT_FAILURE_THRESHOLD;
+ }
+ }
+
+ /**
+ * Test failure detection time between servers with failure detection.
+ *
+ * @throws Exception in case of error.
+ */
+ public void testFailureTimeout3Server() throws Exception {
+ failureThreshold = 1000;
+ clientFailureThreshold = 10000;
+ useTestSpi = true;
+
+ try {
+ startServerNodes(3);
+
+ checkNodes(3, 0);
+
+ Ignite srv0 = G.ignite("server-0");
+ final TestTcpDiscoverySpi2 spi0 = (TestTcpDiscoverySpi2)srv0.configuration().getDiscoverySpi();
+
+ final Ignite srv1 = G.ignite("server-1");
+ final TestTcpDiscoverySpi2 spi1 = (TestTcpDiscoverySpi2)srv1.configuration().getDiscoverySpi();
+
+ Ignite srv2 = G.ignite("server-2");
+ final TestTcpDiscoverySpi2 spi2 = (TestTcpDiscoverySpi2)srv2.configuration().getDiscoverySpi();
+
+ long failureTime = U.currentTimeMillis();
+
+ final AtomicLong failureDetectTime = new AtomicLong();
+ final CountDownLatch latch = new CountDownLatch(2);
+
+ spi1.writeToSocketDelay = 2000;
+
+ for (Ignite srv : new Ignite[]{srv0, srv2}) {
+ srv.events().localListen(new IgnitePredicate<Event>() {
+ @Override public boolean apply(Event evt) {
+ DiscoveryEvent evt0 = (DiscoveryEvent)evt;
+
+ assertEquals(srv1.cluster().localNode().id(), evt0.eventNode().id());
+
+ failureDetectTime.compareAndSet(0, U.currentTimeMillis());
+
+ latch.countDown();
+
+ return true;
+ }
+ }, EVT_NODE_FAILED);
+ }
+
+ assertTrue("Can't get node failure event", latch.await(15000, TimeUnit.MILLISECONDS));
+
+ long detectTime = failureDetectTime.get() - failureTime;
+
+ assertTrue("Server node failure detected too fast: " + detectTime + "ms",
+ detectTime > failureThreshold - 100);
+ assertTrue("Server node failure detected too slow: " + detectTime + "ms",
+ detectTime < clientFailureThreshold);
+ }
+ finally {
+ failureThreshold = FAILURE_THRESHOLD;
+ clientFailureThreshold = CLIENT_FAILURE_THRESHOLD;
+ useTestSpi = false;
+ }
+ }
+
+ /**
* @throws Exception in case of error.
*/
private void checkFailureThresholdWorkability() throws Exception {
@@ -288,15 +425,114 @@ public class TcpClientDiscoverySpiFailureTimeoutSelfTest extends TcpClientDiscov
*/
private static class TestTcpDiscoverySpi2 extends TcpDiscoverySpi {
/** */
- private long readDelay;
+ private volatile long readDelay;
+
+ private volatile long writeToSocketDelay;
/** */
private Exception err;
+ /** */
+ @Override protected void writeToSocket(
+ Socket sock,
+ TcpDiscoveryAbstractMessage msg,
+ byte[] data,
+ long timeout
+ ) throws IOException {
+ if (writeToSocketDelay > 0) {
+ try {
+ U.dumpStack(log, "Before sleep [msg=" + msg +
+ ", arrLen=" + (data != null ? data.length : "n/a") + ']');
+
+ Thread.sleep(writeToSocketDelay);
+ }
+ catch (InterruptedException e) {
+ // Nothing to do.
+ }
+ }
+
+ if (sock.getSoTimeout() >= writeToSocketDelay)
+ super.writeToSocket(sock, msg, data, timeout);
+ else
+ throw new SocketTimeoutException("Write to socket delay timeout exception.");
+ }
+
+ /** */
+ @Override protected void writeToSocket(Socket sock,
+ OutputStream out,
+ TcpDiscoveryAbstractMessage msg,
+ long timeout) throws IOException, IgniteCheckedException {
+ if (writeToSocketDelay > 0) {
+ try {
+ U.dumpStack(log, "Before sleep [msg=" + msg + ']');
+
+ Thread.sleep(writeToSocketDelay);
+ }
+ catch (InterruptedException e) {
+ // Nothing to do.
+ }
+ }
+
+ if (sock.getSoTimeout() >= writeToSocketDelay)
+ super.writeToSocket(sock, out, msg, timeout);
+ else
+ throw new SocketTimeoutException("Write to socket delay timeout exception.");
+ }
+
+ /** */
+ @Override protected void writeToSocket(
+ Socket sock,
+ TcpDiscoveryAbstractMessage msg,
+ long timeout
+ ) throws IOException, IgniteCheckedException {
+ if (writeToSocketDelay > 0) {
+ try {
+ U.dumpStack(log, "Before sleep [msg=" + msg + ']');
+
+ Thread.sleep(writeToSocketDelay);
+ }
+ catch (InterruptedException e) {
+ // Nothing to do.
+ }
+ }
+
+ if (sock.getSoTimeout() >= writeToSocketDelay)
+ super.writeToSocket(sock, msg, timeout);
+ else
+ throw new SocketTimeoutException("Write to socket delay timeout exception.");
+ }
+
+ /** */
+ @Override protected void writeToSocket(
+ TcpDiscoveryAbstractMessage msg,
+ Socket sock,
+ int res,
+ long timeout
+ ) throws IOException {
+ if (writeToSocketDelay > 0) {
+ try {
+ U.dumpStack(log, "Before sleep [msg=" + msg + ']');
+
+ Thread.sleep(writeToSocketDelay);
+ }
+ catch (InterruptedException e) {
+ // Nothing to do.
+ }
+ }
+
+ if (sock.getSoTimeout() >= writeToSocketDelay)
+ super.writeToSocket(msg, sock, res, timeout);
+ else
+ throw new SocketTimeoutException("Write to socket delay timeout exception.");
+ }
+
/** {@inheritDoc} */
@Override protected <T> T readMessage(Socket sock, @Nullable InputStream in, long timeout)
throws IOException, IgniteCheckedException {
- if (readDelay < failureDetectionTimeout()) {
+ long currTimeout = getLocalNode().isClient() ?
+ clientFailureDetectionTimeout() : failureDetectionTimeout();
+
+ if (readDelay < currTimeout) {
try {
return super.readMessage(sock, in, timeout);
}
@@ -329,6 +565,7 @@ public class TcpClientDiscoverySpiFailureTimeoutSelfTest extends TcpClientDiscov
*/
private void reset() {
readDelay = 0;
+ writeToSocketDelay = 0;
err = null;
}
}