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 <[email protected]>
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