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 d9e296bbeab IGNITE-28513 Use MessageSerializer for StoredCacheData 
(#13092)
d9e296bbeab is described below

commit d9e296bbeab95bddff467012aed2d91f8fc01029
Author: Dmitry Werner <[email protected]>
AuthorDate: Tue May 12 20:29:35 2026 +0500

    IGNITE-28513 Use MessageSerializer for StoredCacheData (#13092)
---
 .../ignite/internal/CoreMessagesProvider.java      |  4 ++
 .../managers/encryption/GroupKeyEncrypted.java     | 16 ++++-
 .../internal/processors/cache/StoredCacheData.java | 68 ++++++++++++++++++----
 .../snapshot/SnapshotRestoreOperationResponse.java | 24 ++------
 .../cluster/ChangeGlobalStateMessage.java          | 11 +---
 5 files changed, 79 insertions(+), 44 deletions(-)

diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/CoreMessagesProvider.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/CoreMessagesProvider.java
index 06998cc00a3..a96e2457e62 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/CoreMessagesProvider.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/CoreMessagesProvider.java
@@ -38,6 +38,7 @@ import 
org.apache.ignite.internal.managers.discovery.SecurityAwareCustomMessageW
 import 
org.apache.ignite.internal.managers.encryption.ChangeCacheEncryptionRequest;
 import 
org.apache.ignite.internal.managers.encryption.GenerateEncryptionKeyRequest;
 import 
org.apache.ignite.internal.managers.encryption.GenerateEncryptionKeyResponse;
+import org.apache.ignite.internal.managers.encryption.GroupKeyEncrypted;
 import org.apache.ignite.internal.managers.encryption.MasterKeyChangeRequest;
 import 
org.apache.ignite.internal.managers.eventstorage.GridEventStorageMessage;
 import 
org.apache.ignite.internal.plugin.AbstractMarshallableMessageFactoryProvider;
@@ -63,6 +64,7 @@ import 
org.apache.ignite.internal.processors.cache.ExchangeFailureMessage;
 import org.apache.ignite.internal.processors.cache.GridCacheEntryInfo;
 import org.apache.ignite.internal.processors.cache.GridCacheReturn;
 import 
org.apache.ignite.internal.processors.cache.GridChangeGlobalStateMessageResponse;
+import org.apache.ignite.internal.processors.cache.StoredCacheData;
 import 
org.apache.ignite.internal.processors.cache.TxTimeoutOnPartitionMapExchangeChangeMessage;
 import org.apache.ignite.internal.processors.cache.WalStateAckMessage;
 import org.apache.ignite.internal.processors.cache.WalStateFinishMessage;
@@ -509,6 +511,7 @@ public class CoreMessagesProvider extends 
AbstractMarshallableMessageFactoryProv
         withNoSchema(StartRoutineDiscoveryMessage.class);
         withNoSchema(StartRoutineAckDiscoveryMessage.class);
         withNoSchema(StartRoutineDiscoveryMessageV2.class);
+        withNoSchema(StoredCacheData.class);
 
         // [10600-10800]: Affinity & partition maps.
         msgIdx = 10600;
@@ -636,6 +639,7 @@ public class CoreMessagesProvider extends 
AbstractMarshallableMessageFactoryProv
         withNoSchema(GenerateEncryptionKeyResponse.class);
         withNoSchema(ChangeCacheEncryptionRequest.class);
         withNoSchema(MasterKeyChangeRequest.class);
+        withNoSchema(GroupKeyEncrypted.class);
 
         // [13000 - 13300]: Control, configuration, diagnostincs and other 
messages.
         msgIdx = 13000;
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/managers/encryption/GroupKeyEncrypted.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/managers/encryption/GroupKeyEncrypted.java
index 6b2ed054303..495c2da7f9b 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/managers/encryption/GroupKeyEncrypted.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/managers/encryption/GroupKeyEncrypted.java
@@ -18,19 +18,29 @@
 package org.apache.ignite.internal.managers.encryption;
 
 import java.io.Serializable;
+import org.apache.ignite.internal.Order;
+import org.apache.ignite.plugin.extensions.communication.Message;
+import org.apache.ignite.plugin.extensions.communication.MessageFactory;
 
 /**
  * Cache group encryption key with identifier. Key is encrypted.
  */
-public class GroupKeyEncrypted implements Serializable {
+public class GroupKeyEncrypted implements Serializable, Message {
     /** Serial version UID. */
     private static final long serialVersionUID = 0L;
 
     /** Encryption key ID. */
-    private final int id;
+    @Order(0)
+    int id;
 
     /** Encryption key. */
-    private final byte[] key;
+    @Order(1)
+    byte[] key;
+
+    /** Default constructor for {@link MessageFactory}. */
+    public GroupKeyEncrypted() {
+        // No-op.
+    }
 
     /**
      * @param id Encryption key ID.
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/StoredCacheData.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/StoredCacheData.java
index 9a9e85e6d5e..dc94809a944 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/StoredCacheData.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/StoredCacheData.java
@@ -19,9 +19,12 @@ package org.apache.ignite.internal.processors.cache;
 
 import java.io.Serializable;
 import java.util.Collection;
+import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.cache.QueryEntity;
 import org.apache.ignite.cdc.CdcCacheEvent;
 import org.apache.ignite.configuration.CacheConfiguration;
+import org.apache.ignite.internal.MarshallableMessage;
+import org.apache.ignite.internal.Order;
 import org.apache.ignite.internal.managers.encryption.GroupKeyEncrypted;
 import org.apache.ignite.internal.pagemem.store.IgnitePageStoreManager;
 import org.apache.ignite.internal.util.tostring.GridToStringInclude;
@@ -29,7 +32,10 @@ import org.apache.ignite.internal.util.typedef.T2;
 import org.apache.ignite.internal.util.typedef.internal.A;
 import org.apache.ignite.internal.util.typedef.internal.CU;
 import org.apache.ignite.internal.util.typedef.internal.S;
+import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.marshaller.Marshaller;
 import org.apache.ignite.marshaller.jdk.JdkMarshaller;
+import org.apache.ignite.plugin.extensions.communication.MessageFactory;
 
 /**
  * Cache data to write to and read from {@link IgnitePageStoreManager}. In a 
nutshell, contains (most importantly)
@@ -39,7 +45,7 @@ import org.apache.ignite.marshaller.jdk.JdkMarshaller;
  * <p>
  * All changes must be made with the respect of RU rules.
  */
-public class StoredCacheData implements Serializable, CdcCacheEvent {
+public class StoredCacheData implements Serializable, CdcCacheEvent, 
MarshallableMessage {
     /** */
     private static final long serialVersionUID = 0L;
 
@@ -47,15 +53,25 @@ public class StoredCacheData implements Serializable, 
CdcCacheEvent {
     @GridToStringInclude
     private CacheConfiguration<?, ?> ccfg;
 
+    /** Serialized {@link #ccfg}. */
+    @Order(0)
+    transient byte[] ccfgBytes;
+
     /** Query entities. */
     @GridToStringInclude
     private Collection<QueryEntity> qryEntities;
 
+    /** Serialized {@link #qryEntities}. */
+    @Order(1)
+    transient byte[] qryEntitiesBytes;
+
     /** SQL flag - {@code true} if cache was created with {@code CREATE 
TABLE}. */
-    private boolean sql;
+    @Order(2)
+    boolean sql;
 
     /** Cache configuration enrichment. */
-    private CacheConfigurationEnrichment cacheConfigurationEnrichment;
+    @Order(3)
+    CacheConfigurationEnrichment cacheConfigurationEnrichment;
 
     /**
      * Encryption key. {@code Null} if encryption is disabled.
@@ -64,7 +80,13 @@ public class StoredCacheData implements Serializable, 
CdcCacheEvent {
      * Metastore. But it is currently unreadable as simple structure. Once it 
is done, we should move snapshot
      * encryption keys there.
      */
-    private GroupKeyEncrypted grpKeyEncrypted;
+    @Order(4)
+    GroupKeyEncrypted grpKeyEncrypted;
+
+    /** Default constructor for {@link MessageFactory}. */
+    public StoredCacheData() {
+        // No-op.
+    }
 
     /**
      * Constructor.
@@ -75,18 +97,18 @@ public class StoredCacheData implements Serializable, 
CdcCacheEvent {
         A.notNull(ccfg, "ccfg");
 
         this.ccfg = ccfg;
-        this.qryEntities = ccfg.getQueryEntities();
+        qryEntities = ccfg.getQueryEntities();
     }
 
     /**
      * @param cacheData Cache data.
      */
     public StoredCacheData(StoredCacheData cacheData) {
-        this.ccfg = cacheData.ccfg;
-        this.qryEntities = cacheData.qryEntities;
-        this.sql = cacheData.sql;
-        this.cacheConfigurationEnrichment = 
cacheData.cacheConfigurationEnrichment;
-        this.grpKeyEncrypted = cacheData.grpKeyEncrypted;
+        ccfg = cacheData.ccfg;
+        qryEntities = cacheData.qryEntities;
+        sql = cacheData.sql;
+        cacheConfigurationEnrichment = cacheData.cacheConfigurationEnrichment;
+        grpKeyEncrypted = cacheData.grpKeyEncrypted;
     }
 
     /**
@@ -151,7 +173,7 @@ public class StoredCacheData implements Serializable, 
CdcCacheEvent {
      * @param ccfgEnrichment Configuration enrichment.
      */
     public StoredCacheData 
cacheConfigurationEnrichment(CacheConfigurationEnrichment ccfgEnrichment) {
-        this.cacheConfigurationEnrichment = ccfgEnrichment;
+        cacheConfigurationEnrichment = ccfgEnrichment;
 
         return this;
     }
@@ -201,4 +223,28 @@ public class StoredCacheData implements Serializable, 
CdcCacheEvent {
     @Override public CacheConfiguration<?, ?> configuration() {
         return ccfg;
     }
+
+    /** {@inheritDoc} */
+    @Override public void prepareMarshal(Marshaller marsh) throws 
IgniteCheckedException {
+        if (ccfg != null)
+            ccfgBytes = U.marshal(marsh, ccfg);
+
+        if (qryEntities != null)
+            qryEntitiesBytes = U.marshal(marsh, qryEntities);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void finishUnmarshal(Marshaller marsh, ClassLoader 
clsLdr) throws IgniteCheckedException {
+        if (ccfgBytes != null) {
+            ccfg = U.unmarshal(marsh, ccfgBytes, clsLdr);
+
+            ccfgBytes = null;
+        }
+
+        if (qryEntitiesBytes != null) {
+            qryEntities = U.unmarshal(marsh, qryEntitiesBytes, clsLdr);
+
+            qryEntitiesBytes = null;
+        }
+    }
 }
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/SnapshotRestoreOperationResponse.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/SnapshotRestoreOperationResponse.java
index e4948be69b9..7da00956e02 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/SnapshotRestoreOperationResponse.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/SnapshotRestoreOperationResponse.java
@@ -20,23 +20,17 @@ package 
org.apache.ignite.internal.processors.cache.persistence.snapshot;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
-import org.apache.ignite.IgniteCheckedException;
-import org.apache.ignite.internal.MarshallableMessage;
 import org.apache.ignite.internal.Order;
 import org.apache.ignite.internal.processors.cache.StoredCacheData;
-import org.apache.ignite.internal.util.typedef.internal.U;
-import org.apache.ignite.marshaller.Marshaller;
+import org.apache.ignite.plugin.extensions.communication.Message;
 import org.apache.ignite.plugin.extensions.communication.MessageFactory;
 
 /** Snapshot operation prepare response. */
-public class SnapshotRestoreOperationResponse implements MarshallableMessage {
+public class SnapshotRestoreOperationResponse implements Message {
     /** Cache configurations on local node. */
-    private List<StoredCacheData> ccfgs;
-
-    /** */
     @Order(0)
-    byte[] ccfgsBytes;
-    
+    List<StoredCacheData> ccfgs;
+
     /** Snapshot metadata files on local node. */
     @Order(1)
     List<SnapshotMetadata> metas;
@@ -67,14 +61,4 @@ public class SnapshotRestoreOperationResponse implements 
MarshallableMessage {
     public List<SnapshotMetadata> metadata() {
         return metas;
     }
-
-    /** {@inheritDoc} */
-    @Override public void prepareMarshal(Marshaller marsh) throws 
IgniteCheckedException {
-        ccfgsBytes = U.marshal(marsh, ccfgs);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void finishUnmarshal(Marshaller marsh, ClassLoader 
clsLdr) throws IgniteCheckedException {
-        ccfgs = U.unmarshal(marsh, ccfgsBytes, clsLdr);
-    }
 }
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cluster/ChangeGlobalStateMessage.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cluster/ChangeGlobalStateMessage.java
index 7d60b92e077..461d36f8bdb 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cluster/ChangeGlobalStateMessage.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cluster/ChangeGlobalStateMessage.java
@@ -54,11 +54,8 @@ public class ChangeGlobalStateMessage extends 
DiscoveryCustomMessage implements
     ClusterState state;
 
     /** Configurations read from persistent store. */
-    private List<StoredCacheData> storedCfgs;
-
-    /** JDK Serialized version of storedCfgs. */
     @Order(3)
-    byte[] storedCfgsBytes;
+    List<StoredCacheData> storedCfgs;
 
     /** */
     @Nullable private BaselineTopology baselineTopology;
@@ -226,18 +223,12 @@ public class ChangeGlobalStateMessage extends 
DiscoveryCustomMessage implements
 
     /** {@inheritDoc} */
     @Override public void prepareMarshal(Marshaller marsh) throws 
IgniteCheckedException {
-        if (storedCfgs != null)
-            storedCfgsBytes = U.marshal(marsh, storedCfgs);
-
         if (baselineTopology != null)
             baselineTopologyBytes = U.marshal(marsh, baselineTopology);
     }
 
     /** {@inheritDoc} */
     @Override public void finishUnmarshal(Marshaller marsh, ClassLoader 
clsLdr) throws IgniteCheckedException {
-        if (storedCfgsBytes != null)
-            storedCfgs = U.unmarshal(marsh, storedCfgsBytes, clsLdr);
-
         if (baselineTopologyBytes != null)
             baselineTopology = U.unmarshal(marsh, baselineTopologyBytes, 
clsLdr);
     }

Reply via email to