This is an automated email from the ASF dual-hosted git repository.

rpuch pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ignite-3.git


The following commit(s) were added to refs/heads/main by this push:
     new d48115f9d3 IGNITE-23385 Move fields added to SnapshotMeta from JRaft 
to our own message (#4720)
d48115f9d3 is described below

commit d48115f9d33b3e70a1a91647d99d4562a652c350
Author: Roman Puchkovskiy <[email protected]>
AuthorDate: Thu Nov 14 14:36:50 2024 +0400

    IGNITE-23385 Move fields added to SnapshotMeta from JRaft to our own 
message (#4720)
---
 .../network/PartitionReplicationMessageGroup.java       |  6 ++++++
 ...shotMetaResponse.java => PartitionSnapshotMeta.java} | 17 +++++++++++------
 .../replicator/network/raft/SnapshotMetaResponse.java   |  3 +--
 .../org/apache/ignite/raft/jraft/entity/RaftOutter.java |  6 ------
 .../raft/snapshot/incoming/IncomingSnapshotCopier.java  |  5 +++--
 .../raft/snapshot/incoming/IncomingSnapshotReader.java  |  5 +++--
 .../raft/snapshot/outgoing/OutgoingSnapshot.java        | 12 ++++++------
 .../raft/snapshot/outgoing/SnapshotMetaUtils.java       |  9 +++++----
 .../snapshot/incoming/IncomingSnapshotReaderTest.java   |  4 ++--
 .../raft/snapshot/outgoing/SnapshotMetaUtilsTest.java   |  6 +++---
 .../internal/worker/ItCriticalWorkerMonitoringTest.java |  3 +--
 11 files changed, 41 insertions(+), 35 deletions(-)

diff --git 
a/modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/network/PartitionReplicationMessageGroup.java
 
b/modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/network/PartitionReplicationMessageGroup.java
index 52e815f2a8..1399e74388 100644
--- 
a/modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/network/PartitionReplicationMessageGroup.java
+++ 
b/modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/network/PartitionReplicationMessageGroup.java
@@ -32,6 +32,7 @@ import 
org.apache.ignite.internal.partition.replicator.network.disaster.LocalPar
 import 
org.apache.ignite.internal.partition.replicator.network.disaster.LocalPartitionStatesResponse;
 import 
org.apache.ignite.internal.partition.replicator.network.message.HasDataRequest;
 import 
org.apache.ignite.internal.partition.replicator.network.message.HasDataResponse;
+import 
org.apache.ignite.internal.partition.replicator.network.raft.PartitionSnapshotMeta;
 import 
org.apache.ignite.internal.partition.replicator.network.raft.SnapshotMetaRequest;
 import 
org.apache.ignite.internal.partition.replicator.network.raft.SnapshotMetaResponse;
 import 
org.apache.ignite.internal.partition.replicator.network.raft.SnapshotMvDataRequest;
@@ -198,6 +199,11 @@ public interface PartitionReplicationMessageGroup {
      */
     short UPDATE_MINIMUM_ACTIVE_TX_TIME_REPLICA_REQUEST = 26;
 
+    /**
+     * Message type for {@link PartitionSnapshotMeta}.
+     */
+    short PARTITION_SNAPSHOT_META = 27;
+
     /**
      * Message types for partition replicator module RAFT commands.
      *
diff --git 
a/modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/network/raft/SnapshotMetaResponse.java
 
b/modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/network/raft/PartitionSnapshotMeta.java
similarity index 65%
copy from 
modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/network/raft/SnapshotMetaResponse.java
copy to 
modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/network/raft/PartitionSnapshotMeta.java
index 8b3ef74716..8d0258b767 100644
--- 
a/modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/network/raft/SnapshotMetaResponse.java
+++ 
b/modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/network/raft/PartitionSnapshotMeta.java
@@ -17,14 +17,19 @@
 
 package org.apache.ignite.internal.partition.replicator.network.raft;
 
-import org.apache.ignite.internal.network.NetworkMessage;
+import java.util.Map;
+import java.util.UUID;
 import org.apache.ignite.internal.network.annotations.Transferable;
 import 
org.apache.ignite.internal.partition.replicator.network.PartitionReplicationMessageGroup;
 import org.apache.ignite.raft.jraft.entity.RaftOutter.SnapshotMeta;
+import org.jetbrains.annotations.Nullable;
 
-/** Snapshot meta response message. */
-@Transferable(PartitionReplicationMessageGroup.SNAPSHOT_META_RESPONSE)
-public interface SnapshotMetaResponse extends NetworkMessage {
-    /** Snapshot meta. */
-    SnapshotMeta meta();
+/** Partition Raft snapshot meta. */
+@Transferable(PartitionReplicationMessageGroup.PARTITION_SNAPSHOT_META)
+public interface PartitionSnapshotMeta extends SnapshotMeta {
+    /** Minimum catalog version that is required for the snapshot to be 
accepted by a follower. */
+    int requiredCatalogVersion();
+
+    /** Row ID for which the index needs to be built per building index ID at 
the time the snapshot meta was created. */
+    @Nullable Map<Integer, UUID> nextRowIdToBuildByIndexId();
 }
diff --git 
a/modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/network/raft/SnapshotMetaResponse.java
 
b/modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/network/raft/SnapshotMetaResponse.java
index 8b3ef74716..9579b6b348 100644
--- 
a/modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/network/raft/SnapshotMetaResponse.java
+++ 
b/modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/network/raft/SnapshotMetaResponse.java
@@ -20,11 +20,10 @@ package 
org.apache.ignite.internal.partition.replicator.network.raft;
 import org.apache.ignite.internal.network.NetworkMessage;
 import org.apache.ignite.internal.network.annotations.Transferable;
 import 
org.apache.ignite.internal.partition.replicator.network.PartitionReplicationMessageGroup;
-import org.apache.ignite.raft.jraft.entity.RaftOutter.SnapshotMeta;
 
 /** Snapshot meta response message. */
 @Transferable(PartitionReplicationMessageGroup.SNAPSHOT_META_RESPONSE)
 public interface SnapshotMetaResponse extends NetworkMessage {
     /** Snapshot meta. */
-    SnapshotMeta meta();
+    PartitionSnapshotMeta meta();
 }
diff --git 
a/modules/raft/src/main/java/org/apache/ignite/raft/jraft/entity/RaftOutter.java
 
b/modules/raft/src/main/java/org/apache/ignite/raft/jraft/entity/RaftOutter.java
index 5d22c2697b..e0348a0247 100644
--- 
a/modules/raft/src/main/java/org/apache/ignite/raft/jraft/entity/RaftOutter.java
+++ 
b/modules/raft/src/main/java/org/apache/ignite/raft/jraft/entity/RaftOutter.java
@@ -64,11 +64,5 @@ public final class RaftOutter {
         @Nullable Collection<String> learnersList();
 
         @Nullable Collection<String> oldLearnersList();
-
-        /** Minimum catalog version that is required for the snapshot to be 
accepted by a follower. */
-        int requiredCatalogVersion();
-
-        /** Returns the row ID for which the index needs to be built per 
building index ID at the time the snapshot meta was created. */
-        @Nullable Map<Integer, UUID> nextRowIdToBuildByIndexId();
     }
 }
diff --git 
a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/raft/snapshot/incoming/IncomingSnapshotCopier.java
 
b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/raft/snapshot/incoming/IncomingSnapshotCopier.java
index 8810e69120..a8d3d99084 100644
--- 
a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/raft/snapshot/incoming/IncomingSnapshotCopier.java
+++ 
b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/raft/snapshot/incoming/IncomingSnapshotCopier.java
@@ -47,6 +47,7 @@ import org.apache.ignite.internal.logger.Loggers;
 import org.apache.ignite.internal.lowwatermark.message.GetLowWatermarkResponse;
 import 
org.apache.ignite.internal.lowwatermark.message.LowWatermarkMessagesFactory;
 import 
org.apache.ignite.internal.partition.replicator.network.PartitionReplicationMessagesFactory;
+import 
org.apache.ignite.internal.partition.replicator.network.raft.PartitionSnapshotMeta;
 import 
org.apache.ignite.internal.partition.replicator.network.raft.SnapshotMetaRequest;
 import 
org.apache.ignite.internal.partition.replicator.network.raft.SnapshotMetaResponse;
 import 
org.apache.ignite.internal.partition.replicator.network.raft.SnapshotMvDataResponse;
@@ -105,7 +106,7 @@ public class IncomingSnapshotCopier extends SnapshotCopier {
      * @see SnapshotMetaRequest
      */
     @Nullable
-    private volatile SnapshotMeta snapshotMeta;
+    private volatile PartitionSnapshotMeta snapshotMeta;
 
     @Nullable
     private volatile CompletableFuture<Boolean> metadataSufficiencyFuture;
@@ -302,7 +303,7 @@ public class IncomingSnapshotCopier extends SnapshotCopier {
     }
 
     private boolean metadataIsSufficientlyComplete() {
-        SnapshotMeta meta = snapshotMeta;
+        PartitionSnapshotMeta meta = snapshotMeta;
         assert meta != null;
 
         return isMetadataAvailableFor(meta.requiredCatalogVersion(), 
partitionSnapshotStorage.catalogService());
diff --git 
a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/raft/snapshot/incoming/IncomingSnapshotReader.java
 
b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/raft/snapshot/incoming/IncomingSnapshotReader.java
index e53d21fdca..06a5820904 100644
--- 
a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/raft/snapshot/incoming/IncomingSnapshotReader.java
+++ 
b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/raft/snapshot/incoming/IncomingSnapshotReader.java
@@ -18,6 +18,7 @@
 package org.apache.ignite.internal.table.distributed.raft.snapshot.incoming;
 
 import java.util.Set;
+import 
org.apache.ignite.internal.partition.replicator.network.raft.PartitionSnapshotMeta;
 import org.apache.ignite.raft.jraft.entity.RaftOutter.SnapshotMeta;
 import org.apache.ignite.raft.jraft.rpc.Message;
 import org.apache.ignite.raft.jraft.storage.snapshot.SnapshotReader;
@@ -27,14 +28,14 @@ import 
org.apache.ignite.raft.jraft.storage.snapshot.SnapshotReader;
  */
 class IncomingSnapshotReader extends SnapshotReader {
     /** Snapshot meta. */
-    private final SnapshotMeta snapshotMeta;
+    private final PartitionSnapshotMeta snapshotMeta;
 
     /**
      * Constructor.
      *
      * @param snapshotMeta Snapshot meta.
      */
-    IncomingSnapshotReader(SnapshotMeta snapshotMeta) {
+    IncomingSnapshotReader(PartitionSnapshotMeta snapshotMeta) {
         this.snapshotMeta = snapshotMeta;
     }
 
diff --git 
a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/raft/snapshot/outgoing/OutgoingSnapshot.java
 
b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/raft/snapshot/outgoing/OutgoingSnapshot.java
index 7ae8dd43c9..6b5858d01b 100644
--- 
a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/raft/snapshot/outgoing/OutgoingSnapshot.java
+++ 
b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/raft/snapshot/outgoing/OutgoingSnapshot.java
@@ -34,6 +34,7 @@ import org.apache.ignite.internal.lang.IgniteBiTuple;
 import org.apache.ignite.internal.logger.IgniteLogger;
 import org.apache.ignite.internal.logger.Loggers;
 import 
org.apache.ignite.internal.partition.replicator.network.PartitionReplicationMessagesFactory;
+import 
org.apache.ignite.internal.partition.replicator.network.raft.PartitionSnapshotMeta;
 import 
org.apache.ignite.internal.partition.replicator.network.raft.SnapshotMetaRequest;
 import 
org.apache.ignite.internal.partition.replicator.network.raft.SnapshotMetaResponse;
 import 
org.apache.ignite.internal.partition.replicator.network.raft.SnapshotMvDataRequest;
@@ -53,7 +54,6 @@ import org.apache.ignite.internal.tx.TxMeta;
 import org.apache.ignite.internal.tx.message.TxMessagesFactory;
 import org.apache.ignite.internal.tx.message.TxMetaMessage;
 import org.apache.ignite.internal.util.Cursor;
-import org.apache.ignite.raft.jraft.entity.RaftOutter.SnapshotMeta;
 import org.apache.ignite.raft.jraft.util.concurrent.ConcurrentHashSet;
 import org.jetbrains.annotations.Nullable;
 
@@ -86,7 +86,7 @@ public class OutgoingSnapshot {
 
     /** Snapshot metadata that is taken at the moment when snapshot scope is 
frozen. {@code null} till the freeze happens. */
     @Nullable
-    private volatile SnapshotMeta frozenMeta;
+    private volatile PartitionSnapshotMeta frozenMeta;
 
     /**
      * {@link RowId}s for which the corresponding rows were sent out of order 
(relative to the order in which this
@@ -167,7 +167,7 @@ public class OutgoingSnapshot {
         }
     }
 
-    private SnapshotMeta takeSnapshotMeta() {
+    private PartitionSnapshotMeta takeSnapshotMeta() {
         long lastAppliedIndex = partition.maxLastAppliedIndex();
         long lastAppliedTerm = partition.maxLastAppliedTerm();
 
@@ -187,8 +187,8 @@ public class OutgoingSnapshot {
      *
      * @return This snapshot metadata.
      */
-    public SnapshotMeta meta() {
-        SnapshotMeta meta = frozenMeta;
+    public PartitionSnapshotMeta meta() {
+        PartitionSnapshotMeta meta = frozenMeta;
 
         assert meta != null : "No snapshot meta yet, probably the snapshot 
scope was not yet frozen";
 
@@ -208,7 +208,7 @@ public class OutgoingSnapshot {
             return logThatAlreadyClosedAndReturnNull();
         }
 
-        SnapshotMeta meta = frozenMeta;
+        PartitionSnapshotMeta meta = frozenMeta;
 
         assert meta != null : "No snapshot meta yet, probably the snapshot 
scope was not yet frozen";
 
diff --git 
a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/raft/snapshot/outgoing/SnapshotMetaUtils.java
 
b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/raft/snapshot/outgoing/SnapshotMetaUtils.java
index 1b1722aa3e..bbd2db8ef1 100644
--- 
a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/raft/snapshot/outgoing/SnapshotMetaUtils.java
+++ 
b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/raft/snapshot/outgoing/SnapshotMetaUtils.java
@@ -24,12 +24,13 @@ import java.util.Map;
 import java.util.UUID;
 import org.apache.ignite.internal.catalog.CatalogService;
 import org.apache.ignite.internal.catalog.descriptors.CatalogIndexDescriptor;
+import 
org.apache.ignite.internal.partition.replicator.network.PartitionReplicationMessagesFactory;
+import 
org.apache.ignite.internal.partition.replicator.network.raft.PartitionSnapshotMeta;
+import 
org.apache.ignite.internal.partition.replicator.network.raft.PartitionSnapshotMetaBuilder;
 import org.apache.ignite.internal.raft.RaftGroupConfiguration;
 import org.apache.ignite.internal.storage.RowId;
 import 
org.apache.ignite.internal.table.distributed.raft.snapshot.PartitionAccess;
-import org.apache.ignite.raft.jraft.RaftMessagesFactory;
 import org.apache.ignite.raft.jraft.entity.RaftOutter.SnapshotMeta;
-import org.apache.ignite.raft.jraft.entity.SnapshotMetaBuilder;
 
 /**
  * Utils to build {@link SnapshotMeta} instances.
@@ -46,14 +47,14 @@ public class SnapshotMetaUtils {
      *      created.
      * @return SnapshotMeta corresponding to the given log index.
      */
-    public static SnapshotMeta snapshotMetaAt(
+    public static PartitionSnapshotMeta snapshotMetaAt(
             long logIndex,
             long term,
             RaftGroupConfiguration config,
             int requiredCatalogVersion,
             Map<Integer, UUID> nextRowIdToBuildByIndexId
     ) {
-        SnapshotMetaBuilder metaBuilder = new 
RaftMessagesFactory().snapshotMeta()
+        PartitionSnapshotMetaBuilder metaBuilder = new 
PartitionReplicationMessagesFactory().partitionSnapshotMeta()
                 .lastIncludedIndex(logIndex)
                 .lastIncludedTerm(term)
                 .peersList(config.peers())
diff --git 
a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/raft/snapshot/incoming/IncomingSnapshotReaderTest.java
 
b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/raft/snapshot/incoming/IncomingSnapshotReaderTest.java
index d2ac482370..04a89f0ee9 100644
--- 
a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/raft/snapshot/incoming/IncomingSnapshotReaderTest.java
+++ 
b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/raft/snapshot/incoming/IncomingSnapshotReaderTest.java
@@ -21,14 +21,14 @@ import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.is;
 import static org.mockito.Mockito.mock;
 
+import 
org.apache.ignite.internal.partition.replicator.network.raft.PartitionSnapshotMeta;
 import org.apache.ignite.internal.testframework.BaseIgniteAbstractTest;
-import org.apache.ignite.raft.jraft.entity.RaftOutter.SnapshotMeta;
 import org.junit.jupiter.api.Test;
 
 class IncomingSnapshotReaderTest extends BaseIgniteAbstractTest {
     @Test
     void returnsEmptyPath() {
-        try (var reader = new 
IncomingSnapshotReader(mock(SnapshotMeta.class))) {
+        try (var reader = new 
IncomingSnapshotReader(mock(PartitionSnapshotMeta.class))) {
             assertThat(reader.getPath(), is(""));
         }
     }
diff --git 
a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/raft/snapshot/outgoing/SnapshotMetaUtilsTest.java
 
b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/raft/snapshot/outgoing/SnapshotMetaUtilsTest.java
index 3e5889dc48..97fc4f01ec 100644
--- 
a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/raft/snapshot/outgoing/SnapshotMetaUtilsTest.java
+++ 
b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/raft/snapshot/outgoing/SnapshotMetaUtilsTest.java
@@ -45,12 +45,12 @@ import org.apache.ignite.internal.catalog.CatalogManager;
 import org.apache.ignite.internal.hlc.HybridClock;
 import org.apache.ignite.internal.hlc.HybridClockImpl;
 import org.apache.ignite.internal.manager.ComponentContext;
+import 
org.apache.ignite.internal.partition.replicator.network.raft.PartitionSnapshotMeta;
 import org.apache.ignite.internal.raft.RaftGroupConfiguration;
 import org.apache.ignite.internal.storage.RowId;
 import 
org.apache.ignite.internal.table.distributed.raft.snapshot.PartitionAccess;
 import org.apache.ignite.internal.table.distributed.raft.snapshot.PartitionKey;
 import org.apache.ignite.internal.testframework.BaseIgniteAbstractTest;
-import org.apache.ignite.raft.jraft.entity.RaftOutter.SnapshotMeta;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.mockito.junit.jupiter.MockitoExtension;
@@ -67,7 +67,7 @@ class SnapshotMetaUtilsTest extends BaseIgniteAbstractTest {
         UUID nextRowIdToBuild = UUID.randomUUID();
         int indexId = 1;
 
-        SnapshotMeta meta = snapshotMetaAt(100, 3, config, 42, Map.of(indexId, 
nextRowIdToBuild));
+        PartitionSnapshotMeta meta = snapshotMetaAt(100, 3, config, 42, 
Map.of(indexId, nextRowIdToBuild));
 
         assertThat(meta.lastIncludedIndex(), is(100L));
         assertThat(meta.lastIncludedTerm(), is(3L));
@@ -81,7 +81,7 @@ class SnapshotMetaUtilsTest extends BaseIgniteAbstractTest {
 
     @Test
     void doesNotIncludeOldConfigWhenItIsNotThere() {
-        SnapshotMeta meta = snapshotMetaAt(100, 3, new 
RaftGroupConfiguration(List.of(), List.of(), null, null), 42, Map.of());
+        PartitionSnapshotMeta meta = snapshotMetaAt(100, 3, new 
RaftGroupConfiguration(List.of(), List.of(), null, null), 42, Map.of());
 
         assertThat(meta.oldPeersList(), is(nullValue()));
         assertThat(meta.oldLearnersList(), is(nullValue()));
diff --git 
a/modules/workers/src/integrationTest/java/org/apache/ignite/internal/worker/ItCriticalWorkerMonitoringTest.java
 
b/modules/workers/src/integrationTest/java/org/apache/ignite/internal/worker/ItCriticalWorkerMonitoringTest.java
index 30a1fd987a..d52a85ddc7 100644
--- 
a/modules/workers/src/integrationTest/java/org/apache/ignite/internal/worker/ItCriticalWorkerMonitoringTest.java
+++ 
b/modules/workers/src/integrationTest/java/org/apache/ignite/internal/worker/ItCriticalWorkerMonitoringTest.java
@@ -30,7 +30,6 @@ import 
org.apache.ignite.internal.partition.replicator.network.PartitionReplicat
 import 
org.apache.ignite.internal.partition.replicator.network.PartitionReplicationMessagesFactory;
 import 
org.apache.ignite.internal.partition.replicator.network.raft.SnapshotMetaResponse;
 import org.apache.ignite.internal.testframework.log4j2.LogInspector;
-import org.apache.ignite.raft.jraft.RaftMessagesFactory;
 import org.apache.logging.log4j.core.LogEvent;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.Test;
@@ -121,7 +120,7 @@ class ItCriticalWorkerMonitoringTest extends 
ClusterPerTestIntegrationTest {
 
     private static SnapshotMetaResponse snapshotMetaResponse() {
         return new PartitionReplicationMessagesFactory().snapshotMetaResponse()
-                .meta(new RaftMessagesFactory().snapshotMeta().build())
+                .meta(new 
PartitionReplicationMessagesFactory().partitionSnapshotMeta().build())
                 .build();
     }
 }

Reply via email to