From 7ccd6ce49d7c4dbee5f0ad4e0fb1f252bb477be7 Mon Sep 17 00:00:00 2001 From: Vladimir Steshin Date: Tue, 17 Feb 2026 14:45:44 +0300 Subject: [PATCH 01/10] raw --- .../discovery/DiscoveryMessageFactory.java | 3 + .../TcpConnectionRequestDiscoveryMessage.java | 58 +++++++++++++++---- 2 files changed, 49 insertions(+), 12 deletions(-) diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/DiscoveryMessageFactory.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/DiscoveryMessageFactory.java index 753f00569c5cf..163ae8dbd8bc4 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/DiscoveryMessageFactory.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/DiscoveryMessageFactory.java @@ -21,6 +21,7 @@ import org.apache.ignite.internal.codegen.InetAddressMessageSerializer; import org.apache.ignite.internal.codegen.InetSocketAddressMessageSerializer; import org.apache.ignite.internal.codegen.NodeSpecificDataSerializer; +import org.apache.ignite.internal.codegen.TcpConnectionRequestDiscoveryMessageSerializer; import org.apache.ignite.internal.codegen.TcpDiscoveryAuthFailedMessageSerializer; import org.apache.ignite.internal.codegen.TcpDiscoveryCacheMetricsMessageSerializer; import org.apache.ignite.internal.codegen.TcpDiscoveryCheckFailedMessageSerializer; @@ -47,6 +48,7 @@ import org.apache.ignite.internal.codegen.TcpDiscoveryStatusCheckMessageSerializer; import org.apache.ignite.plugin.extensions.communication.MessageFactory; import org.apache.ignite.plugin.extensions.communication.MessageFactoryProvider; +import org.apache.ignite.spi.communication.tcp.internal.TcpConnectionRequestDiscoveryMessage; import org.apache.ignite.spi.discovery.tcp.internal.DiscoveryDataPacket; import org.apache.ignite.spi.discovery.tcp.messages.InetAddressMessage; import org.apache.ignite.spi.discovery.tcp.messages.InetSocketAddressMessage; @@ -110,5 +112,6 @@ public class DiscoveryMessageFactory implements MessageFactoryProvider { factory.register((short)17, TcpDiscoveryNodeFailedMessage::new, new TcpDiscoveryNodeFailedMessageSerializer()); factory.register((short)18, TcpDiscoveryStatusCheckMessage::new, new TcpDiscoveryStatusCheckMessageSerializer()); factory.register((short)19, TcpDiscoveryNodeAddFinishedMessage::new, new TcpDiscoveryNodeAddFinishedMessageSerializer()); + factory.register((short)20, TcpConnectionRequestDiscoveryMessage::new, new TcpConnectionRequestDiscoveryMessageSerializer()); } } diff --git a/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/internal/TcpConnectionRequestDiscoveryMessage.java b/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/internal/TcpConnectionRequestDiscoveryMessage.java index c512c2257b650..e792ca5b1f22d 100644 --- a/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/internal/TcpConnectionRequestDiscoveryMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/internal/TcpConnectionRequestDiscoveryMessage.java @@ -18,59 +18,88 @@ package org.apache.ignite.spi.communication.tcp.internal; import java.util.UUID; +import org.apache.ignite.internal.Order; import org.apache.ignite.internal.managers.discovery.DiscoCache; import org.apache.ignite.internal.managers.discovery.DiscoveryCustomMessage; +import org.apache.ignite.internal.managers.discovery.DiscoveryMessageFactory; import org.apache.ignite.internal.managers.discovery.GridDiscoveryManager; import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion; import org.apache.ignite.internal.util.tostring.GridToStringInclude; import org.apache.ignite.internal.util.typedef.internal.S; import org.apache.ignite.lang.IgniteUuid; +import org.apache.ignite.plugin.extensions.communication.Message; import org.jetbrains.annotations.Nullable; /** - * Message is part of communication via discovery protocol. - * + * Message to support new communication connection via discovery protocol. * It is used when a node (say node A) cannot establish a communication connection to other node (node B) in topology * due to firewall or network configuration and sends this message requesting inverse connection: * node B receives request and opens communication connection to node A * thus allowing both nodes to communicate to each other. */ -public class TcpConnectionRequestDiscoveryMessage implements DiscoveryCustomMessage { +public class TcpConnectionRequestDiscoveryMessage implements DiscoveryCustomMessage, Message { /** */ private static final long serialVersionUID = 0L; - /** */ - private final IgniteUuid id = IgniteUuid.randomUuid(); + /** Message id. */ + @Order(0) + private IgniteUuid id; - /** */ + /** Receiver node id. */ + @Order(1) @GridToStringInclude - private final UUID receiverNodeId; + private UUID receiverNodeId; - /** */ + /** Connection index. */ + @Order(value = 2, method = "connectionIndex") @GridToStringInclude - private final int connIdx; + private int connIdx; - /** */ + /** + * @param receiverNodeId Receiver node id. + * @param connIdx Connection index. + */ public TcpConnectionRequestDiscoveryMessage(UUID receiverNodeId, int connIdx) { + id = IgniteUuid.randomUuid(); this.receiverNodeId = receiverNodeId; this.connIdx = connIdx; } + /** Constructor for {@link DiscoveryMessageFactory}. */ + public TcpConnectionRequestDiscoveryMessage() { + // No-op. + } + /** {@inheritDoc} */ @Override public IgniteUuid id() { return id; } - /** */ + /** @param id Message id. */ + public void id(IgniteUuid id) { + this.id = id; + } + + /** @return Receiver node id. */ public UUID receiverNodeId() { return receiverNodeId; } - /** */ + /** @param receiverNodeId Receiver node id. */ + public void receiverNodeId(UUID receiverNodeId) { + this.receiverNodeId = receiverNodeId; + } + + /** @return Connection index. */ public int connectionIndex() { return connIdx; } + /** @param connIdx Connection index. */ + public void connectionIndex(int connIdx) { + this.connIdx = connIdx; + } + /** {@inheritDoc} */ @Nullable @Override public DiscoveryCustomMessage ackMessage() { return null; @@ -90,6 +119,11 @@ public int connectionIndex() { throw new UnsupportedOperationException("createDiscoCache"); } + /** {@inheritDoc} */ + @Override public short directType() { + return 20; + } + /** {@inheritDoc} */ @Override public String toString() { return S.toString(TcpConnectionRequestDiscoveryMessage.class, this); From 131ae6e02caf72bd0f79e308c25427bbf93a96c2 Mon Sep 17 00:00:00 2001 From: Vladimir Steshin Date: Tue, 17 Feb 2026 15:42:47 +0300 Subject: [PATCH 02/10] impl --- .../discovery/DiscoveryMessageFactory.java | 9 ++- .../DistributedMetaStorageCasAckMessage.java | 22 ++++++- ...istributedMetaStorageUpdateAckMessage.java | 42 ++++++++++++-- .../TcpConnectionRequestDiscoveryMessage.java | 58 ++++--------------- 4 files changed, 75 insertions(+), 56 deletions(-) diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/DiscoveryMessageFactory.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/DiscoveryMessageFactory.java index 163ae8dbd8bc4..ac5d63605256b 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/DiscoveryMessageFactory.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/DiscoveryMessageFactory.java @@ -18,10 +18,11 @@ package org.apache.ignite.internal.managers.discovery; import org.apache.ignite.internal.codegen.DiscoveryDataPacketSerializer; +import org.apache.ignite.internal.codegen.DistributedMetaStorageCasAckMessageSerializer; +import org.apache.ignite.internal.codegen.DistributedMetaStorageUpdateAckMessageSerializer; import org.apache.ignite.internal.codegen.InetAddressMessageSerializer; import org.apache.ignite.internal.codegen.InetSocketAddressMessageSerializer; import org.apache.ignite.internal.codegen.NodeSpecificDataSerializer; -import org.apache.ignite.internal.codegen.TcpConnectionRequestDiscoveryMessageSerializer; import org.apache.ignite.internal.codegen.TcpDiscoveryAuthFailedMessageSerializer; import org.apache.ignite.internal.codegen.TcpDiscoveryCacheMetricsMessageSerializer; import org.apache.ignite.internal.codegen.TcpDiscoveryCheckFailedMessageSerializer; @@ -46,9 +47,10 @@ import org.apache.ignite.internal.codegen.TcpDiscoveryPingResponseSerializer; import org.apache.ignite.internal.codegen.TcpDiscoveryRingLatencyCheckMessageSerializer; import org.apache.ignite.internal.codegen.TcpDiscoveryStatusCheckMessageSerializer; +import org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageCasAckMessage; +import org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageUpdateAckMessage; import org.apache.ignite.plugin.extensions.communication.MessageFactory; import org.apache.ignite.plugin.extensions.communication.MessageFactoryProvider; -import org.apache.ignite.spi.communication.tcp.internal.TcpConnectionRequestDiscoveryMessage; import org.apache.ignite.spi.discovery.tcp.internal.DiscoveryDataPacket; import org.apache.ignite.spi.discovery.tcp.messages.InetAddressMessage; import org.apache.ignite.spi.discovery.tcp.messages.InetSocketAddressMessage; @@ -112,6 +114,7 @@ public class DiscoveryMessageFactory implements MessageFactoryProvider { factory.register((short)17, TcpDiscoveryNodeFailedMessage::new, new TcpDiscoveryNodeFailedMessageSerializer()); factory.register((short)18, TcpDiscoveryStatusCheckMessage::new, new TcpDiscoveryStatusCheckMessageSerializer()); factory.register((short)19, TcpDiscoveryNodeAddFinishedMessage::new, new TcpDiscoveryNodeAddFinishedMessageSerializer()); - factory.register((short)20, TcpConnectionRequestDiscoveryMessage::new, new TcpConnectionRequestDiscoveryMessageSerializer()); + factory.register((short)20, DistributedMetaStorageUpdateAckMessage::new, new DistributedMetaStorageUpdateAckMessageSerializer()); + factory.register((short)21, DistributedMetaStorageCasAckMessage::new, new DistributedMetaStorageCasAckMessageSerializer()); } } diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageCasAckMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageCasAckMessage.java index 30dda350ec66a..cd3d951f49fed 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageCasAckMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageCasAckMessage.java @@ -18,15 +18,23 @@ package org.apache.ignite.internal.processors.metastorage.persistence; 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; /** */ -class DistributedMetaStorageCasAckMessage extends DistributedMetaStorageUpdateAckMessage { +public class DistributedMetaStorageCasAckMessage extends DistributedMetaStorageUpdateAckMessage { /** */ private static final long serialVersionUID = 0L; /** */ - private final boolean updated; + @Order(3) + private boolean updated; + + /** Empty constructor of {@link DiscoveryMessageFactory}. */ + public DistributedMetaStorageCasAckMessage() { + // No-op. + } /** */ public DistributedMetaStorageCasAckMessage(UUID reqId, String errorMsg, boolean updated) { @@ -40,6 +48,16 @@ public boolean updated() { return updated; } + /** */ + public void updated(boolean updated) { + this.updated = updated; + } + + /** {@inheritDoc} */ + @Override public short directType() { + return 21; + } + /** {@inheritDoc} */ @Override public String toString() { return S.toString(DistributedMetaStorageCasAckMessage.class, this); diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageUpdateAckMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageUpdateAckMessage.java index 9008f8b72579e..65c32de1af1c6 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageUpdateAckMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageUpdateAckMessage.java @@ -18,30 +18,42 @@ package org.apache.ignite.internal.processors.metastorage.persistence; import java.util.UUID; +import org.apache.ignite.internal.Order; import org.apache.ignite.internal.managers.discovery.DiscoCache; import org.apache.ignite.internal.managers.discovery.DiscoveryCustomMessage; +import org.apache.ignite.internal.managers.discovery.DiscoveryMessageFactory; import org.apache.ignite.internal.managers.discovery.GridDiscoveryManager; import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion; import org.apache.ignite.internal.util.typedef.internal.S; import org.apache.ignite.lang.IgniteUuid; +import org.apache.ignite.plugin.extensions.communication.Message; import org.jetbrains.annotations.Nullable; /** */ -class DistributedMetaStorageUpdateAckMessage implements DiscoveryCustomMessage { +public class DistributedMetaStorageUpdateAckMessage implements DiscoveryCustomMessage, Message { /** */ private static final long serialVersionUID = 0L; /** */ - private final IgniteUuid id = IgniteUuid.randomUuid(); + @Order(0) + private IgniteUuid id; /** Request ID. */ - private final UUID reqId; + @Order(value = 1, method = "requestId") + private UUID reqId; /** */ - private final String errorMsg; + @Order(value = 2, method = "errorMessage") + private String errorMsg; + + /** Empty constructor of {@link DiscoveryMessageFactory}. */ + public DistributedMetaStorageUpdateAckMessage() { + // No-op. + } /** */ public DistributedMetaStorageUpdateAckMessage(UUID reqId, String errorMsg) { + id = IgniteUuid.randomUuid(); this.reqId = reqId; this.errorMsg = errorMsg; } @@ -51,16 +63,31 @@ public DistributedMetaStorageUpdateAckMessage(UUID reqId, String errorMsg) { return id; } - /** */ + /** @param id Message id. */ + public void id(IgniteUuid id) { + this.id = id; + } + + /** @return Request ID. */ public UUID requestId() { return reqId; } + /** @param reqId Request ID. */ + public void requestId(UUID reqId) { + this.reqId = reqId; + } + /** */ public String errorMessage() { return errorMsg; } + /** */ + public void errorMessage(String errorMsg) { + this.errorMsg = errorMsg; + } + /** {@inheritDoc} */ @Override @Nullable public DiscoveryCustomMessage ackMessage() { return null; @@ -80,6 +107,11 @@ public String errorMessage() { throw new UnsupportedOperationException(); } + /** {@inheritDoc} */ + @Override public short directType() { + return 20; + } + /** {@inheritDoc} */ @Override public String toString() { return S.toString(DistributedMetaStorageUpdateAckMessage.class, this); diff --git a/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/internal/TcpConnectionRequestDiscoveryMessage.java b/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/internal/TcpConnectionRequestDiscoveryMessage.java index e792ca5b1f22d..c512c2257b650 100644 --- a/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/internal/TcpConnectionRequestDiscoveryMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/internal/TcpConnectionRequestDiscoveryMessage.java @@ -18,88 +18,59 @@ package org.apache.ignite.spi.communication.tcp.internal; import java.util.UUID; -import org.apache.ignite.internal.Order; import org.apache.ignite.internal.managers.discovery.DiscoCache; import org.apache.ignite.internal.managers.discovery.DiscoveryCustomMessage; -import org.apache.ignite.internal.managers.discovery.DiscoveryMessageFactory; import org.apache.ignite.internal.managers.discovery.GridDiscoveryManager; import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion; import org.apache.ignite.internal.util.tostring.GridToStringInclude; import org.apache.ignite.internal.util.typedef.internal.S; import org.apache.ignite.lang.IgniteUuid; -import org.apache.ignite.plugin.extensions.communication.Message; import org.jetbrains.annotations.Nullable; /** - * Message to support new communication connection via discovery protocol. + * Message is part of communication via discovery protocol. + * * It is used when a node (say node A) cannot establish a communication connection to other node (node B) in topology * due to firewall or network configuration and sends this message requesting inverse connection: * node B receives request and opens communication connection to node A * thus allowing both nodes to communicate to each other. */ -public class TcpConnectionRequestDiscoveryMessage implements DiscoveryCustomMessage, Message { +public class TcpConnectionRequestDiscoveryMessage implements DiscoveryCustomMessage { /** */ private static final long serialVersionUID = 0L; - /** Message id. */ - @Order(0) - private IgniteUuid id; + /** */ + private final IgniteUuid id = IgniteUuid.randomUuid(); - /** Receiver node id. */ - @Order(1) + /** */ @GridToStringInclude - private UUID receiverNodeId; + private final UUID receiverNodeId; - /** Connection index. */ - @Order(value = 2, method = "connectionIndex") + /** */ @GridToStringInclude - private int connIdx; + private final int connIdx; - /** - * @param receiverNodeId Receiver node id. - * @param connIdx Connection index. - */ + /** */ public TcpConnectionRequestDiscoveryMessage(UUID receiverNodeId, int connIdx) { - id = IgniteUuid.randomUuid(); this.receiverNodeId = receiverNodeId; this.connIdx = connIdx; } - /** Constructor for {@link DiscoveryMessageFactory}. */ - public TcpConnectionRequestDiscoveryMessage() { - // No-op. - } - /** {@inheritDoc} */ @Override public IgniteUuid id() { return id; } - /** @param id Message id. */ - public void id(IgniteUuid id) { - this.id = id; - } - - /** @return Receiver node id. */ + /** */ public UUID receiverNodeId() { return receiverNodeId; } - /** @param receiverNodeId Receiver node id. */ - public void receiverNodeId(UUID receiverNodeId) { - this.receiverNodeId = receiverNodeId; - } - - /** @return Connection index. */ + /** */ public int connectionIndex() { return connIdx; } - /** @param connIdx Connection index. */ - public void connectionIndex(int connIdx) { - this.connIdx = connIdx; - } - /** {@inheritDoc} */ @Nullable @Override public DiscoveryCustomMessage ackMessage() { return null; @@ -119,11 +90,6 @@ public void connectionIndex(int connIdx) { throw new UnsupportedOperationException("createDiscoCache"); } - /** {@inheritDoc} */ - @Override public short directType() { - return 20; - } - /** {@inheritDoc} */ @Override public String toString() { return S.toString(TcpConnectionRequestDiscoveryMessage.class, this); From c6bcc7c17f33949d227267f161216d88c3cfe443 Mon Sep 17 00:00:00 2001 From: Vladimir Steshin Date: Tue, 17 Feb 2026 18:18:44 +0300 Subject: [PATCH 03/10] impl --- .../DistributedMetaStorageCasAckMessage.java | 6 +++--- .../DistributedMetaStorageCasMessage.java | 2 +- .../persistence/DistributedMetaStorageImpl.java | 17 ++++------------- .../DistributedMetaStorageUpdateAckMessage.java | 17 +---------------- .../DistributedMetaStorageUpdateMessage.java | 15 +-------------- 5 files changed, 10 insertions(+), 47 deletions(-) diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageCasAckMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageCasAckMessage.java index cd3d951f49fed..50b099512dd8e 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageCasAckMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageCasAckMessage.java @@ -28,7 +28,7 @@ public class DistributedMetaStorageCasAckMessage extends DistributedMetaStorageU private static final long serialVersionUID = 0L; /** */ - @Order(3) + @Order(2) private boolean updated; /** Empty constructor of {@link DiscoveryMessageFactory}. */ @@ -37,8 +37,8 @@ public DistributedMetaStorageCasAckMessage() { } /** */ - public DistributedMetaStorageCasAckMessage(UUID reqId, String errorMsg, boolean updated) { - super(reqId, errorMsg); + public DistributedMetaStorageCasAckMessage(UUID reqId, boolean updated) { + super(reqId); this.updated = updated; } diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageCasMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageCasMessage.java index fa279596cba85..88f64122892d4 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageCasMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageCasMessage.java @@ -57,7 +57,7 @@ public boolean matches() { /** {@inheritDoc} */ @Override @Nullable public DiscoveryCustomMessage ackMessage() { - return new DistributedMetaStorageCasAckMessage(requestId(), errorMessage(), matches); + return new DistributedMetaStorageCasAckMessage(requestId(), matches); } /** {@inheritDoc} */ diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageImpl.java index 147b98ceead25..c9c0d6c49f9a1 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageImpl.java @@ -1128,9 +1128,6 @@ private void onUpdateMessage( ClusterNode node, DistributedMetaStorageUpdateMessage msg ) { - if (msg.errorMessage() != null) - return; - lock.writeLock().lock(); try { @@ -1166,17 +1163,11 @@ private void onAckMessage( GridFutureAdapter fut = updateFuts.remove(msg.requestId()); if (fut != null) { - String errorMsg = msg.errorMessage(); - - if (errorMsg == null) { - Boolean res = msg instanceof DistributedMetaStorageCasAckMessage - ? ((DistributedMetaStorageCasAckMessage)msg).updated() - : null; + Boolean res = msg instanceof DistributedMetaStorageCasAckMessage + ? ((DistributedMetaStorageCasAckMessage)msg).updated() + : null; - fut.onDone(res); - } - else - fut.onDone(new IllegalStateException(errorMsg)); + fut.onDone(res); } } diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageUpdateAckMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageUpdateAckMessage.java index 65c32de1af1c6..313cf5038a486 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageUpdateAckMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageUpdateAckMessage.java @@ -42,20 +42,15 @@ public class DistributedMetaStorageUpdateAckMessage implements DiscoveryCustomMe @Order(value = 1, method = "requestId") private UUID reqId; - /** */ - @Order(value = 2, method = "errorMessage") - private String errorMsg; - /** Empty constructor of {@link DiscoveryMessageFactory}. */ public DistributedMetaStorageUpdateAckMessage() { // No-op. } /** */ - public DistributedMetaStorageUpdateAckMessage(UUID reqId, String errorMsg) { + public DistributedMetaStorageUpdateAckMessage(UUID reqId) { id = IgniteUuid.randomUuid(); this.reqId = reqId; - this.errorMsg = errorMsg; } /** {@inheritDoc} */ @@ -78,16 +73,6 @@ public void requestId(UUID reqId) { this.reqId = reqId; } - /** */ - public String errorMessage() { - return errorMsg; - } - - /** */ - public void errorMessage(String errorMsg) { - this.errorMsg = errorMsg; - } - /** {@inheritDoc} */ @Override @Nullable public DiscoveryCustomMessage ackMessage() { return null; diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageUpdateMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageUpdateMessage.java index 74dc88f6ade34..7ea5a8a21a60e 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageUpdateMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageUpdateMessage.java @@ -46,9 +46,6 @@ class DistributedMetaStorageUpdateMessage implements DiscoveryCustomMessage { /** */ private final byte[] valBytes; - /** */ - private String errorMsg; - /** */ public DistributedMetaStorageUpdateMessage(UUID reqId, String key, byte[] valBytes) { this.reqId = reqId; @@ -81,19 +78,9 @@ public boolean isAckMessage() { return false; } - /** */ - public void errorMessage(String errorMsg) { - this.errorMsg = errorMsg; - } - - /** */ - protected String errorMessage() { - return errorMsg; - } - /** {@inheritDoc} */ @Override @Nullable public DiscoveryCustomMessage ackMessage() { - return new DistributedMetaStorageUpdateAckMessage(reqId, errorMsg); + return new DistributedMetaStorageUpdateAckMessage(reqId); } /** {@inheritDoc} */ From 43e850f9bf41e4e3ef5069842a16e3c47250adc8 Mon Sep 17 00:00:00 2001 From: Vladimir Steshin Date: Tue, 24 Feb 2026 12:45:31 +0300 Subject: [PATCH 04/10] merged master --- .../discovery/DiscoveryMessageFactory.java | 4 ++++ .../DistributedMetaStorageCasAckMessage.java | 12 +---------- .../DistributedMetaStorageImpl.java | 4 ++-- ...istributedMetaStorageUpdateAckMessage.java | 21 +++---------------- 4 files changed, 10 insertions(+), 31 deletions(-) diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/DiscoveryMessageFactory.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/DiscoveryMessageFactory.java index 99ce339958f50..47e4cf4ea27d4 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/DiscoveryMessageFactory.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/DiscoveryMessageFactory.java @@ -17,6 +17,10 @@ package org.apache.ignite.internal.managers.discovery; +import org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageCasAckMessage; +import org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageCasAckMessageSerializer; +import org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageUpdateAckMessage; +import org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageUpdateAckMessageSerializer; import org.apache.ignite.plugin.extensions.communication.MessageFactory; import org.apache.ignite.plugin.extensions.communication.MessageFactoryProvider; import org.apache.ignite.spi.discovery.tcp.internal.DiscoveryDataPacket; diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageCasAckMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageCasAckMessage.java index 50b099512dd8e..71db79169340b 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageCasAckMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageCasAckMessage.java @@ -29,7 +29,7 @@ public class DistributedMetaStorageCasAckMessage extends DistributedMetaStorageU /** */ @Order(2) - private boolean updated; + boolean updated; /** Empty constructor of {@link DiscoveryMessageFactory}. */ public DistributedMetaStorageCasAckMessage() { @@ -43,16 +43,6 @@ public DistributedMetaStorageCasAckMessage(UUID reqId, boolean updated) { this.updated = updated; } - /** */ - public boolean updated() { - return updated; - } - - /** */ - public void updated(boolean updated) { - this.updated = updated; - } - /** {@inheritDoc} */ @Override public short directType() { return 21; diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageImpl.java index c9c0d6c49f9a1..4907f42e2e066 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageImpl.java @@ -1160,11 +1160,11 @@ private void onAckMessage( ClusterNode node, DistributedMetaStorageUpdateAckMessage msg ) { - GridFutureAdapter fut = updateFuts.remove(msg.requestId()); + GridFutureAdapter fut = updateFuts.remove(msg.reqId); if (fut != null) { Boolean res = msg instanceof DistributedMetaStorageCasAckMessage - ? ((DistributedMetaStorageCasAckMessage)msg).updated() + ? ((DistributedMetaStorageCasAckMessage)msg).updated : null; fut.onDone(res); diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageUpdateAckMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageUpdateAckMessage.java index 313cf5038a486..58e2ff8bc783e 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageUpdateAckMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageUpdateAckMessage.java @@ -36,11 +36,11 @@ public class DistributedMetaStorageUpdateAckMessage implements DiscoveryCustomMe /** */ @Order(0) - private IgniteUuid id; + IgniteUuid id; /** Request ID. */ - @Order(value = 1, method = "requestId") - private UUID reqId; + @Order(1) + UUID reqId; /** Empty constructor of {@link DiscoveryMessageFactory}. */ public DistributedMetaStorageUpdateAckMessage() { @@ -58,21 +58,6 @@ public DistributedMetaStorageUpdateAckMessage(UUID reqId) { return id; } - /** @param id Message id. */ - public void id(IgniteUuid id) { - this.id = id; - } - - /** @return Request ID. */ - public UUID requestId() { - return reqId; - } - - /** @param reqId Request ID. */ - public void requestId(UUID reqId) { - this.reqId = reqId; - } - /** {@inheritDoc} */ @Override @Nullable public DiscoveryCustomMessage ackMessage() { return null; From ad3804b7acae1a8aeb6ff8b31b98aef366e528d5 Mon Sep 17 00:00:00 2001 From: Vladimir Steshin Date: Tue, 24 Feb 2026 16:50:26 +0300 Subject: [PATCH 05/10] + master --- .../persistence/DistributedMetaStorageCasAckMessage.java | 2 +- .../persistence/DistributedMetaStorageUpdateAckMessage.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageCasAckMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageCasAckMessage.java index 71db79169340b..0f02e5a4c800d 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageCasAckMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageCasAckMessage.java @@ -45,7 +45,7 @@ public DistributedMetaStorageCasAckMessage(UUID reqId, boolean updated) { /** {@inheritDoc} */ @Override public short directType() { - return 21; + return 22; } /** {@inheritDoc} */ diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageUpdateAckMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageUpdateAckMessage.java index 58e2ff8bc783e..95943903d719c 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageUpdateAckMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageUpdateAckMessage.java @@ -79,7 +79,7 @@ public DistributedMetaStorageUpdateAckMessage(UUID reqId) { /** {@inheritDoc} */ @Override public short directType() { - return 20; + return 21; } /** {@inheritDoc} */ From b3638c0a53af06e0602710be3547be0ac7968d3c Mon Sep 17 00:00:00 2001 From: Vladimir Steshin Date: Thu, 26 Feb 2026 23:59:44 +0300 Subject: [PATCH 06/10] + master --- .../managers/discovery/DiscoveryMessageFactory.java | 6 ++++-- .../persistence/DistributedMetaStorageCasAckMessage.java | 2 +- .../persistence/DistributedMetaStorageUpdateAckMessage.java | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/DiscoveryMessageFactory.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/DiscoveryMessageFactory.java index 8418c5a4efd14..a44f93dfb173d 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/DiscoveryMessageFactory.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/DiscoveryMessageFactory.java @@ -20,7 +20,9 @@ import org.apache.ignite.internal.processors.cache.CacheStatisticsModeChangeMessage; import org.apache.ignite.internal.processors.cache.CacheStatisticsModeChangeMessageSerializer; import org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageCasAckMessage; +import org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageCasAckMessageSerializer; import org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageUpdateAckMessage; +import org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageUpdateAckMessageSerializer; import org.apache.ignite.plugin.extensions.communication.MessageFactory; import org.apache.ignite.plugin.extensions.communication.MessageFactoryProvider; import org.apache.ignite.spi.discovery.tcp.internal.DiscoveryDataPacket; @@ -125,8 +127,8 @@ public class DiscoveryMessageFactory implements MessageFactoryProvider { factory.register((short)21, TcpDiscoveryCustomEventMessage::new, new TcpDiscoveryCustomEventMessageSerializer()); factory.register((short)22, TcpDiscoveryServerOnlyCustomEventMessage::new, new TcpDiscoveryServerOnlyCustomEventMessageSerializer()); - factory.register((short)21, DistributedMetaStorageUpdateAckMessage::new, new DistributedMetaStorageUpdateAckMessageSerializer()); - factory.register((short)22, DistributedMetaStorageCasAckMessage::new, new DistributedMetaStorageCasAckMessageSerializer()); + factory.register((short)23, DistributedMetaStorageUpdateAckMessage::new, new DistributedMetaStorageUpdateAckMessageSerializer()); + factory.register((short)24, DistributedMetaStorageCasAckMessage::new, new DistributedMetaStorageCasAckMessageSerializer()); // DiscoveryCustomMessage factory.register((short)500, CacheStatisticsModeChangeMessage::new, new CacheStatisticsModeChangeMessageSerializer()); diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageCasAckMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageCasAckMessage.java index 0f02e5a4c800d..5669fe6ebf652 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageCasAckMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageCasAckMessage.java @@ -45,7 +45,7 @@ public DistributedMetaStorageCasAckMessage(UUID reqId, boolean updated) { /** {@inheritDoc} */ @Override public short directType() { - return 22; + return 24; } /** {@inheritDoc} */ diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageUpdateAckMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageUpdateAckMessage.java index 95943903d719c..4c3a7bfa2ef52 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageUpdateAckMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageUpdateAckMessage.java @@ -79,7 +79,7 @@ public DistributedMetaStorageUpdateAckMessage(UUID reqId) { /** {@inheritDoc} */ @Override public short directType() { - return 21; + return 23; } /** {@inheritDoc} */ From 049e62e0b6ba1f33ab82867b976f1b224be3f229 Mon Sep 17 00:00:00 2001 From: Vladimir Steshin Date: Tue, 3 Mar 2026 16:59:25 +0300 Subject: [PATCH 07/10] review fixes --- .../persistence/DistributedMetaStorageCasAckMessage.java | 7 ++++++- .../persistence/DistributedMetaStorageImpl.java | 4 ++-- .../DistributedMetaStorageUpdateAckMessage.java | 5 +++++ 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageCasAckMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageCasAckMessage.java index 5669fe6ebf652..0f760ad4c9924 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageCasAckMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageCasAckMessage.java @@ -28,7 +28,7 @@ public class DistributedMetaStorageCasAckMessage extends DistributedMetaStorageU private static final long serialVersionUID = 0L; /** */ - @Order(2) + @Order(0) boolean updated; /** Empty constructor of {@link DiscoveryMessageFactory}. */ @@ -43,6 +43,11 @@ public DistributedMetaStorageCasAckMessage(UUID reqId, boolean updated) { this.updated = updated; } + /** */ + public boolean updated() { + return updated; + } + /** {@inheritDoc} */ @Override public short directType() { return 24; diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageImpl.java index 4907f42e2e066..c9c0d6c49f9a1 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageImpl.java @@ -1160,11 +1160,11 @@ private void onAckMessage( ClusterNode node, DistributedMetaStorageUpdateAckMessage msg ) { - GridFutureAdapter fut = updateFuts.remove(msg.reqId); + GridFutureAdapter fut = updateFuts.remove(msg.requestId()); if (fut != null) { Boolean res = msg instanceof DistributedMetaStorageCasAckMessage - ? ((DistributedMetaStorageCasAckMessage)msg).updated + ? ((DistributedMetaStorageCasAckMessage)msg).updated() : null; fut.onDone(res); diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageUpdateAckMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageUpdateAckMessage.java index 4c3a7bfa2ef52..f2631eccf0d3e 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageUpdateAckMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageUpdateAckMessage.java @@ -58,6 +58,11 @@ public DistributedMetaStorageUpdateAckMessage(UUID reqId) { return id; } + /** */ + public UUID requestId() { + return reqId; + } + /** {@inheritDoc} */ @Override @Nullable public DiscoveryCustomMessage ackMessage() { return null; From 883213edff3ab68c06392a32969cff25197f3aaf Mon Sep 17 00:00:00 2001 From: Vladimir Steshin Date: Tue, 3 Mar 2026 17:37:19 +0300 Subject: [PATCH 08/10] merged tickets. +master --- .../discovery/DiscoveryMessageFactory.java | 10 +++++-- .../DistributedMetaStorageCasAckMessage.java | 2 +- .../DistributedMetaStorageCasMessage.java | 21 ++++++++++++-- ...istributedMetaStorageUpdateAckMessage.java | 2 +- .../DistributedMetaStorageUpdateMessage.java | 29 +++++++++++++++---- 5 files changed, 52 insertions(+), 12 deletions(-) diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/DiscoveryMessageFactory.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/DiscoveryMessageFactory.java index a6414738a654a..85c5bd58d979f 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/DiscoveryMessageFactory.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/DiscoveryMessageFactory.java @@ -27,6 +27,10 @@ import org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageCasAckMessageSerializer; import org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageUpdateAckMessage; import org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageUpdateAckMessageSerializer; +import org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageCasMessage; +import org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageCasMessageSerializer; +import org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageUpdateMessage; +import org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageUpdateMessageSerializer; import org.apache.ignite.plugin.extensions.communication.MessageFactory; import org.apache.ignite.plugin.extensions.communication.MessageFactoryProvider; import org.apache.ignite.spi.discovery.tcp.internal.DiscoveryDataPacket; @@ -131,8 +135,10 @@ public class DiscoveryMessageFactory implements MessageFactoryProvider { factory.register((short)21, TcpDiscoveryCustomEventMessage::new, new TcpDiscoveryCustomEventMessageSerializer()); factory.register((short)22, TcpDiscoveryServerOnlyCustomEventMessage::new, new TcpDiscoveryServerOnlyCustomEventMessageSerializer()); - factory.register((short)23, DistributedMetaStorageUpdateAckMessage::new, new DistributedMetaStorageUpdateAckMessageSerializer()); - factory.register((short)24, DistributedMetaStorageCasAckMessage::new, new DistributedMetaStorageCasAckMessageSerializer()); + factory.register((short)23, DistributedMetaStorageUpdateMessage::new, new DistributedMetaStorageUpdateMessageSerializer()); + factory.register((short)24, DistributedMetaStorageUpdateAckMessage::new, new DistributedMetaStorageUpdateAckMessageSerializer()); + factory.register((short)25, DistributedMetaStorageCasMessage::new, new DistributedMetaStorageCasMessageSerializer()); + factory.register((short)26, DistributedMetaStorageCasAckMessage::new, new DistributedMetaStorageCasAckMessageSerializer()); // DiscoveryCustomMessage factory.register((short)500, CacheStatisticsModeChangeMessage::new, new CacheStatisticsModeChangeMessageSerializer()); diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageCasAckMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageCasAckMessage.java index 0f760ad4c9924..bd1f8f488c7df 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageCasAckMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageCasAckMessage.java @@ -50,7 +50,7 @@ public boolean updated() { /** {@inheritDoc} */ @Override public short directType() { - return 24; + return 26; } /** {@inheritDoc} */ diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageCasMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageCasMessage.java index 88f64122892d4..5f0fe9adf129b 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageCasMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageCasMessage.java @@ -18,26 +18,36 @@ package org.apache.ignite.internal.processors.metastorage.persistence; import java.util.UUID; +import org.apache.ignite.internal.Order; import org.apache.ignite.internal.managers.discovery.DiscoveryCustomMessage; +import org.apache.ignite.internal.managers.discovery.DiscoveryMessageFactory; import org.apache.ignite.internal.util.typedef.internal.S; import org.jetbrains.annotations.Nullable; /** */ -class DistributedMetaStorageCasMessage extends DistributedMetaStorageUpdateMessage { +public class DistributedMetaStorageCasMessage extends DistributedMetaStorageUpdateMessage { /** */ private static final long serialVersionUID = 0L; /** */ - private final byte[] expectedVal; + @Order(0) + byte[] expectedVal; /** */ - private boolean matches = true; + @Order(1) + boolean matches; + + /** Empty constructor for {@link DiscoveryMessageFactory}. */ + public DistributedMetaStorageCasMessage() { + // No-op. + } /** */ public DistributedMetaStorageCasMessage(UUID reqId, String key, byte[] expValBytes, byte[] valBytes) { super(reqId, key, valBytes); expectedVal = expValBytes; + matches = true; } /** */ @@ -60,6 +70,11 @@ public boolean matches() { return new DistributedMetaStorageCasAckMessage(requestId(), matches); } + /** {@inheritDoc} */ + @Override public short directType() { + return 25; + } + /** {@inheritDoc} */ @Override public String toString() { return S.toString(DistributedMetaStorageCasMessage.class, this, super.toString()); diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageUpdateAckMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageUpdateAckMessage.java index f2631eccf0d3e..e1f697999d337 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageUpdateAckMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageUpdateAckMessage.java @@ -84,7 +84,7 @@ public UUID requestId() { /** {@inheritDoc} */ @Override public short directType() { - return 23; + return 24; } /** {@inheritDoc} */ diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageUpdateMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageUpdateMessage.java index 372a676530dac..c58ddc182eb95 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageUpdateMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageUpdateMessage.java @@ -18,36 +18,50 @@ package org.apache.ignite.internal.processors.metastorage.persistence; import java.util.UUID; +import org.apache.ignite.internal.Order; import org.apache.ignite.internal.managers.discovery.DiscoCache; import org.apache.ignite.internal.managers.discovery.DiscoveryCustomMessage; +import org.apache.ignite.internal.managers.discovery.DiscoveryMessageFactory; import org.apache.ignite.internal.managers.discovery.GridDiscoveryManager; import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion; import org.apache.ignite.internal.util.tostring.GridToStringInclude; import org.apache.ignite.internal.util.typedef.internal.S; import org.apache.ignite.lang.IgniteUuid; +import org.apache.ignite.plugin.extensions.communication.Message; import org.jetbrains.annotations.Nullable; /** */ -class DistributedMetaStorageUpdateMessage implements DiscoveryCustomMessage { +public class DistributedMetaStorageUpdateMessage implements DiscoveryCustomMessage, Message { /** */ private static final long serialVersionUID = 0L; /** */ - private final IgniteUuid id = IgniteUuid.randomUuid(); + @Order(0) + IgniteUuid id; /** Request ID. */ + @Order(1) @GridToStringInclude - private final UUID reqId; + UUID reqId; /** */ + @Order(2) @GridToStringInclude - private final String key; + String key; /** */ - private final byte[] valBytes; + @Order(3) + byte[] valBytes; + + /** Empty constructor for {@link DiscoveryMessageFactory}. */ + public DistributedMetaStorageUpdateMessage() { + // No-op. + } /** */ public DistributedMetaStorageUpdateMessage(UUID reqId, String key, byte[] valBytes) { + id = IgniteUuid.randomUuid(); + this.reqId = reqId; this.key = key; this.valBytes = valBytes; @@ -92,6 +106,11 @@ public byte[] value() { throw new UnsupportedOperationException("createDiscoCache"); } + /** {@inheritDoc} */ + @Override public short directType() { + return 23; + } + /** {@inheritDoc} */ @Override public String toString() { return S.toString(DistributedMetaStorageUpdateMessage.class, this); From e71c41b3b690a134173d0c3f0a14bc043c154a6f Mon Sep 17 00:00:00 2001 From: Vladimir Steshin Date: Wed, 4 Mar 2026 13:07:29 +0300 Subject: [PATCH 09/10] + master --- .../managers/discovery/DiscoveryMessageFactory.java | 8 ++++---- .../persistence/DistributedMetaStorageCasAckMessage.java | 2 +- .../persistence/DistributedMetaStorageCasMessage.java | 2 +- .../persistence/DistributedMetaStorageUpdateMessage.java | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/DiscoveryMessageFactory.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/DiscoveryMessageFactory.java index 90ef0e153bc8d..c35dda4af8223 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/DiscoveryMessageFactory.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/DiscoveryMessageFactory.java @@ -29,14 +29,14 @@ import org.apache.ignite.internal.processors.cache.binary.MetadataRemoveProposedMessageSerializer; import org.apache.ignite.internal.processors.cache.binary.MetadataUpdateAcceptedMessage; import org.apache.ignite.internal.processors.cache.binary.MetadataUpdateAcceptedMessageSerializer; -import org.apache.ignite.internal.processors.query.schema.message.SchemaFinishDiscoveryMessage; -import org.apache.ignite.internal.processors.query.schema.message.SchemaFinishDiscoveryMessageSerializer; -import org.apache.ignite.internal.processors.query.schema.message.SchemaProposeDiscoveryMessage; -import org.apache.ignite.internal.processors.query.schema.message.SchemaProposeDiscoveryMessageSerializer; import org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageCasAckMessage; import org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageCasAckMessageSerializer; import org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageUpdateAckMessage; import org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageUpdateAckMessageSerializer; +import org.apache.ignite.internal.processors.query.schema.message.SchemaFinishDiscoveryMessage; +import org.apache.ignite.internal.processors.query.schema.message.SchemaFinishDiscoveryMessageSerializer; +import org.apache.ignite.internal.processors.query.schema.message.SchemaProposeDiscoveryMessage; +import org.apache.ignite.internal.processors.query.schema.message.SchemaProposeDiscoveryMessageSerializer; import org.apache.ignite.plugin.extensions.communication.MessageFactory; import org.apache.ignite.plugin.extensions.communication.MessageFactoryProvider; import org.apache.ignite.spi.discovery.tcp.internal.DiscoveryDataPacket; diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageCasAckMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageCasAckMessage.java index 5669fe6ebf652..2ea4fce7ce46a 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageCasAckMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageCasAckMessage.java @@ -28,7 +28,7 @@ public class DistributedMetaStorageCasAckMessage extends DistributedMetaStorageU private static final long serialVersionUID = 0L; /** */ - @Order(2) + @Order(0) boolean updated; /** Empty constructor of {@link DiscoveryMessageFactory}. */ diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageCasMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageCasMessage.java index 88f64122892d4..8035ae7f8c199 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageCasMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageCasMessage.java @@ -27,7 +27,7 @@ class DistributedMetaStorageCasMessage extends DistributedMetaStorageUpdateMessa /** */ private static final long serialVersionUID = 0L; - /** */ + /** TODO: revise the external serialization https://issues.apache.org/jira/browse/IGNITE-28058. */ private final byte[] expectedVal; /** */ diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageUpdateMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageUpdateMessage.java index 372a676530dac..2941ec76e6bde 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageUpdateMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageUpdateMessage.java @@ -43,7 +43,7 @@ class DistributedMetaStorageUpdateMessage implements DiscoveryCustomMessage { @GridToStringInclude private final String key; - /** */ + /** TODO: revise the external serialization https://issues.apache.org/jira/browse/IGNITE-28058. */ private final byte[] valBytes; /** */ From 6c69f4518666150b8a13d809facb94e0496dce12 Mon Sep 17 00:00:00 2001 From: Vladimir Steshin Date: Fri, 6 Mar 2026 13:29:30 +0300 Subject: [PATCH 10/10] lost fixes --- .../discovery/DiscoveryMessageFactory.java | 10 +++++-- .../DistributedMetaStorageCasAckMessage.java | 2 +- .../DistributedMetaStorageCasMessage.java | 21 ++++++++++++-- ...istributedMetaStorageUpdateAckMessage.java | 2 +- .../DistributedMetaStorageUpdateMessage.java | 29 +++++++++++++++---- 5 files changed, 52 insertions(+), 12 deletions(-) diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/DiscoveryMessageFactory.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/DiscoveryMessageFactory.java index e0226d8571ba7..2c2655cad43e1 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/DiscoveryMessageFactory.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/DiscoveryMessageFactory.java @@ -45,8 +45,12 @@ import org.apache.ignite.internal.processors.cluster.ChangeGlobalStateFinishMessageSerializer; import org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageCasAckMessage; import org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageCasAckMessageSerializer; +import org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageCasMessage; +import org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageCasMessageSerializer; import org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageUpdateAckMessage; import org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageUpdateAckMessageSerializer; +import org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageUpdateMessage; +import org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageUpdateMessageSerializer; import org.apache.ignite.internal.processors.query.schema.message.SchemaFinishDiscoveryMessage; import org.apache.ignite.internal.processors.query.schema.message.SchemaFinishDiscoveryMessageSerializer; import org.apache.ignite.internal.processors.query.schema.message.SchemaProposeDiscoveryMessage; @@ -161,8 +165,10 @@ public class DiscoveryMessageFactory implements MessageFactoryProvider { factory.register((short)22, TcpDiscoveryServerOnlyCustomEventMessage::new, new TcpDiscoveryServerOnlyCustomEventMessageSerializer()); factory.register((short)23, TcpConnectionRequestDiscoveryMessage::new, new TcpConnectionRequestDiscoveryMessageSerializer()); - factory.register((short)24, DistributedMetaStorageUpdateAckMessage::new, new DistributedMetaStorageUpdateAckMessageSerializer()); - factory.register((short)25, DistributedMetaStorageCasAckMessage::new, new DistributedMetaStorageCasAckMessageSerializer()); + factory.register((short)24, DistributedMetaStorageUpdateMessage::new, new DistributedMetaStorageUpdateMessageSerializer()); + factory.register((short)25, DistributedMetaStorageUpdateAckMessage::new, new DistributedMetaStorageUpdateAckMessageSerializer()); + factory.register((short)26, DistributedMetaStorageCasMessage::new, new DistributedMetaStorageCasMessageSerializer()); + factory.register((short)27, DistributedMetaStorageCasAckMessage::new, new DistributedMetaStorageCasAckMessageSerializer()); // DiscoveryCustomMessage factory.register((short)500, CacheStatisticsModeChangeMessage::new, new CacheStatisticsModeChangeMessageSerializer()); diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageCasAckMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageCasAckMessage.java index bd1f8f488c7df..8c3b7b7e14450 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageCasAckMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageCasAckMessage.java @@ -50,7 +50,7 @@ public boolean updated() { /** {@inheritDoc} */ @Override public short directType() { - return 26; + return 27; } /** {@inheritDoc} */ diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageCasMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageCasMessage.java index 8035ae7f8c199..17532aff37be4 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageCasMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageCasMessage.java @@ -18,26 +18,36 @@ package org.apache.ignite.internal.processors.metastorage.persistence; import java.util.UUID; +import org.apache.ignite.internal.Order; import org.apache.ignite.internal.managers.discovery.DiscoveryCustomMessage; +import org.apache.ignite.internal.managers.discovery.DiscoveryMessageFactory; import org.apache.ignite.internal.util.typedef.internal.S; import org.jetbrains.annotations.Nullable; /** */ -class DistributedMetaStorageCasMessage extends DistributedMetaStorageUpdateMessage { +public class DistributedMetaStorageCasMessage extends DistributedMetaStorageUpdateMessage { /** */ private static final long serialVersionUID = 0L; /** TODO: revise the external serialization https://issues.apache.org/jira/browse/IGNITE-28058. */ - private final byte[] expectedVal; + @Order(0) + byte[] expectedVal; /** */ - private boolean matches = true; + @Order(1) + boolean matches; + + /** Empty constructor for {@link DiscoveryMessageFactory}. */ + public DistributedMetaStorageCasMessage() { + // No-op. + } /** */ public DistributedMetaStorageCasMessage(UUID reqId, String key, byte[] expValBytes, byte[] valBytes) { super(reqId, key, valBytes); expectedVal = expValBytes; + matches = true; } /** */ @@ -60,6 +70,11 @@ public boolean matches() { return new DistributedMetaStorageCasAckMessage(requestId(), matches); } + /** {@inheritDoc} */ + @Override public short directType() { + return 26; + } + /** {@inheritDoc} */ @Override public String toString() { return S.toString(DistributedMetaStorageCasMessage.class, this, super.toString()); diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageUpdateAckMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageUpdateAckMessage.java index e1f697999d337..cbb435810fce8 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageUpdateAckMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageUpdateAckMessage.java @@ -84,7 +84,7 @@ public UUID requestId() { /** {@inheritDoc} */ @Override public short directType() { - return 24; + return 25; } /** {@inheritDoc} */ diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageUpdateMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageUpdateMessage.java index 2941ec76e6bde..3cc625dfea750 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageUpdateMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageUpdateMessage.java @@ -18,36 +18,50 @@ package org.apache.ignite.internal.processors.metastorage.persistence; import java.util.UUID; +import org.apache.ignite.internal.Order; import org.apache.ignite.internal.managers.discovery.DiscoCache; import org.apache.ignite.internal.managers.discovery.DiscoveryCustomMessage; +import org.apache.ignite.internal.managers.discovery.DiscoveryMessageFactory; import org.apache.ignite.internal.managers.discovery.GridDiscoveryManager; import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion; import org.apache.ignite.internal.util.tostring.GridToStringInclude; import org.apache.ignite.internal.util.typedef.internal.S; import org.apache.ignite.lang.IgniteUuid; +import org.apache.ignite.plugin.extensions.communication.Message; import org.jetbrains.annotations.Nullable; /** */ -class DistributedMetaStorageUpdateMessage implements DiscoveryCustomMessage { +public class DistributedMetaStorageUpdateMessage implements DiscoveryCustomMessage, Message { /** */ private static final long serialVersionUID = 0L; /** */ - private final IgniteUuid id = IgniteUuid.randomUuid(); + @Order(0) + IgniteUuid id; /** Request ID. */ @GridToStringInclude - private final UUID reqId; + @Order(1) + UUID reqId; /** */ @GridToStringInclude - private final String key; + @Order(2) + String key; /** TODO: revise the external serialization https://issues.apache.org/jira/browse/IGNITE-28058. */ - private final byte[] valBytes; + @Order(3) + byte[] valBytes; + + /** Empty constructor for {@link DiscoveryMessageFactory}. */ + public DistributedMetaStorageUpdateMessage() { + // No-op. + } /** */ public DistributedMetaStorageUpdateMessage(UUID reqId, String key, byte[] valBytes) { + id = IgniteUuid.randomUuid(); + this.reqId = reqId; this.key = key; this.valBytes = valBytes; @@ -92,6 +106,11 @@ public byte[] value() { throw new UnsupportedOperationException("createDiscoCache"); } + /** {@inheritDoc} */ + @Override public short directType() { + return 24; + } + /** {@inheritDoc} */ @Override public String toString() { return S.toString(DistributedMetaStorageUpdateMessage.class, this);