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