Skip to content
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import org.apache.ignite.internal.codegen.TcpDiscoveryLoopbackProblemMessageSerializer;
import org.apache.ignite.internal.codegen.TcpDiscoveryPingRequestSerializer;
import org.apache.ignite.internal.codegen.TcpDiscoveryPingResponseSerializer;
import org.apache.ignite.internal.codegen.TcpDiscoveryRingLatencyCheckMessageSerializer;
import org.apache.ignite.plugin.extensions.communication.MessageFactory;
import org.apache.ignite.plugin.extensions.communication.MessageFactoryProvider;
import org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryCheckFailedMessage;
Expand All @@ -33,6 +34,7 @@
import org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryLoopbackProblemMessage;
import org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryPingRequest;
import org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryPingResponse;
import org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryRingLatencyCheckMessage;

/** Message factory for discovery messages. */
public class DiscoveryMessageFactory implements MessageFactoryProvider {
Expand All @@ -45,5 +47,6 @@ public class DiscoveryMessageFactory implements MessageFactoryProvider {
factory.register((short)4, TcpDiscoveryClientPingResponse::new, new TcpDiscoveryClientPingResponseSerializer());
factory.register((short)5, TcpDiscoveryLoopbackProblemMessage::new, new TcpDiscoveryLoopbackProblemMessageSerializer());
factory.register((short)6, TcpDiscoveryConnectionCheckMessage::new, new TcpDiscoveryConnectionCheckMessageSerializer());
factory.register((short)7, TcpDiscoveryRingLatencyCheckMessage::new, new TcpDiscoveryRingLatencyCheckMessageSerializer());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5423,7 +5423,7 @@ private void processRingLatencyCheckMessage(TcpDiscoveryRingLatencyCheckMessage
if (msg.maxHopsReached()) {
if (log.isInfoEnabled()) {
log.info("Latency check has been discarded (max hops reached) [id=" + msg.id() +
", maxHops=" + msg.maxHops() + ']');
", maxHops=" + msg.maximalHops() + ']');
}

return;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,29 +18,36 @@
package org.apache.ignite.spi.discovery.tcp.messages;

import java.util.UUID;
import org.apache.ignite.internal.Order;
import org.apache.ignite.internal.managers.discovery.DiscoveryMessageFactory;
import org.apache.ignite.internal.util.typedef.internal.S;
import org.apache.ignite.plugin.extensions.communication.Message;

/**
*
*/
public class TcpDiscoveryRingLatencyCheckMessage extends TcpDiscoveryAbstractMessage {
public class TcpDiscoveryRingLatencyCheckMessage extends TcpDiscoveryAbstractMessage implements Message {
/** */
private static final long serialVersionUID = 0L;

/** */
/** Maximal hops number. */
@Order(value = 5, method = "maximalHops")
private int maxHops;

/** */
private int curHop;
/** Current hops reached. */
@Order(value = 6, method = "currentHops")
private int curHops;

/** Empty constructor for {@link DiscoveryMessageFactory}. */
public TcpDiscoveryRingLatencyCheckMessage() {
// No-op.
}

/**
* @param creatorNodeId Creator node ID.
* @param maxHops Max hops for this message.
* @param maxHops Maximal hops number for this message.
*/
public TcpDiscoveryRingLatencyCheckMessage(
UUID creatorNodeId,
int maxHops
) {
public TcpDiscoveryRingLatencyCheckMessage(UUID creatorNodeId, int maxHops) {
super(creatorNodeId);

assert maxHops > 0;
Expand All @@ -52,21 +59,41 @@ public TcpDiscoveryRingLatencyCheckMessage(
*
*/
public void onRead() {
curHop++;
curHops++;
}

/** @return Current hops reached. */
public int currentHops() {
return curHops;
}

/** @param curHop Current hops reached. */
public void currentHops(int curHop) {
curHops = curHop;
}

/**
* @return Max hops.
* @return Maximal hops number.
*/
public int maxHops() {
public int maximalHops() {
return maxHops;
}

/** @param maxHops Maximal hops. */
public void maximalHops(int maxHops) {
this.maxHops = maxHops;
}

/**
* @return {@code True} if max hops has been reached.
* @return {@code True} if max hops reached.
*/
public boolean maxHopsReached() {
return curHop == maxHops;
return curHops == maxHops;
}

/** {@inheritDoc} */
@Override public short directType() {
return 7;
}

/** {@inheritDoc} */
Expand Down
Loading