This is an automated email from the ASF dual-hosted git repository.
shishkovilja pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite.git
The following commit(s) were added to refs/heads/master by this push:
new 81cfb746549 IGNITE-27888 Use message serializer for
DistributedMetaStorageUpdateAckMessage and DistributedMetaStorageCasAckMessage
(#12754)
81cfb746549 is described below
commit 81cfb7465498d10f75ead9d893a81167277ad8ab
Author: Vladimir Steshin <[email protected]>
AuthorDate: Tue Mar 10 18:00:25 2026 +0300
IGNITE-27888 Use message serializer for
DistributedMetaStorageUpdateAckMessage and DistributedMetaStorageCasAckMessage
(#12754)
---
.../discovery/DiscoveryMessageFactory.java | 12 +++++++
.../DistributedMetaStorageCasAckMessage.java | 21 +++++++++---
.../DistributedMetaStorageCasMessage.java | 25 +++++++++++---
.../persistence/DistributedMetaStorageImpl.java | 17 +++-------
.../DistributedMetaStorageUpdateAckMessage.java | 31 ++++++++++-------
.../DistributedMetaStorageUpdateMessage.java | 39 ++++++++++++++--------
6 files changed, 97 insertions(+), 48 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 943291439f9..bc8dfcba489 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
@@ -47,6 +47,14 @@ import
org.apache.ignite.internal.processors.continuous.StopRoutineAckDiscoveryM
import
org.apache.ignite.internal.processors.continuous.StopRoutineAckDiscoveryMessageSerializer;
import
org.apache.ignite.internal.processors.continuous.StopRoutineDiscoveryMessage;
import
org.apache.ignite.internal.processors.continuous.StopRoutineDiscoveryMessageSerializer;
+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,6 +169,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, 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 30dda350ec6..8c3b7b7e144 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,19 +18,27 @@
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(0)
+ boolean updated;
+
+ /** Empty constructor of {@link DiscoveryMessageFactory}. */
+ public DistributedMetaStorageCasAckMessage() {
+ // No-op.
+ }
/** */
- public DistributedMetaStorageCasAckMessage(UUID reqId, String errorMsg,
boolean updated) {
- super(reqId, errorMsg);
+ public DistributedMetaStorageCasAckMessage(UUID reqId, boolean updated) {
+ super(reqId);
this.updated = updated;
}
@@ -40,6 +48,11 @@ class DistributedMetaStorageCasAckMessage extends
DistributedMetaStorageUpdateAc
return updated;
}
+ /** {@inheritDoc} */
+ @Override public short directType() {
+ return 27;
+ }
+
/** {@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/DistributedMetaStorageCasMessage.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DistributedMetaStorageCasMessage.java
index fa279596cba..17532aff37b 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;
+ /** TODO: revise the external serialization
https://issues.apache.org/jira/browse/IGNITE-28058. */
+ @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;
}
/** */
@@ -57,7 +67,12 @@ class DistributedMetaStorageCasMessage extends
DistributedMetaStorageUpdateMessa
/** {@inheritDoc} */
@Override @Nullable public DiscoveryCustomMessage ackMessage() {
- return new DistributedMetaStorageCasAckMessage(requestId(),
errorMessage(), matches);
+ return new DistributedMetaStorageCasAckMessage(requestId(), matches);
+ }
+
+ /** {@inheritDoc} */
+ @Override public short directType() {
+ return 26;
}
/** {@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 147b98ceead..c9c0d6c49f9 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 @@ public class DistributedMetaStorageImpl extends
GridProcessorAdapter
ClusterNode node,
DistributedMetaStorageUpdateMessage msg
) {
- if (msg.errorMessage() != null)
- return;
-
lock.writeLock().lock();
try {
@@ -1166,17 +1163,11 @@ public class DistributedMetaStorageImpl extends
GridProcessorAdapter
GridFutureAdapter<Boolean> 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 e0fda7bb4bc..e029014f841 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,29 +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.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)
+ IgniteUuid id;
/** Request ID. */
- private final UUID reqId;
+ @Order(1)
+ UUID reqId;
- /** */
- private final 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} */
@@ -53,16 +60,16 @@ class DistributedMetaStorageUpdateAckMessage implements
DiscoveryCustomMessage {
return reqId;
}
- /** */
- public String errorMessage() {
- return errorMsg;
- }
-
/** {@inheritDoc} */
@Override @Nullable public DiscoveryCustomMessage ackMessage() {
return null;
}
+ /** {@inheritDoc} */
+ @Override public short directType() {
+ return 25;
+ }
+
/** {@inheritDoc} */
@Override public String toString() {
return S.toString(DistributedMetaStorageUpdateAckMessage.class, this);
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 1d2cc6bc7bd..cb44ccc8f7b 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,47 @@
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.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;
- /** */
- private final byte[] valBytes;
+ /** TODO: revise the external serialization
https://issues.apache.org/jira/browse/IGNITE-28058. */
+ @Order(3)
+ byte[] valBytes;
- /** */
- private String errorMsg;
+ /** 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;
@@ -73,14 +84,9 @@ class DistributedMetaStorageUpdateMessage implements
DiscoveryCustomMessage {
return valBytes;
}
- /** */
- protected String errorMessage() {
- return errorMsg;
- }
-
/** {@inheritDoc} */
@Override @Nullable public DiscoveryCustomMessage ackMessage() {
- return new DistributedMetaStorageUpdateAckMessage(reqId, errorMsg);
+ return new DistributedMetaStorageUpdateAckMessage(reqId);
}
/** {@inheritDoc} */
@@ -88,6 +94,11 @@ class DistributedMetaStorageUpdateMessage implements
DiscoveryCustomMessage {
return true;
}
+ /** {@inheritDoc} */
+ @Override public short directType() {
+ return 24;
+ }
+
/** {@inheritDoc} */
@Override public String toString() {
return S.toString(DistributedMetaStorageUpdateMessage.class, this);