This is an automated email from the ASF dual-hosted git repository.
sergeychugunov 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 b1b4a11617f IGNITE-26400 Use MessageSerializer for
CacheGroupAffinityMessage (#12327)
b1b4a11617f is described below
commit b1b4a11617f6e240b8deffa751b8e8de5d9a88b5
Author: Dmitry Werner <[email protected]>
AuthorDate: Tue Sep 9 18:22:38 2025 +0500
IGNITE-26400 Use MessageSerializer for CacheGroupAffinityMessage (#12327)
---
.../communication/GridIoMessageFactory.java | 3 +-
.../dht/preloader/CacheGroupAffinityMessage.java | 109 +++++++--------------
2 files changed, 37 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 207190bfd75..211c68726ea 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
@@ -26,6 +26,7 @@ import org.apache.ignite.internal.GridTaskCancelRequest;
import org.apache.ignite.internal.GridTaskSessionRequest;
import org.apache.ignite.internal.IgniteDiagnosticMessage;
import org.apache.ignite.internal.codegen.CacheEvictionEntrySerializer;
+import org.apache.ignite.internal.codegen.CacheGroupAffinityMessageSerializer;
import org.apache.ignite.internal.codegen.CacheVersionedValueSerializer;
import
org.apache.ignite.internal.codegen.GenerateEncryptionKeyRequestSerializer;
import org.apache.ignite.internal.codegen.GridCacheEntryInfoSerializer;
@@ -330,7 +331,7 @@ public class GridIoMessageFactory implements
MessageFactoryProvider {
factory.register((short)125, GridNearAtomicSingleUpdateRequest::new);
factory.register((short)126,
GridNearAtomicSingleUpdateInvokeRequest::new);
factory.register((short)127,
GridNearAtomicSingleUpdateFilterRequest::new);
- factory.register((short)128, CacheGroupAffinityMessage::new);
+ factory.register((short)128, CacheGroupAffinityMessage::new, new
CacheGroupAffinityMessageSerializer());
factory.register((short)129, WalStateAckMessage::new, new
WalStateAckMessageSerializer());
factory.register((short)130,
UserManagementOperationFinishedMessage::new, new
UserManagementOperationFinishedMessageSerializer());
factory.register((short)131, UserAuthenticateRequestMessage::new, new
UserAuthenticateRequestMessageSerializer());
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/CacheGroupAffinityMessage.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/CacheGroupAffinityMessage.java
index 5526318423c..26b1105aa5e 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/CacheGroupAffinityMessage.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/CacheGroupAffinityMessage.java
@@ -17,14 +17,12 @@
package org.apache.ignite.internal.processors.cache.distributed.dht.preloader;
-import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import org.apache.ignite.cluster.ClusterNode;
-import org.apache.ignite.internal.GridDirectCollection;
-import org.apache.ignite.internal.GridDirectMap;
+import org.apache.ignite.internal.Order;
import org.apache.ignite.internal.managers.discovery.DiscoCache;
import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion;
import
org.apache.ignite.internal.processors.affinity.GridAffinityAssignmentCache;
@@ -35,9 +33,6 @@ import org.apache.ignite.internal.util.typedef.F;
import org.apache.ignite.internal.util.typedef.internal.S;
import org.apache.ignite.internal.util.typedef.internal.U;
import org.apache.ignite.plugin.extensions.communication.Message;
-import
org.apache.ignite.plugin.extensions.communication.MessageCollectionItemType;
-import org.apache.ignite.plugin.extensions.communication.MessageReader;
-import org.apache.ignite.plugin.extensions.communication.MessageWriter;
import org.jetbrains.annotations.Nullable;
/**
@@ -45,15 +40,15 @@ import org.jetbrains.annotations.Nullable;
*/
public class CacheGroupAffinityMessage implements Message {
/** */
- @GridDirectCollection(GridLongList.class)
+ @Order(value = 0, method = "assignments")
private List<GridLongList> assigns;
/** */
- @GridDirectCollection(GridLongList.class)
+ @Order(value = 1, method = "idealAssignments")
private List<GridLongList> idealAssigns;
/** */
- @GridDirectMap(keyType = Integer.class, valueType = GridLongList.class)
+ @Order(value = 2, method = "assignmentsDiff")
private Map<Integer, GridLongList> assignsDiff;
/**
@@ -240,79 +235,45 @@ public class CacheGroupAffinityMessage implements Message
{
}
/**
- * @return Difference with ideal affinity assignment.
+ * @return Assignment.
*/
- public Map<Integer, GridLongList> assignmentsDiff() {
- return assignsDiff;
+ public List<GridLongList> assignments() {
+ return assigns;
}
- /** {@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.writeCollection(assigns,
MessageCollectionItemType.MSG))
- return false;
-
- writer.incrementState();
-
- case 1:
- if (!writer.writeMap(assignsDiff,
MessageCollectionItemType.INT, MessageCollectionItemType.MSG))
- return false;
-
- writer.incrementState();
-
- case 2:
- if (!writer.writeCollection(idealAssigns,
MessageCollectionItemType.MSG))
- return false;
-
- writer.incrementState();
-
- }
-
- return true;
+ /**
+ * @param assigns Assignment.
+ */
+ public void assignments(List<GridLongList> assigns) {
+ this.assigns = assigns;
}
- /** {@inheritDoc} */
- @Override public boolean readFrom(ByteBuffer buf, MessageReader reader) {
- reader.setBuffer(buf);
-
- switch (reader.state()) {
- case 0:
- assigns = reader.readCollection(MessageCollectionItemType.MSG);
-
- if (!reader.isLastRead())
- return false;
-
- reader.incrementState();
-
- case 1:
- assignsDiff = reader.readMap(MessageCollectionItemType.INT,
MessageCollectionItemType.MSG, false);
-
- if (!reader.isLastRead())
- return false;
-
- reader.incrementState();
-
- case 2:
- idealAssigns =
reader.readCollection(MessageCollectionItemType.MSG);
-
- if (!reader.isLastRead())
- return false;
+ /**
+ * @return Ideal assignment.
+ */
+ public List<GridLongList> idealAssignments() {
+ return idealAssigns;
+ }
- reader.incrementState();
+ /**
+ * @param idealAssigns Ideal assignment.
+ */
+ public void idealAssignments(List<GridLongList> idealAssigns) {
+ this.idealAssigns = idealAssigns;
+ }
- }
+ /**
+ * @return Difference with ideal affinity assignment.
+ */
+ public Map<Integer, GridLongList> assignmentsDiff() {
+ return assignsDiff;
+ }
- return true;
+ /**
+ * @param assignsDiff Difference with ideal affinity assignment.
+ */
+ public void assignmentsDiff(Map<Integer, GridLongList> assignsDiff) {
+ this.assignsDiff = assignsDiff;
}
/** {@inheritDoc} */