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 0944fc9eb3c IGNITE-25992 Use MessageSerializer for GridCacheVersion
and GridCacheVersionEx (#12215)
0944fc9eb3c is described below
commit 0944fc9eb3c9e37bb54fdd5da7b57cffa0e7fc2d
Author: Ilya Shishkov <[email protected]>
AuthorDate: Fri Jul 25 17:17:51 2025 +0300
IGNITE-25992 Use MessageSerializer for GridCacheVersion and
GridCacheVersionEx (#12215)
---
.../communication/GridIoMessageFactory.java | 6 +-
.../processors/cache/version/GridCacheVersion.java | 97 ++++++----------------
.../cache/version/GridCacheVersionEx.java | 59 ++-----------
3 files changed, 38 insertions(+), 124 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 0baf550c7fd..bb067029de1 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
@@ -27,6 +27,8 @@ import org.apache.ignite.internal.GridTaskSessionRequest;
import org.apache.ignite.internal.IgniteDiagnosticMessage;
import org.apache.ignite.internal.binary.BinaryUtils;
import org.apache.ignite.internal.codegen.GridCacheEntryInfoSerializer;
+import org.apache.ignite.internal.codegen.GridCacheVersionExSerializer;
+import org.apache.ignite.internal.codegen.GridCacheVersionSerializer;
import org.apache.ignite.internal.codegen.GridIntListSerializer;
import org.apache.ignite.internal.codegen.GridJobCancelRequestSerializer;
import org.apache.ignite.internal.codegen.GridQueryKillRequestSerializer;
@@ -276,7 +278,7 @@ public class GridIoMessageFactory implements
MessageFactoryProvider {
factory.register((short)82, JobStealingRequest::new);
factory.register((short)84, GridByteArrayList::new);
factory.register((short)85, GridLongList::new);
- factory.register((short)86, GridCacheVersion::new);
+ factory.register((short)86, GridCacheVersion::new, new
GridCacheVersionSerializer());
factory.register((short)87, GridDhtPartitionExchangeId::new);
factory.register((short)88, GridCacheReturn::new);
factory.register((short)89, CacheObjectImpl::new);
@@ -294,7 +296,7 @@ public class GridIoMessageFactory implements
MessageFactoryProvider {
factory.register((short)101, TxEntryValueHolder::new);
factory.register((short)102, CacheVersionedValue::new);
factory.register((short)103, GridCacheRawVersionedEntry::new);
- factory.register((short)104, GridCacheVersionEx::new);
+ factory.register((short)104, GridCacheVersionEx::new, new
GridCacheVersionExSerializer());
factory.register((short)105, CacheObjectByteArrayImpl::new);
factory.register((short)106, GridQueryCancelRequest::new);
factory.register((short)107, GridQueryFailResponse::new);
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersion.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersion.java
index cddf1d3ab6b..4e84f901d62 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersion.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersion.java
@@ -21,13 +21,11 @@ import java.io.Externalizable;
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectOutput;
-import java.nio.ByteBuffer;
import java.util.UUID;
import org.apache.ignite.cache.CacheEntryVersion;
+import org.apache.ignite.internal.Order;
import org.apache.ignite.lang.IgniteUuid;
import org.apache.ignite.plugin.extensions.communication.Message;
-import org.apache.ignite.plugin.extensions.communication.MessageReader;
-import org.apache.ignite.plugin.extensions.communication.MessageWriter;
/**
* Grid unique version.
@@ -46,12 +44,15 @@ public class GridCacheVersion implements Message,
Externalizable, CacheEntryVers
private static final int DR_ID_MASK = 0x1F;
/** Topology version. */
+ @Order(value = 0, method = "topologyVersion")
private int topVer;
/** Node order (used as global order) and DR ID. */
+ @Order(value = 1, method = "nodeOrderAndDrIdRaw")
private int nodeOrderDrId;
/** Order. */
+ @Order(2)
private long order;
/**
@@ -103,6 +104,13 @@ public class GridCacheVersion implements Message,
Externalizable, CacheEntryVers
return topVer;
}
+ /**
+ * @param topVer New topology version.
+ */
+ public void topologyVersion(int topVer) {
+ this.topVer = topVer;
+ }
+
/**
* Gets combined node order and DR ID.
*
@@ -112,6 +120,13 @@ public class GridCacheVersion implements Message,
Externalizable, CacheEntryVers
return nodeOrderDrId;
}
+ /**
+ * New combined node order and DR ID.
+ */
+ public void nodeOrderAndDrIdRaw(int nodeOrderDrId) {
+ this.nodeOrderDrId = nodeOrderDrId;
+ }
+
/**
* @return Version order.
*/
@@ -119,6 +134,13 @@ public class GridCacheVersion implements Message,
Externalizable, CacheEntryVers
return order;
}
+ /**
+ * @param order New order.
+ */
+ public void order(long order) {
+ this.order = order;
+ }
+
/** {@inheritDoc} */
@Override public CacheEntryVersion otherClusterVersion() {
return null;
@@ -245,75 +267,6 @@ public class GridCacheVersion implements Message,
Externalizable, CacheEntryVers
return Integer.compare(nodeOrder(), other.nodeOrder());
}
- /** {@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(nodeOrderDrId))
- return false;
-
- writer.incrementState();
-
- case 1:
- if (!writer.writeLong(order))
- return false;
-
- writer.incrementState();
-
- case 2:
- if (!writer.writeInt(topVer))
- return false;
-
- writer.incrementState();
-
- }
-
- return true;
- }
-
- /** {@inheritDoc} */
- @Override public boolean readFrom(ByteBuffer buf, MessageReader reader) {
- reader.setBuffer(buf);
-
- switch (reader.state()) {
- case 0:
- nodeOrderDrId = reader.readInt();
-
- if (!reader.isLastRead())
- return false;
-
- reader.incrementState();
-
- case 1:
- order = reader.readLong();
-
- if (!reader.isLastRead())
- return false;
-
- reader.incrementState();
-
- case 2:
- topVer = reader.readInt();
-
- if (!reader.isLastRead())
- return false;
-
- reader.incrementState();
-
- }
-
- return true;
- }
-
/** {@inheritDoc} */
@Override public short directType() {
return 86;
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersionEx.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersionEx.java
index 8bd47615f66..3a960048083 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersionEx.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersionEx.java
@@ -21,10 +21,8 @@ import java.io.Externalizable;
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectOutput;
-import java.nio.ByteBuffer;
import org.apache.ignite.cache.CacheEntryVersion;
-import org.apache.ignite.plugin.extensions.communication.MessageReader;
-import org.apache.ignite.plugin.extensions.communication.MessageWriter;
+import org.apache.ignite.internal.Order;
/**
* Extended cache version which also has additional DR version.
@@ -34,6 +32,7 @@ public class GridCacheVersionEx extends GridCacheVersion {
private static final long serialVersionUID = 0L;
/** DR version. */
+ @Order(value = 3, method = "conflictVersion")
private GridCacheVersion drVer;
/**
@@ -82,6 +81,13 @@ public class GridCacheVersionEx extends GridCacheVersion {
return drVer;
}
+ /**
+ * @param drVer New DR version.
+ */
+ public void conflictVersion(GridCacheVersion drVer) {
+ this.drVer = drVer;
+ }
+
/** {@inheritDoc} */
@Override public CacheEntryVersion otherClusterVersion() {
return conflictVersion();
@@ -92,53 +98,6 @@ public class GridCacheVersionEx extends GridCacheVersion {
return 104;
}
- /** {@inheritDoc} */
- @Override public boolean writeTo(ByteBuffer buf, MessageWriter writer) {
- writer.setBuffer(buf);
-
- if (!super.writeTo(buf, writer))
- return false;
-
- if (!writer.isHeaderWritten()) {
- if (!writer.writeHeader(directType()))
- return false;
-
- writer.onHeaderWritten();
- }
-
- switch (writer.state()) {
- case 3:
- if (!writer.writeMessage(drVer))
- return false;
-
- writer.incrementState();
-
- }
-
- return true;
- }
-
- /** {@inheritDoc} */
- @Override public boolean readFrom(ByteBuffer buf, MessageReader reader) {
- reader.setBuffer(buf);
-
- if (!super.readFrom(buf, reader))
- return false;
-
- switch (reader.state()) {
- case 3:
- drVer = reader.readMessage();
-
- if (!reader.isLastRead())
- return false;
-
- reader.incrementState();
-
- }
-
- return true;
- }
-
/** {@inheritDoc} */
@Override public void readExternal(ObjectInput in) throws IOException {
super.readExternal(in);