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

sanpwc 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 7fc402d3f5 IGNITE-22292 Move LogSyncer out of Loza and RaftServer. 
(#4094)
7fc402d3f5 is described below

commit 7fc402d3f517ccab16b99a7abfcc83e78f764434
Author: Cyrill <cyrill.si...@gmail.com>
AuthorDate: Thu Jul 18 12:22:57 2024 +0300

    IGNITE-22292 Move LogSyncer out of Loza and RaftServer. (#4094)
---
 .../partition/replicator/ItReplicaLifecycleTest.java         |  7 +++++--
 .../java/org/apache/ignite/internal/raft/RaftManager.java    |  3 ---
 .../src/main/java/org/apache/ignite/internal/raft/Loza.java  |  6 ------
 .../ignite/internal/raft/server/impl/JraftServerImpl.java    | 12 +++---------
 .../ignite/internal/raft/storage/LogStorageFactory.java      |  1 +
 .../org/apache/ignite/internal/raft/TestLozaFactory.java     |  1 +
 .../apache/ignite/internal/replicator/ReplicaManager.java    |  7 -------
 .../ignite/internal/runner/app/ItIgniteNodeRestartTest.java  | 12 ++++++++++--
 .../main/java/org/apache/ignite/internal/app/IgniteImpl.java |  5 +++--
 .../internal/rebalance/ItRebalanceDistributedTest.java       |  8 ++++++--
 .../ignite/internal/table/distributed/TableManager.java      |  6 ++++--
 .../internal/table/distributed/TableManagerRecoveryTest.java |  7 ++++---
 .../ignite/internal/table/distributed/TableManagerTest.java  |  7 ++++++-
 13 files changed, 43 insertions(+), 39 deletions(-)

diff --git 
a/modules/partition-replicator/src/integrationTest/java/org/apache/ignite/internal/partition/replicator/ItReplicaLifecycleTest.java
 
b/modules/partition-replicator/src/integrationTest/java/org/apache/ignite/internal/partition/replicator/ItReplicaLifecycleTest.java
index 77a90e9aff..166cd4b3e4 100644
--- 
a/modules/partition-replicator/src/integrationTest/java/org/apache/ignite/internal/partition/replicator/ItReplicaLifecycleTest.java
+++ 
b/modules/partition-replicator/src/integrationTest/java/org/apache/ignite/internal/partition/replicator/ItReplicaLifecycleTest.java
@@ -84,6 +84,7 @@ import 
org.apache.ignite.internal.cluster.management.raft.TestClusterStateStorag
 import 
org.apache.ignite.internal.cluster.management.topology.LogicalTopologyImpl;
 import 
org.apache.ignite.internal.cluster.management.topology.LogicalTopologyServiceImpl;
 import 
org.apache.ignite.internal.cluster.management.topology.api.LogicalTopologySnapshot;
+import org.apache.ignite.internal.components.LogSyncer;
 import org.apache.ignite.internal.configuration.ConfigurationManager;
 import org.apache.ignite.internal.configuration.ConfigurationRegistry;
 import org.apache.ignite.internal.configuration.ConfigurationTreeGenerator;
@@ -971,6 +972,7 @@ public class ItReplicaLifecycleTest extends 
BaseIgniteAbstractTest {
 
             Path storagePath = dir.resolve("storage");
 
+            LogSyncer logSyncer = logStorageFactory;
 
             dataStorageMgr = new DataStorageManager(
                     dataStorageModules.createStorageEngines(
@@ -979,7 +981,7 @@ public class ItReplicaLifecycleTest extends 
BaseIgniteAbstractTest {
                             dir.resolve("storage"),
                             null,
                             failureProcessor,
-                            raftManager.getLogSyncer()
+                            logSyncer
                     ),
                     storageConfiguration
             );
@@ -1100,7 +1102,8 @@ public class ItReplicaLifecycleTest extends 
BaseIgniteAbstractTest {
                     resourcesRegistry,
                     lowWatermark,
                     transactionInflights,
-                    indexMetaStorage
+                    indexMetaStorage,
+                    logSyncer
             );
 
             indexManager = new IndexManager(
diff --git 
a/modules/raft-api/src/main/java/org/apache/ignite/internal/raft/RaftManager.java
 
b/modules/raft-api/src/main/java/org/apache/ignite/internal/raft/RaftManager.java
index a4d1ec336c..e3e7c0ccc1 100644
--- 
a/modules/raft-api/src/main/java/org/apache/ignite/internal/raft/RaftManager.java
+++ 
b/modules/raft-api/src/main/java/org/apache/ignite/internal/raft/RaftManager.java
@@ -18,7 +18,6 @@
 package org.apache.ignite.internal.raft;
 
 import java.util.concurrent.CompletableFuture;
-import org.apache.ignite.internal.components.LogSyncer;
 import org.apache.ignite.internal.lang.NodeStoppingException;
 import org.apache.ignite.internal.manager.IgniteComponent;
 import org.apache.ignite.internal.raft.service.RaftGroupListener;
@@ -174,6 +173,4 @@ public interface RaftManager extends IgniteComponent {
             @Nullable Marshaller commandsMarshaller
     ) throws NodeStoppingException;
 
-    /** Returns write-ahead log syncer. */
-    LogSyncer getLogSyncer();
 }
diff --git 
a/modules/raft/src/main/java/org/apache/ignite/internal/raft/Loza.java 
b/modules/raft/src/main/java/org/apache/ignite/internal/raft/Loza.java
index c0a76e3c2e..09e718f582 100644
--- a/modules/raft/src/main/java/org/apache/ignite/internal/raft/Loza.java
+++ b/modules/raft/src/main/java/org/apache/ignite/internal/raft/Loza.java
@@ -28,7 +28,6 @@ import java.util.concurrent.ScheduledThreadPoolExecutor;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.function.BiConsumer;
-import org.apache.ignite.internal.components.LogSyncer;
 import org.apache.ignite.internal.hlc.HybridClock;
 import org.apache.ignite.internal.lang.IgniteInternalException;
 import org.apache.ignite.internal.lang.IgniteStringFormatter;
@@ -532,11 +531,6 @@ public class Loza implements RaftManager {
         return raftServer;
     }
 
-    @Override
-    public LogSyncer getLogSyncer() {
-        return raftServer.getLogSyncer();
-    }
-
     /**
      * Returns a cluster service.
      *
diff --git 
a/modules/raft/src/main/java/org/apache/ignite/internal/raft/server/impl/JraftServerImpl.java
 
b/modules/raft/src/main/java/org/apache/ignite/internal/raft/server/impl/JraftServerImpl.java
index e5c8195b97..2c0ee7a116 100644
--- 
a/modules/raft/src/main/java/org/apache/ignite/internal/raft/server/impl/JraftServerImpl.java
+++ 
b/modules/raft/src/main/java/org/apache/ignite/internal/raft/server/impl/JraftServerImpl.java
@@ -42,7 +42,6 @@ import java.util.concurrent.ExecutorService;
 import java.util.function.BiConsumer;
 import java.util.function.BiPredicate;
 import java.util.stream.IntStream;
-import org.apache.ignite.internal.components.LogSyncer;
 import org.apache.ignite.internal.lang.IgniteInternalException;
 import org.apache.ignite.internal.lang.IgniteStringFormatter;
 import org.apache.ignite.internal.logger.IgniteLogger;
@@ -201,11 +200,6 @@ public class JraftServerImpl implements RaftServer {
         serviceEventInterceptor = new RaftServiceEventInterceptor();
     }
 
-    /** Returns log synchronizer. */
-    public LogSyncer getLogSyncer() {
-        return logStorageFactory;
-    }
-
     /** Returns log storage factory. */
     @TestOnly
     public LogStorageFactory getLogStorageFactory() {
@@ -214,7 +208,7 @@ public class JraftServerImpl implements RaftServer {
 
     /**
      * Sets {@link AppendEntriesRequestInterceptor} to use. Should only be 
called from the same thread that is used
-     * to {@link #startAsync()} the component.
+     * to {@link #startAsync(ComponentContext)} the component.
      *
      * @param appendEntriesRequestInterceptor Interceptor to use.
      */
@@ -223,8 +217,8 @@ public class JraftServerImpl implements RaftServer {
     }
 
     /**
-     * Sets {@link ActionRequestInterceptor} to use. Should only be called 
from the same thread that is used to {@link #startAsync()} the
-     * component.
+     * Sets {@link ActionRequestInterceptor} to use. Should only be called 
from the same thread that is used to
+     * {@link #startAsync(ComponentContext)} the component.
      *
      * @param actionRequestInterceptor Interceptor to use.
      */
diff --git 
a/modules/raft/src/main/java/org/apache/ignite/internal/raft/storage/LogStorageFactory.java
 
b/modules/raft/src/main/java/org/apache/ignite/internal/raft/storage/LogStorageFactory.java
index a00bb7eb23..18a92846f9 100644
--- 
a/modules/raft/src/main/java/org/apache/ignite/internal/raft/storage/LogStorageFactory.java
+++ 
b/modules/raft/src/main/java/org/apache/ignite/internal/raft/storage/LogStorageFactory.java
@@ -23,6 +23,7 @@ import org.apache.ignite.raft.jraft.option.RaftOptions;
 import org.apache.ignite.raft.jraft.storage.LogStorage;
 
 /** Log storage factory interface. */
+// TODO https://issues.apache.org/jira/browse/IGNITE-22766
 public interface LogStorageFactory extends LogSyncer, IgniteComponent {
     /**
      * Creates a log storage.
diff --git 
a/modules/raft/src/testFixtures/java/org/apache/ignite/internal/raft/TestLozaFactory.java
 
b/modules/raft/src/testFixtures/java/org/apache/ignite/internal/raft/TestLozaFactory.java
index 375f672afb..cb15069071 100644
--- 
a/modules/raft/src/testFixtures/java/org/apache/ignite/internal/raft/TestLozaFactory.java
+++ 
b/modules/raft/src/testFixtures/java/org/apache/ignite/internal/raft/TestLozaFactory.java
@@ -62,6 +62,7 @@ public class TestLozaFactory {
      * @param raftConfig Raft configuration.
      * @param dataPath Data path.
      * @param clock A hybrid logical clock.
+     * @param raftGroupEventsClientListener Raft group events client listener.
      */
     public static Loza create(
             ClusterService clusterNetSvc,
diff --git 
a/modules/replicator/src/main/java/org/apache/ignite/internal/replicator/ReplicaManager.java
 
b/modules/replicator/src/main/java/org/apache/ignite/internal/replicator/ReplicaManager.java
index 57585d8c55..06f87a580a 100644
--- 
a/modules/replicator/src/main/java/org/apache/ignite/internal/replicator/ReplicaManager.java
+++ 
b/modules/replicator/src/main/java/org/apache/ignite/internal/replicator/ReplicaManager.java
@@ -59,7 +59,6 @@ import java.util.function.LongSupplier;
 import java.util.function.Supplier;
 import org.apache.ignite.internal.affinity.Assignments;
 import 
org.apache.ignite.internal.cluster.management.ClusterManagementGroupManager;
-import org.apache.ignite.internal.components.LogSyncer;
 import org.apache.ignite.internal.event.AbstractEventProducer;
 import org.apache.ignite.internal.failure.FailureContext;
 import org.apache.ignite.internal.failure.FailureProcessor;
@@ -856,12 +855,6 @@ public class ReplicaManager extends 
AbstractEventProducer<LocalReplicaEvent, Loc
         ((Loza) raftManager).resetPeers(raftNodeId, peersAndLearners);
     }
 
-    /** Getter for wrapped write-ahead log syncer. */
-    // TODO: will be removed after 
https://issues.apache.org/jira/browse/IGNITE-22292
-    public LogSyncer getLogSyncer() {
-        return raftManager.getLogSyncer();
-    }
-
     private RaftGroupOptions groupOptionsForPartition(boolean 
isVolatileStorage, SnapshotStorageFactory snapshotFactory) {
         RaftGroupOptions raftGroupOptions;
 
diff --git 
a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItIgniteNodeRestartTest.java
 
b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItIgniteNodeRestartTest.java
index df95e092e7..ad99548e69 100644
--- 
a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItIgniteNodeRestartTest.java
+++ 
b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItIgniteNodeRestartTest.java
@@ -101,6 +101,7 @@ import 
org.apache.ignite.internal.cluster.management.raft.RocksDbClusterStateSto
 import 
org.apache.ignite.internal.cluster.management.topology.LogicalTopologyImpl;
 import 
org.apache.ignite.internal.cluster.management.topology.LogicalTopologyServiceImpl;
 import org.apache.ignite.internal.cluster.management.topology.api.LogicalNode;
+import org.apache.ignite.internal.components.LogSyncer;
 import org.apache.ignite.internal.configuration.ConfigurationManager;
 import org.apache.ignite.internal.configuration.ConfigurationModules;
 import org.apache.ignite.internal.configuration.ConfigurationRegistry;
@@ -156,7 +157,9 @@ import org.apache.ignite.internal.raft.TestLozaFactory;
 import 
org.apache.ignite.internal.raft.client.TopologyAwareRaftGroupServiceFactory;
 import org.apache.ignite.internal.raft.configuration.RaftConfiguration;
 import org.apache.ignite.internal.raft.server.impl.JraftServerImpl;
+import org.apache.ignite.internal.raft.storage.LogStorageFactory;
 import org.apache.ignite.internal.raft.storage.impl.LocalLogStorageFactory;
+import org.apache.ignite.internal.raft.util.SharedLogStorageFactoryUtils;
 import org.apache.ignite.internal.replicator.ReplicaManager;
 import org.apache.ignite.internal.replicator.ReplicaService;
 import org.apache.ignite.internal.replicator.ReplicationGroupId;
@@ -356,6 +359,8 @@ public class ItIgniteNodeRestartTest extends 
BaseIgniteRestartTest {
 
         var raftGroupEventsClientListener = new 
RaftGroupEventsClientListener();
 
+        LogStorageFactory logStorageFactory = 
SharedLogStorageFactoryUtils.create(clusterSvc.nodeName(), dir, 
raftConfiguration);
+
         var raftMgr = TestLozaFactory.create(
                 clusterSvc,
                 raftConfiguration,
@@ -563,6 +568,8 @@ public class ItIgniteNodeRestartTest extends 
BaseIgniteRestartTest {
 
         Path storagePath = getPartitionsStorePath(dir);
 
+        LogSyncer logSyncer = logStorageFactory;
+
         DataStorageManager dataStorageManager = new DataStorageManager(
                 dataStorageModules.createStorageEngines(
                         name,
@@ -570,7 +577,7 @@ public class ItIgniteNodeRestartTest extends 
BaseIgniteRestartTest {
                         storagePath,
                         null,
                         failureProcessor,
-                        raftMgr.getLogSyncer()
+                        logSyncer
                 ),
                 
nodeCfgMgr.configurationRegistry().getConfiguration(StorageConfiguration.KEY)
         );
@@ -646,7 +653,8 @@ public class ItIgniteNodeRestartTest extends 
BaseIgniteRestartTest {
                 resourcesRegistry,
                 lowWatermark,
                 transactionInflights,
-                indexMetaStorage
+                indexMetaStorage,
+                logSyncer
         );
 
         var indexManager = new IndexManager(
diff --git 
a/modules/runner/src/main/java/org/apache/ignite/internal/app/IgniteImpl.java 
b/modules/runner/src/main/java/org/apache/ignite/internal/app/IgniteImpl.java
index 6b95061e39..3413714268 100644
--- 
a/modules/runner/src/main/java/org/apache/ignite/internal/app/IgniteImpl.java
+++ 
b/modules/runner/src/main/java/org/apache/ignite/internal/app/IgniteImpl.java
@@ -680,7 +680,7 @@ public class IgniteImpl implements Ignite {
 
         GcConfiguration gcConfig = 
clusterConfigRegistry.getConfiguration(GcConfiguration.KEY);
 
-        LogSyncer logSyncer = raftMgr.getLogSyncer();
+        LogSyncer logSyncer = logStorageFactory;
 
         Map<String, StorageEngine> storageEngines = 
dataStorageModules.createStorageEngines(
                 name,
@@ -828,7 +828,8 @@ public class IgniteImpl implements Ignite {
                 resourcesRegistry,
                 lowWatermark,
                 transactionInflights,
-                indexMetaStorage
+                indexMetaStorage,
+                logSyncer
         );
 
         disasterRecoveryManager = new DisasterRecoveryManager(
diff --git 
a/modules/table/src/integrationTest/java/org/apache/ignite/internal/rebalance/ItRebalanceDistributedTest.java
 
b/modules/table/src/integrationTest/java/org/apache/ignite/internal/rebalance/ItRebalanceDistributedTest.java
index 8825e5ddf0..93b6fd190d 100644
--- 
a/modules/table/src/integrationTest/java/org/apache/ignite/internal/rebalance/ItRebalanceDistributedTest.java
+++ 
b/modules/table/src/integrationTest/java/org/apache/ignite/internal/rebalance/ItRebalanceDistributedTest.java
@@ -110,6 +110,7 @@ import 
org.apache.ignite.internal.cluster.management.raft.TestClusterStateStorag
 import 
org.apache.ignite.internal.cluster.management.topology.LogicalTopologyImpl;
 import 
org.apache.ignite.internal.cluster.management.topology.LogicalTopologyServiceImpl;
 import 
org.apache.ignite.internal.cluster.management.topology.api.LogicalTopologySnapshot;
+import org.apache.ignite.internal.components.LogSyncer;
 import org.apache.ignite.internal.configuration.ConfigurationManager;
 import org.apache.ignite.internal.configuration.ConfigurationRegistry;
 import org.apache.ignite.internal.configuration.ConfigurationTreeGenerator;
@@ -1230,6 +1231,8 @@ public class ItRebalanceDistributedTest extends 
BaseIgniteAbstractTest {
 
             Path storagePath = dir.resolve("storage");
 
+            LogSyncer logSyncer = logStorageFactory;
+
             dataStorageMgr = new DataStorageManager(
                     dataStorageModules.createStorageEngines(
                             name,
@@ -1237,7 +1240,7 @@ public class ItRebalanceDistributedTest extends 
BaseIgniteAbstractTest {
                             dir.resolve("storage"),
                             null,
                             failureProcessor,
-                            raftManager.getLogSyncer()
+                            logSyncer
                     ),
                     storageConfiguration
             );
@@ -1346,7 +1349,8 @@ public class ItRebalanceDistributedTest extends 
BaseIgniteAbstractTest {
                     resourcesRegistry,
                     lowWatermark,
                     transactionInflights,
-                    indexMetaStorage
+                    indexMetaStorage,
+                    logSyncer
             ) {
                 @Override
                 protected TxStateTableStorage createTxStateTableStorage(
diff --git 
a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/TableManager.java
 
b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/TableManager.java
index f93b4f6f2c..047369dfd4 100644
--- 
a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/TableManager.java
+++ 
b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/TableManager.java
@@ -117,6 +117,7 @@ import 
org.apache.ignite.internal.catalog.events.RenameTableEventParameters;
 import org.apache.ignite.internal.causality.CompletionListener;
 import org.apache.ignite.internal.causality.IncrementalVersionedValue;
 import org.apache.ignite.internal.close.ManuallyCloseable;
+import org.apache.ignite.internal.components.LogSyncer;
 import org.apache.ignite.internal.distributionzones.DistributionZoneManager;
 import org.apache.ignite.internal.distributionzones.rebalance.PartitionMover;
 import 
org.apache.ignite.internal.distributionzones.rebalance.RebalanceRaftGroupEventsListener;
@@ -473,7 +474,8 @@ public class TableManager implements IgniteTablesInternal, 
IgniteComponent {
             RemotelyTriggeredResourceRegistry 
remotelyTriggeredResourceRegistry,
             LowWatermark lowWatermark,
             TransactionInflights transactionInflights,
-            IndexMetaStorage indexMetaStorage
+            IndexMetaStorage indexMetaStorage,
+            LogSyncer logSyncer
     ) {
         this.topologyService = topologyService;
         this.replicaMgr = replicaMgr;
@@ -570,7 +572,7 @@ public class TableManager implements IgniteTablesInternal, 
IgniteComponent {
                 storagePath.resolve(TX_STATE_DIR),
                 txStateStorageScheduledPool,
                 txStateStoragePool,
-                replicaMgr.getLogSyncer(),
+                logSyncer,
                 TX_STATE_STORAGE_FLUSH_DELAY_SUPPLIER
         );
 
diff --git 
a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/TableManagerRecoveryTest.java
 
b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/TableManagerRecoveryTest.java
index 2a3d718913..ea277369ba 100644
--- 
a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/TableManagerRecoveryTest.java
+++ 
b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/TableManagerRecoveryTest.java
@@ -178,6 +178,8 @@ public class TableManagerRecoveryTest extends 
IgniteAbstractTest {
     // Table internal components
     @Mock
     private ReplicaManager replicaMgr;
+    @Mock
+    private LogSyncer logSyncer;
     private volatile MvTableStorage mvTableStorage;
     private volatile TxStateTableStorage txStateTableStorage;
 
@@ -275,13 +277,11 @@ public class TableManagerRecoveryTest extends 
IgniteAbstractTest {
         when(raftGrpSrvcMock.leader()).thenReturn(new Peer("node0"));
         when(rm.startRaftGroupService(any(), any(), any(), 
any())).thenAnswer(mock -> completedFuture(raftGrpSrvcMock));
 
-        when(rm.getLogSyncer()).thenReturn(mock(LogSyncer.class));
         
when(clusterService.messagingService()).thenReturn(mock(MessagingService.class));
         when(clusterService.topologyService()).thenReturn(topologyService);
         when(topologyService.localMember()).thenReturn(node);
         when(distributionZoneManager.dataNodes(anyLong(), anyInt(), 
anyInt())).thenReturn(emptySetCompletedFuture());
 
-        when(replicaMgr.getLogSyncer()).thenReturn(mock(LogSyncer.class));
         when(replicaMgr.startReplica(any(), any(), any(), any(), 
any(PendingComparableValuesTracker.class), any()))
                 .thenReturn(nullCompletedFuture());
         when(replicaMgr.stopReplica(any())).thenReturn(trueCompletedFuture());
@@ -349,7 +349,8 @@ public class TableManagerRecoveryTest extends 
IgniteAbstractTest {
                 new RemotelyTriggeredResourceRegistry(),
                 lowWatermark,
                 new TransactionInflights(placementDriver, clockService),
-                indexMetaStorage
+                indexMetaStorage,
+                logSyncer
         ) {
 
             @Override
diff --git 
a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/TableManagerTest.java
 
b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/TableManagerTest.java
index 1ab612e2d5..67747dc93d 100644
--- 
a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/TableManagerTest.java
+++ 
b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/TableManagerTest.java
@@ -191,6 +191,10 @@ public class TableManagerTest extends IgniteAbstractTest {
     @Mock
     private ReplicaManager replicaMgr;
 
+    /** Raft log syncer. */
+    @Mock
+    private LogSyncer logSyncer;
+
     /** TX manager. */
     @Mock
     private TxManager tm;
@@ -826,7 +830,8 @@ public class TableManagerTest extends IgniteAbstractTest {
                 new RemotelyTriggeredResourceRegistry(),
                 lowWatermark,
                 mock(TransactionInflights.class),
-                indexMetaStorage
+                indexMetaStorage,
+                logSyncer
         ) {
 
             @Override

Reply via email to