This is an automated email from the ASF dual-hosted git repository.
tkalkirill 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 0aa3f26d67 IGNITE-23774 Use shared threadpools in RocksDbFlusher for
SharedRocksDbInstance (#4791)
0aa3f26d67 is described below
commit 0aa3f26d676f5a020e3c6fee15128bbeb5c92342
Author: Kirill Tkalenko <[email protected]>
AuthorDate: Tue Nov 26 17:27:59 2024 +0300
IGNITE-23774 Use shared threadpools in RocksDbFlusher for
SharedRocksDbInstance (#4791)
---
.../replicator/ItReplicaLifecycleTest.java | 3 ++-
.../runner/app/ItIgniteNodeRestartTest.java | 3 ++-
.../org/apache/ignite/internal/app/IgniteImpl.java | 3 ++-
.../ignite/internal/storage/DataStorageModule.java | 6 ++++-
.../internal/storage/DataStorageModules.java | 9 +++++--
.../internal/storage/DataStorageModulesTest.java | 6 +++--
.../storage/impl/TestDataStorageModule.java | 4 ++-
.../PersistentPageMemoryDataStorageModule.java | 4 ++-
.../VolatilePageMemoryDataStorageModule.java | 4 ++-
.../storage/rocksdb/RocksDbDataStorageModule.java | 6 +++--
.../storage/rocksdb/RocksDbStorageEngine.java | 28 +++++++++++---------
.../RocksDbMvPartitionStorageConcurrencyTest.java | 10 ++++++--
.../rocksdb/RocksDbMvPartitionStorageGcTest.java | 10 ++++++--
.../rocksdb/RocksDbMvPartitionStorageTest.java | 10 ++++++--
.../storage/rocksdb/RocksDbMvTableStorageTest.java | 10 ++++++--
.../benchmarks/CommitManyWritesBenchmark.java | 20 +++++++++++----
.../rocksdb/engine/RocksDbStorageEngineTest.java | 10 +++++++-
.../rocksdb/index/RocksDbHashIndexStorageTest.java | 10 ++++++--
.../index/RocksDbSortedIndexStorageTest.java | 10 ++++++--
.../instance/SharedRocksDbInstanceTest.java | 10 ++++++--
.../rebalance/ItRebalanceDistributedTest.java | 3 ++-
.../distributed/TableManagerRecoveryTest.java | 30 +++++++++++-----------
.../table/distributed/TableManagerTest.java | 3 ++-
.../distributed/gc/RocksDbGcUpdateHandlerTest.java | 10 +++++++-
24 files changed, 159 insertions(+), 63 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 9ed084a886..87f2cfe481 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
@@ -1207,7 +1207,8 @@ public class ItReplicaLifecycleTest extends
BaseIgniteAbstractTest {
null,
failureManager,
partitionsLogStorageFactory,
- hybridClock
+ hybridClock,
+ scheduledExecutorService
),
storageConfiguration
);
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 12853efd04..c80654af90 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
@@ -650,7 +650,8 @@ public class ItIgniteNodeRestartTest extends
BaseIgniteRestartTest {
null,
failureProcessor,
partitionsLogStorageFactory,
- hybridClock
+ hybridClock,
+ scheduledExecutorService
),
storageConfiguration
);
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 6f9b864f7b..5079068fb9 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
@@ -843,7 +843,8 @@ public class IgniteImpl implements Ignite {
longJvmPauseDetector,
failureManager,
partitionsLogStorageFactory,
- clock
+ clock,
+ threadPoolsManager.commonScheduler()
);
dataStorageMgr = new DataStorageManager(
diff --git
a/modules/storage-api/src/main/java/org/apache/ignite/internal/storage/DataStorageModule.java
b/modules/storage-api/src/main/java/org/apache/ignite/internal/storage/DataStorageModule.java
index eabb8c5831..703c720111 100644
---
a/modules/storage-api/src/main/java/org/apache/ignite/internal/storage/DataStorageModule.java
+++
b/modules/storage-api/src/main/java/org/apache/ignite/internal/storage/DataStorageModule.java
@@ -18,6 +18,7 @@
package org.apache.ignite.internal.storage;
import java.nio.file.Path;
+import java.util.concurrent.ScheduledExecutorService;
import org.apache.ignite.internal.components.LogSyncer;
import org.apache.ignite.internal.components.LongJvmPauseDetector;
import org.apache.ignite.internal.configuration.ConfigurationRegistry;
@@ -48,6 +49,8 @@ public interface DataStorageModule {
* @param failureManager Failure processor that is used to handle critical
errors.
* @param logSyncer Write-ahead log synchronizer.
* @param clock Hybrid Logical Clock.
+ * @param commonScheduler Common scheduled thread pool. Needed only for
asynchronous start of scheduled operations without performing
+ * blocking, long or IO operations.
* @throws StorageException If there is an error when creating the storage
engine.
*/
StorageEngine createEngine(
@@ -57,6 +60,7 @@ public interface DataStorageModule {
@Nullable LongJvmPauseDetector longJvmPauseDetector,
FailureManager failureManager,
LogSyncer logSyncer,
- HybridClock clock
+ HybridClock clock,
+ ScheduledExecutorService commonScheduler
) throws StorageException;
}
diff --git
a/modules/storage-api/src/main/java/org/apache/ignite/internal/storage/DataStorageModules.java
b/modules/storage-api/src/main/java/org/apache/ignite/internal/storage/DataStorageModules.java
index 566cc01534..20e8c1d2d7 100644
---
a/modules/storage-api/src/main/java/org/apache/ignite/internal/storage/DataStorageModules.java
+++
b/modules/storage-api/src/main/java/org/apache/ignite/internal/storage/DataStorageModules.java
@@ -24,6 +24,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
+import java.util.concurrent.ScheduledExecutorService;
import org.apache.ignite.internal.components.LogSyncer;
import org.apache.ignite.internal.components.LongJvmPauseDetector;
import org.apache.ignite.internal.configuration.ConfigurationRegistry;
@@ -79,6 +80,8 @@ public class DataStorageModules {
* @param failureManager Failure processor that is used to handle critical
errors.
* @param logSyncer Write-ahead log synchronizer.
* @param clock Hybrid Logical Clock.
+ * @param commonScheduler Common scheduled thread pool. Needed only for
asynchronous start of scheduled operations without performing
+ * blocking, long or IO operations.
* @throws StorageException If there is an error when creating the storage
engines.
*/
public Map<String, StorageEngine> createStorageEngines(
@@ -88,7 +91,8 @@ public class DataStorageModules {
@Nullable LongJvmPauseDetector longJvmPauseDetector,
FailureManager failureManager,
LogSyncer logSyncer,
- HybridClock clock
+ HybridClock clock,
+ ScheduledExecutorService commonScheduler
) {
return modules.entrySet().stream().collect(toUnmodifiableMap(
Entry::getKey,
@@ -99,7 +103,8 @@ public class DataStorageModules {
longJvmPauseDetector,
failureManager,
logSyncer,
- clock
+ clock,
+ commonScheduler
)
));
}
diff --git
a/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/DataStorageModulesTest.java
b/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/DataStorageModulesTest.java
index 6843c2c7b0..9bbca98b54 100644
---
a/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/DataStorageModulesTest.java
+++
b/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/DataStorageModulesTest.java
@@ -30,6 +30,7 @@ import static org.mockito.Mockito.when;
import java.nio.file.Path;
import java.util.List;
import java.util.Map;
+import java.util.concurrent.ScheduledExecutorService;
import org.apache.ignite.internal.components.LogSyncer;
import org.apache.ignite.internal.configuration.ConfigurationRegistry;
import org.apache.ignite.internal.failure.FailureManager;
@@ -82,7 +83,8 @@ public class DataStorageModulesTest extends
BaseIgniteAbstractTest {
null,
mock(FailureManager.class),
mock(LogSyncer.class),
- mock(HybridClock.class)
+ mock(HybridClock.class),
+ mock(ScheduledExecutorService.class)
);
assertThat(engines, aMapWithSize(2));
@@ -98,7 +100,7 @@ public class DataStorageModulesTest extends
BaseIgniteAbstractTest {
when(mock.name()).thenReturn(name);
- when(mock.createEngine(any(), any(), any(), any(), any(), any(),
any())).thenReturn(mock(StorageEngine.class));
+ when(mock.createEngine(any(), any(), any(), any(), any(), any(),
any(), any())).thenReturn(mock(StorageEngine.class));
return mock;
}
diff --git
a/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/impl/TestDataStorageModule.java
b/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/impl/TestDataStorageModule.java
index 929ff8a721..44900702c8 100644
---
a/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/impl/TestDataStorageModule.java
+++
b/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/impl/TestDataStorageModule.java
@@ -21,6 +21,7 @@ import static
org.apache.ignite.internal.storage.impl.TestStorageEngine.ENGINE_N
import com.google.auto.service.AutoService;
import java.nio.file.Path;
+import java.util.concurrent.ScheduledExecutorService;
import org.apache.ignite.internal.components.LogSyncer;
import org.apache.ignite.internal.components.LongJvmPauseDetector;
import org.apache.ignite.internal.configuration.ConfigurationRegistry;
@@ -49,7 +50,8 @@ public class TestDataStorageModule implements
DataStorageModule {
@Nullable LongJvmPauseDetector longJvmPauseDetector,
FailureManager failureManager,
LogSyncer logSyncer,
- HybridClock clock
+ HybridClock clock,
+ ScheduledExecutorService commonScheduler
) throws StorageException {
return new TestStorageEngine();
}
diff --git
a/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/PersistentPageMemoryDataStorageModule.java
b/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/PersistentPageMemoryDataStorageModule.java
index b1115505a5..0c46305a0a 100644
---
a/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/PersistentPageMemoryDataStorageModule.java
+++
b/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/PersistentPageMemoryDataStorageModule.java
@@ -21,6 +21,7 @@ import static
org.apache.ignite.internal.storage.pagememory.PersistentPageMemory
import com.google.auto.service.AutoService;
import java.nio.file.Path;
+import java.util.concurrent.ScheduledExecutorService;
import org.apache.ignite.internal.components.LogSyncer;
import org.apache.ignite.internal.components.LongJvmPauseDetector;
import org.apache.ignite.internal.configuration.ConfigurationRegistry;
@@ -54,7 +55,8 @@ public class PersistentPageMemoryDataStorageModule implements
DataStorageModule
@Nullable LongJvmPauseDetector longJvmPauseDetector,
FailureManager failureManager,
LogSyncer logSyncer,
- HybridClock clock
+ HybridClock clock,
+ ScheduledExecutorService commonScheduler
) throws StorageException {
StorageConfiguration storageConfig =
configRegistry.getConfiguration(StorageExtensionConfiguration.KEY).storage();
diff --git
a/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/VolatilePageMemoryDataStorageModule.java
b/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/VolatilePageMemoryDataStorageModule.java
index 09a04b9887..1bb178ccf4 100644
---
a/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/VolatilePageMemoryDataStorageModule.java
+++
b/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/VolatilePageMemoryDataStorageModule.java
@@ -21,6 +21,7 @@ import static
org.apache.ignite.internal.storage.pagememory.VolatilePageMemorySt
import com.google.auto.service.AutoService;
import java.nio.file.Path;
+import java.util.concurrent.ScheduledExecutorService;
import org.apache.ignite.internal.components.LogSyncer;
import org.apache.ignite.internal.components.LongJvmPauseDetector;
import org.apache.ignite.internal.configuration.ConfigurationRegistry;
@@ -54,7 +55,8 @@ public class VolatilePageMemoryDataStorageModule implements
DataStorageModule {
@Nullable LongJvmPauseDetector longJvmPauseDetector,
FailureManager failureManager,
LogSyncer logSyncer,
- HybridClock clock
+ HybridClock clock,
+ ScheduledExecutorService commonScheduler
) throws StorageException {
StorageConfiguration storageConfig =
configRegistry.getConfiguration(StorageExtensionConfiguration.KEY).storage();
diff --git
a/modules/storage-rocksdb/src/main/java/org/apache/ignite/internal/storage/rocksdb/RocksDbDataStorageModule.java
b/modules/storage-rocksdb/src/main/java/org/apache/ignite/internal/storage/rocksdb/RocksDbDataStorageModule.java
index abc6c5ca52..c6ffb00fb7 100644
---
a/modules/storage-rocksdb/src/main/java/org/apache/ignite/internal/storage/rocksdb/RocksDbDataStorageModule.java
+++
b/modules/storage-rocksdb/src/main/java/org/apache/ignite/internal/storage/rocksdb/RocksDbDataStorageModule.java
@@ -21,6 +21,7 @@ import static
org.apache.ignite.internal.storage.rocksdb.RocksDbStorageEngine.EN
import com.google.auto.service.AutoService;
import java.nio.file.Path;
+import java.util.concurrent.ScheduledExecutorService;
import org.apache.ignite.internal.components.LogSyncer;
import org.apache.ignite.internal.components.LongJvmPauseDetector;
import org.apache.ignite.internal.configuration.ConfigurationRegistry;
@@ -53,13 +54,14 @@ public class RocksDbDataStorageModule implements
DataStorageModule {
@Nullable LongJvmPauseDetector longJvmPauseDetector,
FailureManager failureManager,
LogSyncer logSyncer,
- HybridClock clock
+ HybridClock clock,
+ ScheduledExecutorService commonScheduler
) throws StorageException {
StorageConfiguration storageConfig =
configRegistry.getConfiguration(StorageExtensionConfiguration.KEY).storage();
RocksDbStorageEngineConfiguration engineConfig =
((RocksDbStorageEngineExtensionConfiguration)
storageConfig.engines()).rocksdb();
assert engineConfig != null;
- return new RocksDbStorageEngine(igniteInstanceName, engineConfig,
storageConfig, storagePath, logSyncer);
+ return new RocksDbStorageEngine(igniteInstanceName, engineConfig,
storageConfig, storagePath, logSyncer, commonScheduler);
}
}
diff --git
a/modules/storage-rocksdb/src/main/java/org/apache/ignite/internal/storage/rocksdb/RocksDbStorageEngine.java
b/modules/storage-rocksdb/src/main/java/org/apache/ignite/internal/storage/rocksdb/RocksDbStorageEngine.java
index 75003c9327..5b6aaafc4b 100644
---
a/modules/storage-rocksdb/src/main/java/org/apache/ignite/internal/storage/rocksdb/RocksDbStorageEngine.java
+++
b/modules/storage-rocksdb/src/main/java/org/apache/ignite/internal/storage/rocksdb/RocksDbStorageEngine.java
@@ -17,6 +17,10 @@
package org.apache.ignite.internal.storage.rocksdb;
+import static org.apache.ignite.internal.util.IgniteUtils.closeAll;
+import static org.apache.ignite.internal.util.IgniteUtils.closeAllManually;
+import static
org.apache.ignite.internal.util.IgniteUtils.shutdownAndAwaitTermination;
+
import java.nio.file.Path;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
@@ -39,7 +43,6 @@ import
org.apache.ignite.internal.storage.rocksdb.configuration.schema.RocksDbSt
import
org.apache.ignite.internal.storage.rocksdb.instance.SharedRocksDbInstance;
import
org.apache.ignite.internal.storage.rocksdb.instance.SharedRocksDbInstanceCreator;
import org.apache.ignite.internal.thread.NamedThreadFactory;
-import org.apache.ignite.internal.util.IgniteUtils;
import org.rocksdb.RocksDB;
/**
@@ -63,7 +66,7 @@ public class RocksDbStorageEngine implements StorageEngine {
@Override
public void close() throws Exception {
- IgniteUtils.closeAllManually(rocksDbInstance::stop, profile::stop);
+ closeAllManually(rocksDbInstance::stop, profile::stop);
}
}
@@ -96,27 +99,27 @@ public class RocksDbStorageEngine implements StorageEngine {
* @param storageConfiguration Storage configuration.
* @param storagePath Storage path.
* @param logSyncer Write-ahead log synchronizer.
+ * @param scheduledPool Common scheduled thread pool. Needed only for
asynchronous start of scheduled operations without performing
+ * blocking, long or IO operations.
*/
public RocksDbStorageEngine(
String nodeName,
RocksDbStorageEngineConfiguration engineConfig,
StorageConfiguration storageConfiguration,
Path storagePath,
- LogSyncer logSyncer
+ LogSyncer logSyncer,
+ ScheduledExecutorService scheduledPool
) {
this.engineConfig = engineConfig;
this.storageConfiguration = storageConfiguration;
this.storagePath = storagePath;
this.logSyncer = logSyncer;
+ this.scheduledPool = scheduledPool;
threadPool = Executors.newFixedThreadPool(
Runtime.getRuntime().availableProcessors(),
NamedThreadFactory.create(nodeName,
"rocksdb-storage-engine-pool", LOG)
);
-
- scheduledPool = Executors.newSingleThreadScheduledExecutor(
- NamedThreadFactory.create(nodeName,
"rocksdb-storage-engine-scheduled-pool", LOG)
- );
}
/**
@@ -134,7 +137,8 @@ public class RocksDbStorageEngine implements StorageEngine {
}
/**
- * Returns a scheduled thread pool for async operations.
+ * Returns a common scheduled thread pool. Needed only for asynchronous
start of scheduled operations without performing blocking, long
+ * or IO operations.
*/
public ScheduledExecutorService scheduledPool() {
return scheduledPool;
@@ -186,13 +190,13 @@ public class RocksDbStorageEngine implements
StorageEngine {
@Override
public void stop() throws StorageException {
try {
- IgniteUtils.closeAllManually(storageByProfileName.values());
+ closeAll(
+ () -> closeAllManually(storageByProfileName.values()),
+ () -> shutdownAndAwaitTermination(threadPool, 10,
TimeUnit.SECONDS)
+ );
} catch (Exception e) {
throw new StorageException("Error when stopping the rocksdb
engine", e);
}
-
- IgniteUtils.shutdownAndAwaitTermination(threadPool, 10,
TimeUnit.SECONDS);
- IgniteUtils.shutdownAndAwaitTermination(scheduledPool, 10,
TimeUnit.SECONDS);
}
@Override
diff --git
a/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/RocksDbMvPartitionStorageConcurrencyTest.java
b/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/RocksDbMvPartitionStorageConcurrencyTest.java
index ef02510d71..666f689299 100644
---
a/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/RocksDbMvPartitionStorageConcurrencyTest.java
+++
b/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/RocksDbMvPartitionStorageConcurrencyTest.java
@@ -21,6 +21,7 @@ import static
org.apache.ignite.internal.catalog.commands.CatalogUtils.DEFAULT_P
import static org.mockito.Mockito.mock;
import java.nio.file.Path;
+import java.util.concurrent.ScheduledExecutorService;
import org.apache.ignite.internal.components.LogSyncer;
import
org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
import
org.apache.ignite.internal.storage.AbstractMvPartitionStorageConcurrencyTest;
@@ -28,6 +29,8 @@ import
org.apache.ignite.internal.storage.configurations.StorageConfiguration;
import org.apache.ignite.internal.storage.engine.StorageTableDescriptor;
import org.apache.ignite.internal.storage.index.StorageIndexDescriptorSupplier;
import
org.apache.ignite.internal.storage.rocksdb.configuration.schema.RocksDbStorageEngineConfiguration;
+import org.apache.ignite.internal.testframework.ExecutorServiceExtension;
+import org.apache.ignite.internal.testframework.InjectExecutorService;
import org.apache.ignite.internal.testframework.WorkDirectory;
import org.apache.ignite.internal.testframework.WorkDirectoryExtension;
import org.apache.ignite.internal.util.IgniteUtils;
@@ -38,6 +41,7 @@ import org.junit.jupiter.api.extension.ExtendWith;
/**
* Storage test implementation for {@link RocksDbMvPartitionStorage}.
*/
+@ExtendWith(ExecutorServiceExtension.class)
@ExtendWith(WorkDirectoryExtension.class)
public class RocksDbMvPartitionStorageConcurrencyTest extends
AbstractMvPartitionStorageConcurrencyTest {
private RocksDbStorageEngine engine;
@@ -51,9 +55,11 @@ public class RocksDbMvPartitionStorageConcurrencyTest
extends AbstractMvPartitio
RocksDbStorageEngineConfiguration engineConfig,
// Explicit size, small enough for fast allocation, and big enough
to fit some data without flushing it to disk constantly.
@InjectConfiguration("mock.profiles.default = {engine = rocksdb,
size = 16777216, writeBufferSize = 67108864}")
- StorageConfiguration storageConfiguration
+ StorageConfiguration storageConfiguration,
+ @InjectExecutorService
+ ScheduledExecutorService scheduledExecutor
) {
- engine = new RocksDbStorageEngine("test", engineConfig,
storageConfiguration, workDir, mock(LogSyncer.class));
+ engine = new RocksDbStorageEngine("test", engineConfig,
storageConfiguration, workDir, mock(LogSyncer.class), scheduledExecutor);
engine.start();
diff --git
a/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/RocksDbMvPartitionStorageGcTest.java
b/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/RocksDbMvPartitionStorageGcTest.java
index 67b5dd0c3b..c700b436a0 100644
---
a/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/RocksDbMvPartitionStorageGcTest.java
+++
b/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/RocksDbMvPartitionStorageGcTest.java
@@ -21,6 +21,7 @@ import static
org.apache.ignite.internal.catalog.commands.CatalogUtils.DEFAULT_P
import static org.mockito.Mockito.mock;
import java.nio.file.Path;
+import java.util.concurrent.ScheduledExecutorService;
import org.apache.ignite.internal.components.LogSyncer;
import
org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
import org.apache.ignite.internal.storage.AbstractMvPartitionStorageGcTest;
@@ -28,6 +29,8 @@ import
org.apache.ignite.internal.storage.configurations.StorageConfiguration;
import org.apache.ignite.internal.storage.engine.StorageTableDescriptor;
import org.apache.ignite.internal.storage.index.StorageIndexDescriptorSupplier;
import
org.apache.ignite.internal.storage.rocksdb.configuration.schema.RocksDbStorageEngineConfiguration;
+import org.apache.ignite.internal.testframework.ExecutorServiceExtension;
+import org.apache.ignite.internal.testframework.InjectExecutorService;
import org.apache.ignite.internal.testframework.WorkDirectory;
import org.apache.ignite.internal.testframework.WorkDirectoryExtension;
import org.apache.ignite.internal.util.IgniteUtils;
@@ -38,6 +41,7 @@ import org.junit.jupiter.api.extension.ExtendWith;
/**
* Test implementation for {@link RocksDbStorageEngine}.
*/
+@ExtendWith(ExecutorServiceExtension.class)
@ExtendWith(WorkDirectoryExtension.class)
public class RocksDbMvPartitionStorageGcTest extends
AbstractMvPartitionStorageGcTest {
private RocksDbStorageEngine engine;
@@ -51,9 +55,11 @@ public class RocksDbMvPartitionStorageGcTest extends
AbstractMvPartitionStorageG
RocksDbStorageEngineConfiguration engineConfig,
// Explicit size, small enough for fast allocation, and big enough
to fit some data without flushing it to disk constantly.
@InjectConfiguration("mock.profiles.default = {engine = rocksdb,
size = 16777216, writeBufferSize = 67108864}")
- StorageConfiguration storageConfiguration
+ StorageConfiguration storageConfiguration,
+ @InjectExecutorService
+ ScheduledExecutorService scheduledExecutor
) {
- engine = new RocksDbStorageEngine("test", engineConfig,
storageConfiguration, workDir, mock(LogSyncer.class));
+ engine = new RocksDbStorageEngine("test", engineConfig,
storageConfiguration, workDir, mock(LogSyncer.class), scheduledExecutor);
engine.start();
diff --git
a/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/RocksDbMvPartitionStorageTest.java
b/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/RocksDbMvPartitionStorageTest.java
index 15127471ad..ba64eb5948 100644
---
a/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/RocksDbMvPartitionStorageTest.java
+++
b/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/RocksDbMvPartitionStorageTest.java
@@ -21,6 +21,7 @@ import static
org.apache.ignite.internal.catalog.commands.CatalogUtils.DEFAULT_P
import static org.mockito.Mockito.mock;
import java.nio.file.Path;
+import java.util.concurrent.ScheduledExecutorService;
import org.apache.ignite.internal.components.LogSyncer;
import
org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
import org.apache.ignite.internal.storage.AbstractMvPartitionStorageTest;
@@ -28,6 +29,8 @@ import
org.apache.ignite.internal.storage.configurations.StorageConfiguration;
import org.apache.ignite.internal.storage.engine.StorageTableDescriptor;
import org.apache.ignite.internal.storage.index.StorageIndexDescriptorSupplier;
import
org.apache.ignite.internal.storage.rocksdb.configuration.schema.RocksDbStorageEngineConfiguration;
+import org.apache.ignite.internal.testframework.ExecutorServiceExtension;
+import org.apache.ignite.internal.testframework.InjectExecutorService;
import org.apache.ignite.internal.testframework.WorkDirectory;
import org.apache.ignite.internal.testframework.WorkDirectoryExtension;
import org.apache.ignite.internal.util.IgniteUtils;
@@ -38,6 +41,7 @@ import org.junit.jupiter.api.extension.ExtendWith;
/**
* Storage test implementation for {@link RocksDbMvPartitionStorage}.
*/
+@ExtendWith(ExecutorServiceExtension.class)
@ExtendWith(WorkDirectoryExtension.class)
public class RocksDbMvPartitionStorageTest extends
AbstractMvPartitionStorageTest {
private RocksDbStorageEngine engine;
@@ -51,9 +55,11 @@ public class RocksDbMvPartitionStorageTest extends
AbstractMvPartitionStorageTes
RocksDbStorageEngineConfiguration engineConfig,
// Explicit size, small enough for fast allocation, and big enough
to fit some data without flushing it to disk constantly.
@InjectConfiguration("mock.profiles.default = {engine = rocksdb,
size = 16777216, writeBufferSize = 67108864}")
- StorageConfiguration storageConfiguration
+ StorageConfiguration storageConfiguration,
+ @InjectExecutorService
+ ScheduledExecutorService scheduledExecutor
) {
- engine = new RocksDbStorageEngine("test", engineConfig,
storageConfiguration, workDir, mock(LogSyncer.class));
+ engine = new RocksDbStorageEngine("test", engineConfig,
storageConfiguration, workDir, mock(LogSyncer.class), scheduledExecutor);
engine.start();
diff --git
a/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/RocksDbMvTableStorageTest.java
b/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/RocksDbMvTableStorageTest.java
index 266c92cecf..d3df127336 100644
---
a/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/RocksDbMvTableStorageTest.java
+++
b/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/RocksDbMvTableStorageTest.java
@@ -28,6 +28,7 @@ import static org.mockito.Mockito.mock;
import java.nio.file.Path;
import java.util.UUID;
+import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
import org.apache.ignite.internal.components.LogSyncer;
import
org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
@@ -39,6 +40,8 @@ import
org.apache.ignite.internal.storage.configurations.StorageConfiguration;
import org.apache.ignite.internal.storage.engine.MvTableStorage;
import org.apache.ignite.internal.storage.engine.StorageTableDescriptor;
import
org.apache.ignite.internal.storage.rocksdb.configuration.schema.RocksDbStorageEngineConfiguration;
+import org.apache.ignite.internal.testframework.ExecutorServiceExtension;
+import org.apache.ignite.internal.testframework.InjectExecutorService;
import org.apache.ignite.internal.testframework.WorkDirectory;
import org.apache.ignite.internal.testframework.WorkDirectoryExtension;
import org.apache.ignite.internal.util.IgniteUtils;
@@ -50,6 +53,7 @@ import org.junit.jupiter.api.extension.ExtendWith;
/**
* Tests for the {@link RocksDbTableStorage}.
*/
+@ExtendWith(ExecutorServiceExtension.class)
@ExtendWith(WorkDirectoryExtension.class)
public class RocksDbMvTableStorageTest extends AbstractMvTableStorageTest {
private RocksDbStorageEngine engine;
@@ -61,9 +65,11 @@ public class RocksDbMvTableStorageTest extends
AbstractMvTableStorageTest {
RocksDbStorageEngineConfiguration engineConfig,
// Explicit size, small enough for fast allocation, and big enough
to fit some data without flushing it to disk constantly.
@InjectConfiguration("mock.profiles.default {engine = rocksdb,
size = 16777216, writeBufferSize = 67108864}")
- StorageConfiguration storageConfiguration
+ StorageConfiguration storageConfiguration,
+ @InjectExecutorService
+ ScheduledExecutorService scheduledExecutor
) {
- engine = new RocksDbStorageEngine("test", engineConfig,
storageConfiguration, workDir, mock(LogSyncer.class));
+ engine = new RocksDbStorageEngine("test", engineConfig,
storageConfiguration, workDir, mock(LogSyncer.class), scheduledExecutor);
engine.start();
diff --git
a/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/benchmarks/CommitManyWritesBenchmark.java
b/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/benchmarks/CommitManyWritesBenchmark.java
index b6dc18dfbd..8ff8183161 100644
---
a/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/benchmarks/CommitManyWritesBenchmark.java
+++
b/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/benchmarks/CommitManyWritesBenchmark.java
@@ -17,7 +17,10 @@
package org.apache.ignite.internal.storage.rocksdb.benchmarks;
+import static java.util.concurrent.Executors.newSingleThreadScheduledExecutor;
import static org.apache.ignite.internal.util.IgniteUtils.capacity;
+import static org.apache.ignite.internal.util.IgniteUtils.closeAll;
+import static
org.apache.ignite.internal.util.IgniteUtils.shutdownAndAwaitTermination;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@@ -30,7 +33,9 @@ import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ThreadLocalRandom;
+import java.util.concurrent.TimeUnit;
import java.util.stream.IntStream;
import org.apache.ignite.configuration.ConfigurationValue;
import org.apache.ignite.configuration.NamedConfigurationTree;
@@ -85,6 +90,8 @@ public class CommitManyWritesBenchmark {
private RocksDbTableStorage tableStorage;
+ private final ScheduledExecutorService scheduledExecutor =
newSingleThreadScheduledExecutor();
+
/** Setup method. */
@Setup
public void setUp() throws IOException {
@@ -95,7 +102,8 @@ public class CommitManyWritesBenchmark {
engineConfiguration(),
storageConfiguration(),
workDir,
- () -> {}
+ () -> {},
+ scheduledExecutor
);
storageEngine.start();
@@ -113,10 +121,12 @@ public class CommitManyWritesBenchmark {
/** Tear down method. */
@TearDown
- public void tearDown() {
- tableStorage.destroy().join();
-
- storageEngine.stop();
+ public void tearDown() throws Exception {
+ closeAll(
+ () -> tableStorage.destroy().join(),
+ () -> storageEngine.stop(),
+ () -> shutdownAndAwaitTermination(scheduledExecutor, 10,
TimeUnit.SECONDS)
+ );
}
private static int randomPartitionId() {
diff --git
a/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/engine/RocksDbStorageEngineTest.java
b/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/engine/RocksDbStorageEngineTest.java
index 77904b0f15..999d6b8cee 100644
---
a/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/engine/RocksDbStorageEngineTest.java
+++
b/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/engine/RocksDbStorageEngineTest.java
@@ -18,12 +18,15 @@
package org.apache.ignite.internal.storage.rocksdb.engine;
import java.nio.file.Path;
+import java.util.concurrent.ScheduledExecutorService;
import
org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
import org.apache.ignite.internal.storage.configurations.StorageConfiguration;
import org.apache.ignite.internal.storage.engine.AbstractStorageEngineTest;
import org.apache.ignite.internal.storage.engine.StorageEngine;
import org.apache.ignite.internal.storage.rocksdb.RocksDbStorageEngine;
import
org.apache.ignite.internal.storage.rocksdb.configuration.schema.RocksDbStorageEngineConfiguration;
+import org.apache.ignite.internal.testframework.ExecutorServiceExtension;
+import org.apache.ignite.internal.testframework.InjectExecutorService;
import org.apache.ignite.internal.testframework.WorkDirectory;
import org.apache.ignite.internal.testframework.WorkDirectoryExtension;
import org.junit.jupiter.api.extension.ExtendWith;
@@ -31,6 +34,7 @@ import org.junit.jupiter.api.extension.ExtendWith;
/**
* Implementation of the {@link AbstractStorageEngineTest} for the {@link
RocksDbStorageEngine#ENGINE_NAME} engine.
*/
+@ExtendWith(ExecutorServiceExtension.class)
@ExtendWith(WorkDirectoryExtension.class)
public class RocksDbStorageEngineTest extends AbstractStorageEngineTest {
@InjectConfiguration("mock.flushDelayMillis = 0")
@@ -42,6 +46,9 @@ public class RocksDbStorageEngineTest extends
AbstractStorageEngineTest {
@WorkDirectory
private Path workDir;
+ @InjectExecutorService
+ private ScheduledExecutorService scheduledExecutor;
+
@Override
protected StorageEngine createEngine() {
return new RocksDbStorageEngine(
@@ -49,7 +56,8 @@ public class RocksDbStorageEngineTest extends
AbstractStorageEngineTest {
engineConfiguration,
storageConfiguration,
workDir,
- logSyncer
+ logSyncer,
+ scheduledExecutor
);
}
}
diff --git
a/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/index/RocksDbHashIndexStorageTest.java
b/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/index/RocksDbHashIndexStorageTest.java
index 4cc281117c..449ba5c126 100644
---
a/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/index/RocksDbHashIndexStorageTest.java
+++
b/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/index/RocksDbHashIndexStorageTest.java
@@ -22,6 +22,7 @@ import static
org.apache.ignite.internal.util.IgniteUtils.closeAll;
import static org.mockito.Mockito.mock;
import java.nio.file.Path;
+import java.util.concurrent.ScheduledExecutorService;
import org.apache.ignite.internal.components.LogSyncer;
import
org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
import
org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
@@ -31,6 +32,8 @@ import
org.apache.ignite.internal.storage.index.AbstractHashIndexStorageTest;
import org.apache.ignite.internal.storage.index.StorageIndexDescriptorSupplier;
import org.apache.ignite.internal.storage.rocksdb.RocksDbStorageEngine;
import
org.apache.ignite.internal.storage.rocksdb.configuration.schema.RocksDbStorageEngineConfiguration;
+import org.apache.ignite.internal.testframework.ExecutorServiceExtension;
+import org.apache.ignite.internal.testframework.InjectExecutorService;
import org.apache.ignite.internal.testframework.WorkDirectory;
import org.apache.ignite.internal.testframework.WorkDirectoryExtension;
import org.junit.jupiter.api.AfterEach;
@@ -40,6 +43,7 @@ import org.junit.jupiter.api.extension.ExtendWith;
/**
* Tests for the {@link RocksDbHashIndexStorage} class.
*/
+@ExtendWith(ExecutorServiceExtension.class)
@ExtendWith(WorkDirectoryExtension.class)
@ExtendWith(ConfigurationExtension.class)
public class RocksDbHashIndexStorageTest extends AbstractHashIndexStorageTest {
@@ -52,9 +56,11 @@ public class RocksDbHashIndexStorageTest extends
AbstractHashIndexStorageTest {
RocksDbStorageEngineConfiguration engineConfig,
// Explicit size, small enough for fast allocation, and big enough
to fit some data without flushing it to disk constantly.
@InjectConfiguration("mock.profiles.default = {engine = rocksdb,
size = 16777216, writeBufferSize = 67108864}")
- StorageConfiguration storageConfiguration
+ StorageConfiguration storageConfiguration,
+ @InjectExecutorService
+ ScheduledExecutorService scheduledExecutor
) {
- engine = new RocksDbStorageEngine("test", engineConfig,
storageConfiguration, workDir, mock(LogSyncer.class));
+ engine = new RocksDbStorageEngine("test", engineConfig,
storageConfiguration, workDir, mock(LogSyncer.class), scheduledExecutor);
engine.start();
diff --git
a/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/index/RocksDbSortedIndexStorageTest.java
b/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/index/RocksDbSortedIndexStorageTest.java
index 6e7408b76c..136d35badd 100644
---
a/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/index/RocksDbSortedIndexStorageTest.java
+++
b/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/index/RocksDbSortedIndexStorageTest.java
@@ -22,6 +22,7 @@ import static
org.apache.ignite.internal.util.IgniteUtils.closeAll;
import static org.mockito.Mockito.mock;
import java.nio.file.Path;
+import java.util.concurrent.ScheduledExecutorService;
import org.apache.ignite.internal.components.LogSyncer;
import
org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
import
org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
@@ -31,6 +32,8 @@ import
org.apache.ignite.internal.storage.index.AbstractSortedIndexStorageTest;
import org.apache.ignite.internal.storage.index.StorageIndexDescriptorSupplier;
import org.apache.ignite.internal.storage.rocksdb.RocksDbStorageEngine;
import
org.apache.ignite.internal.storage.rocksdb.configuration.schema.RocksDbStorageEngineConfiguration;
+import org.apache.ignite.internal.testframework.ExecutorServiceExtension;
+import org.apache.ignite.internal.testframework.InjectExecutorService;
import org.apache.ignite.internal.testframework.WorkDirectory;
import org.apache.ignite.internal.testframework.WorkDirectoryExtension;
import org.junit.jupiter.api.AfterEach;
@@ -40,6 +43,7 @@ import org.junit.jupiter.api.extension.ExtendWith;
/**
* Tests for the {@link RocksDbSortedIndexStorage} class.
*/
+@ExtendWith(ExecutorServiceExtension.class)
@ExtendWith(WorkDirectoryExtension.class)
@ExtendWith(ConfigurationExtension.class)
public class RocksDbSortedIndexStorageTest extends
AbstractSortedIndexStorageTest {
@@ -52,9 +56,11 @@ public class RocksDbSortedIndexStorageTest extends
AbstractSortedIndexStorageTes
RocksDbStorageEngineConfiguration engineConfig,
// Explicit size, small enough for fast allocation, and big enough
to fit some data without flushing it to disk constantly.
@InjectConfiguration("mock.profiles.default = {engine = rocksdb,
size = 16777216, writeBufferSize = 67108864}")
- StorageConfiguration storageConfiguration
+ StorageConfiguration storageConfiguration,
+ @InjectExecutorService
+ ScheduledExecutorService scheduledExecutor
) {
- engine = new RocksDbStorageEngine("test", engineConfig,
storageConfiguration, workDir, mock(LogSyncer.class));
+ engine = new RocksDbStorageEngine("test", engineConfig,
storageConfiguration, workDir, mock(LogSyncer.class), scheduledExecutor);
engine.start();
diff --git
a/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/instance/SharedRocksDbInstanceTest.java
b/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/instance/SharedRocksDbInstanceTest.java
index 2cbb5ca288..54b3f1740c 100644
---
a/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/instance/SharedRocksDbInstanceTest.java
+++
b/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/instance/SharedRocksDbInstanceTest.java
@@ -41,6 +41,7 @@ import java.util.concurrent.BrokenBarrierException;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.CompletionException;
import java.util.concurrent.CyclicBarrier;
+import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
import org.apache.ignite.internal.components.LogSyncer;
@@ -53,7 +54,9 @@ import
org.apache.ignite.internal.storage.rocksdb.RocksDbStorageEngine;
import org.apache.ignite.internal.storage.rocksdb.RocksDbStorageProfile;
import
org.apache.ignite.internal.storage.rocksdb.configuration.schema.RocksDbProfileView;
import
org.apache.ignite.internal.storage.rocksdb.configuration.schema.RocksDbStorageEngineConfiguration;
+import org.apache.ignite.internal.testframework.ExecutorServiceExtension;
import org.apache.ignite.internal.testframework.IgniteAbstractTest;
+import org.apache.ignite.internal.testframework.InjectExecutorService;
import org.apache.ignite.internal.type.NativeTypes;
import org.apache.ignite.internal.util.IgniteUtils;
import org.junit.jupiter.api.AfterEach;
@@ -66,6 +69,7 @@ import org.rocksdb.ColumnFamilyHandle;
import org.rocksdb.RocksDBException;
/** Contains tests for {@link SharedRocksDbInstance}. */
+@ExtendWith(ExecutorServiceExtension.class)
@ExtendWith(ConfigurationExtension.class)
class SharedRocksDbInstanceTest extends IgniteAbstractTest {
private RocksDbStorageEngine engine;
@@ -79,9 +83,11 @@ class SharedRocksDbInstanceTest extends IgniteAbstractTest {
// Explicit size, small enough for fast allocation, and big enough
to fit some data without flushing it to disk constantly.
@InjectConfiguration("mock.profiles.default {engine = rocksdb,
size = 16777216, writeBufferSize = 67108864}")
StorageConfiguration storageConfiguration,
- @InjectConfiguration RocksDbStorageEngineConfiguration engineConfig
+ @InjectConfiguration RocksDbStorageEngineConfiguration
engineConfig,
+ @InjectExecutorService
+ ScheduledExecutorService scheduledExecutor
) throws Exception {
- engine = new RocksDbStorageEngine("test", engineConfig,
storageConfiguration, workDir, mock(LogSyncer.class));
+ engine = new RocksDbStorageEngine("test", engineConfig,
storageConfiguration, workDir, mock(LogSyncer.class), scheduledExecutor);
engine.start();
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 13a742f77b..746d45744e 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
@@ -1323,7 +1323,8 @@ public class ItRebalanceDistributedTest extends
BaseIgniteAbstractTest {
null,
failureManager,
logStorageFactory,
- hybridClock
+ hybridClock,
+ commonScheduledExecutorService
),
storageConfiguration
);
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 ecaac08d2a..0b8af06e24 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
@@ -326,7 +326,7 @@ public class TableManagerRecoveryTest extends
IgniteAbstractTest {
indexMetaStorage = new IndexMetaStorage(catalogManager, lowWatermark,
metaStorageManager);
- dsm = createDataStorageManager(mock(ConfigurationRegistry.class),
workDir, storageConfiguration, dataStorageModule, clock);
+ dsm = createDataStorageManager();
AlwaysSyncedSchemaSyncService schemaSyncService = new
AlwaysSyncedSchemaSyncService();
@@ -431,16 +431,12 @@ public class TableManagerRecoveryTest extends
IgniteAbstractTest {
);
}
- private static DataStorageManager createDataStorageManager(
- ConfigurationRegistry mockedRegistry,
- Path storagePath,
- StorageConfiguration config,
- DataStorageModule dataStorageModule,
- HybridClock clock
- ) {
+ private DataStorageManager createDataStorageManager() {
+ ConfigurationRegistry mockedRegistry =
mock(ConfigurationRegistry.class);
+
StorageExtensionConfiguration mock =
mock(StorageExtensionConfiguration.class);
when(mockedRegistry.getConfiguration(NodeConfiguration.KEY)).thenReturn(mock);
- when(mock.storage()).thenReturn(config);
+ when(mock.storage()).thenReturn(storageConfiguration);
DataStorageModules dataStorageModules = new
DataStorageModules(List.of(dataStorageModule));
@@ -448,13 +444,14 @@ public class TableManagerRecoveryTest extends
IgniteAbstractTest {
dataStorageModules.createStorageEngines(
NODE_NAME,
mockedRegistry,
- storagePath,
+ workDir,
null,
mock(FailureManager.class),
mock(LogSyncer.class),
- clock
+ clock,
+ scheduledExecutor
),
- config
+ storageConfiguration
);
assertThat(manager.startAsync(new ComponentContext()),
willCompleteSuccessfully());
@@ -502,15 +499,18 @@ public class TableManagerRecoveryTest extends
IgniteAbstractTest {
@Nullable LongJvmPauseDetector longJvmPauseDetector,
FailureManager failureManager,
LogSyncer logSyncer,
- HybridClock clock
+ HybridClock clock,
+ ScheduledExecutorService commonScheduler
) throws StorageException {
- return spy(super.createEngine(igniteInstanceName,
+ return spy(super.createEngine(
+ igniteInstanceName,
configRegistry,
storagePath,
longJvmPauseDetector,
failureManager,
logSyncer,
- clock
+ clock,
+ commonScheduler
));
}
};
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 af827a1564..a983ace0dd 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
@@ -899,7 +899,8 @@ public class TableManagerTest extends IgniteAbstractTest {
null,
mock(FailureManager.class),
mock(LogSyncer.class),
- clock
+ clock,
+ scheduledExecutor
),
storageConfiguration
);
diff --git
a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/gc/RocksDbGcUpdateHandlerTest.java
b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/gc/RocksDbGcUpdateHandlerTest.java
index e56d3daa8d..a7389160a7 100644
---
a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/gc/RocksDbGcUpdateHandlerTest.java
+++
b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/gc/RocksDbGcUpdateHandlerTest.java
@@ -23,6 +23,7 @@ import static
org.apache.ignite.internal.testframework.IgniteTestUtils.testNodeN
import static org.mockito.Mockito.mock;
import java.nio.file.Path;
+import java.util.concurrent.ScheduledExecutorService;
import org.apache.ignite.internal.components.LogSyncer;
import
org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
import org.apache.ignite.internal.storage.configurations.StorageConfiguration;
@@ -31,6 +32,8 @@ import
org.apache.ignite.internal.storage.index.StorageIndexDescriptorSupplier;
import org.apache.ignite.internal.storage.rocksdb.RocksDbStorageEngine;
import org.apache.ignite.internal.storage.rocksdb.RocksDbTableStorage;
import
org.apache.ignite.internal.storage.rocksdb.configuration.schema.RocksDbStorageEngineConfiguration;
+import org.apache.ignite.internal.testframework.ExecutorServiceExtension;
+import org.apache.ignite.internal.testframework.InjectExecutorService;
import org.apache.ignite.internal.testframework.WorkDirectory;
import org.apache.ignite.internal.testframework.WorkDirectoryExtension;
import org.apache.ignite.internal.util.IgniteUtils;
@@ -39,11 +42,15 @@ import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.TestInfo;
import org.junit.jupiter.api.extension.ExtendWith;
+@ExtendWith(ExecutorServiceExtension.class)
@ExtendWith(WorkDirectoryExtension.class)
class RocksDbGcUpdateHandlerTest extends AbstractGcUpdateHandlerTest {
@WorkDirectory
private Path workDir;
+ @InjectExecutorService
+ private ScheduledExecutorService scheduledExecutor;
+
private RocksDbStorageEngine engine;
private RocksDbTableStorage table;
@@ -60,7 +67,8 @@ class RocksDbGcUpdateHandlerTest extends
AbstractGcUpdateHandlerTest {
engineConfig,
storageConfiguration,
workDir,
- mock(LogSyncer.class)
+ mock(LogSyncer.class),
+ scheduledExecutor
);
engine.start();