Skip to content

Commit b1b4a11

Browse files
authored
IGNITE-26400 Use MessageSerializer for CacheGroupAffinityMessage (apache#12327)
1 parent cfd70ba commit b1b4a11

File tree

2 files changed

+37
-75
lines changed

2 files changed

+37
-75
lines changed

modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import org.apache.ignite.internal.GridTaskSessionRequest;
2727
import org.apache.ignite.internal.IgniteDiagnosticMessage;
2828
import org.apache.ignite.internal.codegen.CacheEvictionEntrySerializer;
29+
import org.apache.ignite.internal.codegen.CacheGroupAffinityMessageSerializer;
2930
import org.apache.ignite.internal.codegen.CacheVersionedValueSerializer;
3031
import org.apache.ignite.internal.codegen.GenerateEncryptionKeyRequestSerializer;
3132
import org.apache.ignite.internal.codegen.GridCacheEntryInfoSerializer;
@@ -330,7 +331,7 @@ public class GridIoMessageFactory implements MessageFactoryProvider {
330331
factory.register((short)125, GridNearAtomicSingleUpdateRequest::new);
331332
factory.register((short)126, GridNearAtomicSingleUpdateInvokeRequest::new);
332333
factory.register((short)127, GridNearAtomicSingleUpdateFilterRequest::new);
333-
factory.register((short)128, CacheGroupAffinityMessage::new);
334+
factory.register((short)128, CacheGroupAffinityMessage::new, new CacheGroupAffinityMessageSerializer());
334335
factory.register((short)129, WalStateAckMessage::new, new WalStateAckMessageSerializer());
335336
factory.register((short)130, UserManagementOperationFinishedMessage::new, new UserManagementOperationFinishedMessageSerializer());
336337
factory.register((short)131, UserAuthenticateRequestMessage::new, new UserAuthenticateRequestMessageSerializer());

modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/CacheGroupAffinityMessage.java

Lines changed: 35 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,12 @@
1717

1818
package org.apache.ignite.internal.processors.cache.distributed.dht.preloader;
1919

20-
import java.nio.ByteBuffer;
2120
import java.util.ArrayList;
2221
import java.util.Collection;
2322
import java.util.List;
2423
import java.util.Map;
2524
import org.apache.ignite.cluster.ClusterNode;
26-
import org.apache.ignite.internal.GridDirectCollection;
27-
import org.apache.ignite.internal.GridDirectMap;
25+
import org.apache.ignite.internal.Order;
2826
import org.apache.ignite.internal.managers.discovery.DiscoCache;
2927
import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion;
3028
import org.apache.ignite.internal.processors.affinity.GridAffinityAssignmentCache;
@@ -35,25 +33,22 @@
3533
import org.apache.ignite.internal.util.typedef.internal.S;
3634
import org.apache.ignite.internal.util.typedef.internal.U;
3735
import org.apache.ignite.plugin.extensions.communication.Message;
38-
import org.apache.ignite.plugin.extensions.communication.MessageCollectionItemType;
39-
import org.apache.ignite.plugin.extensions.communication.MessageReader;
40-
import org.apache.ignite.plugin.extensions.communication.MessageWriter;
4136
import org.jetbrains.annotations.Nullable;
4237

4338
/**
4439
* Information about affinity assignment.
4540
*/
4641
public class CacheGroupAffinityMessage implements Message {
4742
/** */
48-
@GridDirectCollection(GridLongList.class)
43+
@Order(value = 0, method = "assignments")
4944
private List<GridLongList> assigns;
5045

5146
/** */
52-
@GridDirectCollection(GridLongList.class)
47+
@Order(value = 1, method = "idealAssignments")
5348
private List<GridLongList> idealAssigns;
5449

5550
/** */
56-
@GridDirectMap(keyType = Integer.class, valueType = GridLongList.class)
51+
@Order(value = 2, method = "assignmentsDiff")
5752
private Map<Integer, GridLongList> assignsDiff;
5853

5954
/**
@@ -240,79 +235,45 @@ private List<List<ClusterNode>> createAssignments(List<GridLongList> assigns,
240235
}
241236

242237
/**
243-
* @return Difference with ideal affinity assignment.
238+
* @return Assignment.
244239
*/
245-
public Map<Integer, GridLongList> assignmentsDiff() {
246-
return assignsDiff;
240+
public List<GridLongList> assignments() {
241+
return assigns;
247242
}
248243

249-
/** {@inheritDoc} */
250-
@Override public boolean writeTo(ByteBuffer buf, MessageWriter writer) {
251-
writer.setBuffer(buf);
252-
253-
if (!writer.isHeaderWritten()) {
254-
if (!writer.writeHeader(directType()))
255-
return false;
256-
257-
writer.onHeaderWritten();
258-
}
259-
260-
switch (writer.state()) {
261-
case 0:
262-
if (!writer.writeCollection(assigns, MessageCollectionItemType.MSG))
263-
return false;
264-
265-
writer.incrementState();
266-
267-
case 1:
268-
if (!writer.writeMap(assignsDiff, MessageCollectionItemType.INT, MessageCollectionItemType.MSG))
269-
return false;
270-
271-
writer.incrementState();
272-
273-
case 2:
274-
if (!writer.writeCollection(idealAssigns, MessageCollectionItemType.MSG))
275-
return false;
276-
277-
writer.incrementState();
278-
279-
}
280-
281-
return true;
244+
/**
245+
* @param assigns Assignment.
246+
*/
247+
public void assignments(List<GridLongList> assigns) {
248+
this.assigns = assigns;
282249
}
283250

284-
/** {@inheritDoc} */
285-
@Override public boolean readFrom(ByteBuffer buf, MessageReader reader) {
286-
reader.setBuffer(buf);
287-
288-
switch (reader.state()) {
289-
case 0:
290-
assigns = reader.readCollection(MessageCollectionItemType.MSG);
291-
292-
if (!reader.isLastRead())
293-
return false;
294-
295-
reader.incrementState();
296-
297-
case 1:
298-
assignsDiff = reader.readMap(MessageCollectionItemType.INT, MessageCollectionItemType.MSG, false);
299-
300-
if (!reader.isLastRead())
301-
return false;
302-
303-
reader.incrementState();
304-
305-
case 2:
306-
idealAssigns = reader.readCollection(MessageCollectionItemType.MSG);
307-
308-
if (!reader.isLastRead())
309-
return false;
251+
/**
252+
* @return Ideal assignment.
253+
*/
254+
public List<GridLongList> idealAssignments() {
255+
return idealAssigns;
256+
}
310257

311-
reader.incrementState();
258+
/**
259+
* @param idealAssigns Ideal assignment.
260+
*/
261+
public void idealAssignments(List<GridLongList> idealAssigns) {
262+
this.idealAssigns = idealAssigns;
263+
}
312264

313-
}
265+
/**
266+
* @return Difference with ideal affinity assignment.
267+
*/
268+
public Map<Integer, GridLongList> assignmentsDiff() {
269+
return assignsDiff;
270+
}
314271

315-
return true;
272+
/**
273+
* @param assignsDiff Difference with ideal affinity assignment.
274+
*/
275+
public void assignmentsDiff(Map<Integer, GridLongList> assignsDiff) {
276+
this.assignsDiff = assignsDiff;
316277
}
317278

318279
/** {@inheritDoc} */

0 commit comments

Comments
 (0)