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 98bee6be5b5 IGNITE-26646 Use MessageSerializer for 
PartitionUpdateCountersMessage (#12402)
98bee6be5b5 is described below

commit 98bee6be5b5ad8c82ddabddef4ed3baa6540cc22
Author: Aleksandr Chesnokov <[email protected]>
AuthorDate: Tue Jan 20 15:42:06 2026 +0300

    IGNITE-26646 Use MessageSerializer for PartitionUpdateCountersMessage 
(#12402)
---
 .../communication/GridIoMessageFactory.java        |   3 +-
 .../dht/PartitionUpdateCountersMessage.java        | 101 ++++++---------------
 ...iteIoCommunicationMessageSerializationTest.java |   4 +
 3 files changed, 33 insertions(+), 75 deletions(-)

diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
index 6dc2d02dd0a..83d8712dea7 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
@@ -150,6 +150,7 @@ import 
org.apache.ignite.internal.codegen.NodeFullMetricsMessageSerializer;
 import org.apache.ignite.internal.codegen.NodeIdMessageSerializer;
 import org.apache.ignite.internal.codegen.NodeMetricsMessageSerializer;
 import org.apache.ignite.internal.codegen.PartitionReservationsMapSerializer;
+import 
org.apache.ignite.internal.codegen.PartitionUpdateCountersMessageSerializer;
 import org.apache.ignite.internal.codegen.PartitionsToReloadSerializer;
 import 
org.apache.ignite.internal.codegen.RecoveryLastReceivedMessageSerializer;
 import 
org.apache.ignite.internal.codegen.SchemaOperationStatusMessageSerializer;
@@ -464,7 +465,7 @@ public class GridIoMessageFactory implements 
MessageFactoryProvider {
         factory.register(CacheMetricsMessage.TYPE_CODE, 
CacheMetricsMessage::new, new CacheMetricsMessageSerializer());
         factory.register(NodeMetricsMessage.TYPE_CODE, 
NodeMetricsMessage::new, new NodeMetricsMessageSerializer());
         factory.register(NodeFullMetricsMessage.TYPE_CODE, 
NodeFullMetricsMessage::new, new NodeFullMetricsMessageSerializer());
-        factory.register((short)157, PartitionUpdateCountersMessage::new);
+        factory.register((short)157, PartitionUpdateCountersMessage::new, new 
PartitionUpdateCountersMessageSerializer());
         factory.register((short)162, GenerateEncryptionKeyRequest::new, new 
GenerateEncryptionKeyRequestSerializer());
         factory.register((short)163, GenerateEncryptionKeyResponse::new);
         factory.register((short)167, ServiceDeploymentProcessId::new, new 
ServiceDeploymentProcessIdSerializer());
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/PartitionUpdateCountersMessage.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/PartitionUpdateCountersMessage.java
index 8911359032f..bf36020f1ee 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/PartitionUpdateCountersMessage.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/PartitionUpdateCountersMessage.java
@@ -17,37 +17,32 @@
 
 package org.apache.ignite.internal.processors.cache.distributed.dht;
 
-import java.nio.ByteBuffer;
 import java.util.Arrays;
 import java.util.Map;
-import org.apache.ignite.internal.GridDirectTransient;
-import org.apache.ignite.internal.IgniteCodeGeneratingFail;
+import org.apache.ignite.internal.Order;
 import org.apache.ignite.internal.util.GridUnsafe;
 import org.apache.ignite.internal.util.typedef.internal.U;
 import org.apache.ignite.plugin.extensions.communication.Message;
-import org.apache.ignite.plugin.extensions.communication.MessageReader;
-import org.apache.ignite.plugin.extensions.communication.MessageWriter;
 
 /**
  * Partition update counters message.
  */
-@IgniteCodeGeneratingFail
 public class PartitionUpdateCountersMessage implements Message {
     /** */
     private static final int ITEM_SIZE = 4 /* partition */ + 8 /* initial 
counter */ + 8 /* updates count */;
 
-    /** */
-    private byte data[];
+    /** Byte representation of partition counters. */
+    @Order(0)
+    private byte[] data;
 
     /** */
+    @Order(1)
     private int cacheId;
 
     /** */
-    @GridDirectTransient
     private int size;
 
     /** Used for assigning counters to cache entries during tx finish. */
-    @GridDirectTransient
     private Map<Integer, Long> counters;
 
     /** */
@@ -66,6 +61,21 @@ public class PartitionUpdateCountersMessage implements 
Message {
         data = new byte[initSize * ITEM_SIZE];
     }
 
+    /**
+     * @return Data.
+     */
+    public byte[] data() {
+        return Arrays.copyOf(data, size * ITEM_SIZE);
+    }
+
+    /**
+     * @param data New data.
+     */
+    public void data(byte[] data) {
+        this.data = data;
+        size = data == null ? 0 : data.length / ITEM_SIZE;
+    }
+
     /**
      * @return Cache id.
      */
@@ -73,6 +83,13 @@ public class PartitionUpdateCountersMessage implements 
Message {
         return cacheId;
     }
 
+    /**
+     * @param cacheId New cache id.
+     */
+    public void cacheId(int cacheId) {
+        this.cacheId = cacheId;
+    }
+
     /**
      * @return Size.
      */
@@ -152,13 +169,6 @@ public class PartitionUpdateCountersMessage implements 
Message {
         return counters.computeIfPresent(partId, (key, cntr) -> cntr + 1);
     }
 
-    /**
-     * Clears message.
-     */
-    public void clear() {
-        size = 0;
-    }
-
     /**
      * Check if there is enough space is allocated.
      *
@@ -171,63 +181,6 @@ public class PartitionUpdateCountersMessage implements 
Message {
             data = Arrays.copyOf(data, data.length << 1);
     }
 
-    /** {@inheritDoc} */
-    @Override public boolean writeTo(ByteBuffer buf, MessageWriter writer) {
-        writer.setBuffer(buf);
-
-        if (!writer.isHeaderWritten()) {
-            if (!writer.writeHeader(directType()))
-                return false;
-
-            writer.onHeaderWritten();
-        }
-
-        switch (writer.state()) {
-            case 0:
-                if (!writer.writeInt(cacheId))
-                    return false;
-
-                writer.incrementState();
-
-            case 1:
-                if (!writer.writeByteArray(data, 0, size * ITEM_SIZE))
-                    return false;
-
-                writer.incrementState();
-
-        }
-
-        return true;
-    }
-
-    /** {@inheritDoc} */
-    @Override public boolean readFrom(ByteBuffer buf, MessageReader reader) {
-        reader.setBuffer(buf);
-
-        switch (reader.state()) {
-            case 0:
-                cacheId = reader.readInt();
-
-                if (!reader.isLastRead())
-                    return false;
-
-                reader.incrementState();
-
-            case 1:
-                data = reader.readByteArray();
-
-                if (!reader.isLastRead())
-                    return false;
-
-                size = data.length / ITEM_SIZE;
-
-                reader.incrementState();
-
-        }
-
-        return true;
-    }
-
     /** {@inheritDoc} */
     @Override public short directType() {
         return 157;
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/managers/communication/IgniteIoCommunicationMessageSerializationTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/managers/communication/IgniteIoCommunicationMessageSerializationTest.java
index c5d6afb5bc6..a05bb4e9ac6 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/managers/communication/IgniteIoCommunicationMessageSerializationTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/managers/communication/IgniteIoCommunicationMessageSerializationTest.java
@@ -19,6 +19,7 @@ package org.apache.ignite.internal.managers.communication;
 
 import java.util.UUID;
 import org.apache.commons.lang3.reflect.FieldUtils;
+import 
org.apache.ignite.internal.processors.cache.distributed.dht.PartitionUpdateCountersMessage;
 import org.apache.ignite.lang.IgniteUuid;
 import org.apache.ignite.plugin.extensions.communication.Message;
 import 
org.apache.ignite.plugin.extensions.communication.MessageFactoryProvider;
@@ -38,6 +39,9 @@ public class IgniteIoCommunicationMessageSerializationTest 
extends AbstractMessa
         if (msg instanceof NodeIdMessage)
             FieldUtils.writeField(msg, "nodeId", UUID.randomUUID(), true);
 
+        if (msg instanceof PartitionUpdateCountersMessage)
+            FieldUtils.writeField(msg, "data", new byte[0], true);
+
         return msg;
     }
 

Reply via email to