You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by am...@apache.org on 2021/08/20 08:21:45 UTC
[ignite-3] branch main updated: IGNITE-15335 Introduce thread utils
for Ignite 3.0 (#292)
This is an automated email from the ASF dual-hosted git repository.
amashenkov 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 e64a30a IGNITE-15335 Introduce thread utils for Ignite 3.0 (#292)
e64a30a is described below
commit e64a30ad5b4c7c909ca88dd633741f3a82cb18b5
Author: Taras Ledkov <tl...@gridgain.com>
AuthorDate: Fri Aug 20 11:21:39 2021 +0300
IGNITE-15335 Introduce thread utils for Ignite 3.0 (#292)
---
.../query/calcite/SqlQueryProcessor.java | 8 +--
.../query/calcite/exec/QueryTaskExecutorImpl.java | 3 +-
.../calcite/exec/rel/AbstractExecutionTest.java | 2 +-
.../internal/thread}/NamedThreadFactory.java | 59 +++++++++++++++++++---
.../thread}/StripedThreadPoolExecutor.java | 15 +-----
modules/raft/pom.xml | 5 ++
.../internal/raft/server/impl/JRaftServerImpl.java | 9 ++--
.../org/apache/ignite/raft/jraft/JRaftUtils.java | 27 +++++++---
.../ignite/raft/jraft/core/TimerManager.java | 2 +-
.../raft/jraft/disruptor/DisruptorBuilder.java | 4 +-
.../raft/jraft/disruptor/StripedDisruptor.java | 8 +--
.../ignite/raft/jraft/util/RepeatedTimer.java | 1 +
.../DefaultFixedThreadsExecutorGroupFactory.java | 2 +-
.../concurrent/DefaultSingleThreadExecutor.java | 2 +-
.../jraft/util/timer/DefaultRaftTimerFactory.java | 2 +-
.../ignite/raft/jraft/util/timer/DefaultTimer.java | 2 +-
.../concurrent/MpscSingleThreadExecutorTest.java | 2 +-
.../concurrent/SingleThreadExecutorBenchmark.java | 4 +-
18 files changed, 105 insertions(+), 52 deletions(-)
diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/SqlQueryProcessor.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/SqlQueryProcessor.java
index e9d5a97..e2a8d47 100644
--- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/SqlQueryProcessor.java
+++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/SqlQueryProcessor.java
@@ -17,7 +17,6 @@
package org.apache.ignite.internal.processors.query.calcite;
import java.util.List;
-
import org.apache.ignite.internal.manager.EventListener;
import org.apache.ignite.internal.manager.IgniteComponent;
import org.apache.ignite.internal.processors.query.calcite.exec.ArrayRowHandler;
@@ -29,10 +28,11 @@ import org.apache.ignite.internal.processors.query.calcite.message.MessageServic
import org.apache.ignite.internal.processors.query.calcite.message.MessageServiceImpl;
import org.apache.ignite.internal.processors.query.calcite.prepare.DummyPlanCache;
import org.apache.ignite.internal.processors.query.calcite.schema.SchemaHolderImpl;
-import org.apache.ignite.internal.processors.query.calcite.util.StripedThreadPoolExecutor;
import org.apache.ignite.internal.table.distributed.TableManager;
import org.apache.ignite.internal.table.event.TableEvent;
import org.apache.ignite.internal.table.event.TableEventParameters;
+import org.apache.ignite.internal.thread.NamedThreadFactory;
+import org.apache.ignite.internal.thread.StripedThreadPoolExecutor;
import org.apache.ignite.internal.util.Cursor;
import org.apache.ignite.lang.NodeStoppingException;
import org.apache.ignite.network.ClusterService;
@@ -63,10 +63,12 @@ public class SqlQueryProcessor implements IgniteComponent {
/** {@inheritDoc} */
@Override public void start() {
+ String nodeName = clusterSrvc.localConfiguration().getName();
+
taskExecutor = new QueryTaskExecutorImpl(
new StripedThreadPoolExecutor(
4,
- "calciteQry",
+ NamedThreadFactory.threadPrefix(nodeName, "calciteQry"),
null,
true,
DFLT_THREAD_KEEP_ALIVE_TIME
diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/QueryTaskExecutorImpl.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/QueryTaskExecutorImpl.java
index 92f4546..81849d4 100644
--- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/QueryTaskExecutorImpl.java
+++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/QueryTaskExecutorImpl.java
@@ -19,8 +19,7 @@ package org.apache.ignite.internal.processors.query.calcite.exec;
import java.util.UUID;
import java.util.concurrent.CompletableFuture;
-
-import org.apache.ignite.internal.processors.query.calcite.util.StripedThreadPoolExecutor;
+import org.apache.ignite.internal.thread.StripedThreadPoolExecutor;
import org.apache.ignite.internal.util.IgniteUtils;
import org.apache.ignite.lang.IgniteLogger;
diff --git a/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/exec/rel/AbstractExecutionTest.java b/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/exec/rel/AbstractExecutionTest.java
index 00c7848..1ab8beb 100644
--- a/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/exec/rel/AbstractExecutionTest.java
+++ b/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/exec/rel/AbstractExecutionTest.java
@@ -30,9 +30,9 @@ import org.apache.ignite.internal.processors.query.calcite.exec.QueryTaskExecuto
import org.apache.ignite.internal.processors.query.calcite.exec.RowHandler;
import org.apache.ignite.internal.processors.query.calcite.metadata.FragmentDescription;
import org.apache.ignite.internal.processors.query.calcite.prepare.PlanningContext;
-import org.apache.ignite.internal.processors.query.calcite.util.StripedThreadPoolExecutor;
import org.apache.ignite.internal.testframework.IgniteAbstractTest;
import org.apache.ignite.internal.testframework.IgniteTestUtils;
+import org.apache.ignite.internal.thread.StripedThreadPoolExecutor;
import org.jetbrains.annotations.NotNull;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
diff --git a/modules/raft/src/main/java/org/apache/ignite/raft/jraft/util/NamedThreadFactory.java b/modules/core/src/main/java/org/apache/ignite/internal/thread/NamedThreadFactory.java
similarity index 53%
rename from modules/raft/src/main/java/org/apache/ignite/raft/jraft/util/NamedThreadFactory.java
rename to modules/core/src/main/java/org/apache/ignite/internal/thread/NamedThreadFactory.java
index a8dd078..9a0691b 100644
--- a/modules/raft/src/main/java/org/apache/ignite/raft/jraft/util/NamedThreadFactory.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/thread/NamedThreadFactory.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.ignite.raft.jraft.util;
+package org.apache.ignite.internal.thread;
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.atomic.AtomicInteger;
@@ -24,37 +24,82 @@ import org.apache.ignite.lang.IgniteLogger;
* Named thread factory with prefix.
*/
public class NamedThreadFactory implements ThreadFactory {
+ /** Logger. */
private static final IgniteLogger LOG = IgniteLogger.forClass(NamedThreadFactory.class);
- private static final LogUncaughtExceptionHandler UNCAUGHT_EX_HANDLER = new LogUncaughtExceptionHandler();
+ /** LogUncaughtExceptionHandler is used as default handler for uncaught exceptions. */
+ private static final LogUncaughtExceptionHandler DFLT_LOG_UNCAUGHT_EX_HANDLER = new LogUncaughtExceptionHandler();
+ /** Thread prefix. */
private final String prefix;
+ /** Thread counter. */
private final AtomicInteger counter = new AtomicInteger(0);
+
+ /** Thread daemon flag. */
private final boolean daemon;
+ /** Exception handler. */
+ private final Thread.UncaughtExceptionHandler eHnd;
+
+ /**
+ * Constructor
+ *
+ * @param prefix Thread name prefix.
+ */
public NamedThreadFactory(String prefix) {
this(prefix, false);
}
+ /**
+ * Constructor
+ *
+ * @param prefix Thread name prefix.
+ * @param daemon Daemon flag.
+ */
public NamedThreadFactory(String prefix, boolean daemon) {
+ this(prefix, daemon, DFLT_LOG_UNCAUGHT_EX_HANDLER);
+ }
+
+ /**
+ * Constructor
+ *
+ * @param prefix Thread name prefix.
+ * @param daemon Daemon flag.
+ * @param eHnd Uncaught exception handler.
+ */
+ public NamedThreadFactory(String prefix, boolean daemon, Thread.UncaughtExceptionHandler eHnd) {
super();
this.prefix = prefix;
this.daemon = daemon;
+ this.eHnd = eHnd != null ? eHnd : DFLT_LOG_UNCAUGHT_EX_HANDLER;
}
- @Override
- public Thread newThread(Runnable r) {
+ /** {@inheritDoc} */
+ @Override public Thread newThread(Runnable r) {
Thread t = new Thread(r);
+
t.setDaemon(this.daemon);
- t.setUncaughtExceptionHandler(UNCAUGHT_EX_HANDLER);
+ t.setUncaughtExceptionHandler(eHnd);
t.setName(this.prefix + counter.getAndIncrement());
+
return t;
}
+ /**
+ * Create prefix for thread name.
+ */
+ public static String threadPrefix(String nodeName, String poolName) {
+ return "%" + nodeName + "%" + poolName + "-";
+ }
+
+ /**
+ * Print uncaught exceptions to log.
+ * Default handler of uncaught exceptions for thread pools.
+ */
private static final class LogUncaughtExceptionHandler implements Thread.UncaughtExceptionHandler {
- @Override
- public void uncaughtException(Thread t, Throwable e) {
+ /** {@inheritDoc} */
+ @Override public void uncaughtException(Thread t, Throwable e) {
LOG.error("Uncaught exception in thread {}", e, t);
}
}
diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/util/StripedThreadPoolExecutor.java b/modules/core/src/main/java/org/apache/ignite/internal/thread/StripedThreadPoolExecutor.java
similarity index 92%
rename from modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/util/StripedThreadPoolExecutor.java
rename to modules/core/src/main/java/org/apache/ignite/internal/thread/StripedThreadPoolExecutor.java
index d84c953..793e948 100644
--- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/util/StripedThreadPoolExecutor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/thread/StripedThreadPoolExecutor.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.ignite.internal.processors.query.calcite.util;
+package org.apache.ignite.internal.thread;
import java.lang.Thread.UncaughtExceptionHandler;
import java.util.ArrayList;
@@ -31,8 +31,6 @@ import java.util.concurrent.RejectedExecutionException;
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
-import java.util.concurrent.atomic.AtomicInteger;
-
import org.apache.ignite.internal.tostring.S;
import org.jetbrains.annotations.NotNull;
@@ -61,16 +59,7 @@ public class StripedThreadPoolExecutor implements ExecutorService {
long keepAliveTime) {
execs = new ExecutorService[concurrentLvl];
- ThreadFactory factory = new ThreadFactory() {
- private final AtomicInteger counter = new AtomicInteger(0);
-
- @Override public Thread newThread(@NotNull Runnable r) {
- Thread t = new Thread(r);
- t.setUncaughtExceptionHandler(eHnd);
- t.setName(threadNamePrefix + counter.getAndIncrement());
- return t;
- }
- };
+ ThreadFactory factory = new NamedThreadFactory(threadNamePrefix, true, eHnd);
for (int i = 0; i < concurrentLvl; i++) {
ThreadPoolExecutor executor = new ThreadPoolExecutor(
diff --git a/modules/raft/pom.xml b/modules/raft/pom.xml
index bc45020..8c2966c 100644
--- a/modules/raft/pom.xml
+++ b/modules/raft/pom.xml
@@ -35,6 +35,11 @@
<dependencies>
<dependency>
<groupId>org.apache.ignite</groupId>
+ <artifactId>ignite-core</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.ignite</groupId>
<artifactId>ignite-raft-client</artifactId>
</dependency>
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 b383b26..cf4283f 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
@@ -27,6 +27,7 @@ import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
import java.util.stream.Collectors;
import org.apache.ignite.internal.raft.server.RaftServer;
+import org.apache.ignite.internal.thread.NamedThreadFactory;
import org.apache.ignite.lang.IgniteInternalException;
import org.apache.ignite.network.ClusterNode;
import org.apache.ignite.network.ClusterService;
@@ -134,7 +135,7 @@ public class JRaftServerImpl implements RaftServer {
if (opts.getfSMCallerExecutorDisruptor() == null) {
opts.setfSMCallerExecutorDisruptor(new StripedDisruptor<FSMCallerImpl.ApplyTask>(
- "JRaft-FSMCaller-Disruptor",
+ NamedThreadFactory.threadPrefix(opts.getServerName(), "JRaft-FSMCaller-Disruptor"),
opts.getRaftOptions().getDisruptorBufferSize(),
() -> new FSMCallerImpl.ApplyTask(),
opts.getStripes()));
@@ -142,7 +143,7 @@ public class JRaftServerImpl implements RaftServer {
if (opts.getNodeApplyDisruptor() == null) {
opts.setNodeApplyDisruptor(new StripedDisruptor<NodeImpl.LogEntryAndClosure>(
- "JRaft-NodeImpl-Disruptor",
+ NamedThreadFactory.threadPrefix(opts.getServerName(), "JRaft-NodeImpl-Disruptor"),
opts.getRaftOptions().getDisruptorBufferSize(),
() -> new NodeImpl.LogEntryAndClosure(),
opts.getStripes()));
@@ -150,7 +151,7 @@ public class JRaftServerImpl implements RaftServer {
if (opts.getReadOnlyServiceDisruptor() == null) {
opts.setReadOnlyServiceDisruptor(new StripedDisruptor<ReadOnlyServiceImpl.ReadIndexEvent>(
- "JRaft-ReadOnlyService-Disruptor",
+ NamedThreadFactory.threadPrefix(opts.getServerName(), "JRaft-ReadOnlyService-Disruptor"),
opts.getRaftOptions().getDisruptorBufferSize(),
() -> new ReadOnlyServiceImpl.ReadIndexEvent(),
opts.getStripes()));
@@ -158,7 +159,7 @@ public class JRaftServerImpl implements RaftServer {
if (opts.getLogManagerDisruptor() == null) {
opts.setLogManagerDisruptor(new StripedDisruptor<LogManagerImpl.StableClosureEvent>(
- "JRaft-LogManager-Disruptor",
+ NamedThreadFactory.threadPrefix(opts.getServerName(), "JRaft-LogManager-Disruptor"),
opts.getRaftOptions().getDisruptorBufferSize(),
() -> new LogManagerImpl.StableClosureEvent(),
opts.getStripes()));
diff --git a/modules/raft/src/main/java/org/apache/ignite/raft/jraft/JRaftUtils.java b/modules/raft/src/main/java/org/apache/ignite/raft/jraft/JRaftUtils.java
index 36705b2..6ad6349 100644
--- a/modules/raft/src/main/java/org/apache/ignite/raft/jraft/JRaftUtils.java
+++ b/modules/raft/src/main/java/org/apache/ignite/raft/jraft/JRaftUtils.java
@@ -21,6 +21,7 @@ import java.util.concurrent.ExecutorService;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.ThreadPoolExecutor;
+import org.apache.ignite.internal.thread.NamedThreadFactory;
import org.apache.ignite.network.NetworkAddress;
import org.apache.ignite.raft.jraft.conf.Configuration;
import org.apache.ignite.raft.jraft.core.FSMCallerImpl;
@@ -35,7 +36,6 @@ import org.apache.ignite.raft.jraft.option.NodeOptions;
import org.apache.ignite.raft.jraft.option.RpcOptions;
import org.apache.ignite.raft.jraft.storage.impl.LogManagerImpl;
import org.apache.ignite.raft.jraft.util.Endpoint;
-import org.apache.ignite.raft.jraft.util.NamedThreadFactory;
import org.apache.ignite.raft.jraft.util.StringUtils;
import org.apache.ignite.raft.jraft.util.ThreadPoolUtil;
import org.apache.ignite.raft.jraft.util.Utils;
@@ -128,7 +128,10 @@ public final class JRaftUtils {
* @return The executor.
*/
public static ExecutorService createCommonExecutor(NodeOptions opts) {
- return createExecutor("JRaft-Common-Executor-" + opts.getServerName() + "-", opts.getCommonThreadPollSize());
+ return createExecutor(
+ NamedThreadFactory.threadPrefix(opts.getServerName(), "JRaft-Common-Executor"),
+ opts.getCommonThreadPollSize()
+ );
}
/**
@@ -136,8 +139,10 @@ public final class JRaftUtils {
* @return The executor.
*/
public static FixedThreadsExecutorGroup createAppendEntriesExecutor(NodeOptions opts) {
- return createStripedExecutor("JRaft-AppendEntries-Processor-" + opts.getServerName() + "-",
- Utils.APPEND_ENTRIES_THREADS_POOL_SIZE, Utils.MAX_APPEND_ENTRIES_TASKS_PER_THREAD);
+ return createStripedExecutor(
+ NamedThreadFactory.threadPrefix(opts.getServerName(), "JRaft-AppendEntries-Processor"),
+ Utils.APPEND_ENTRIES_THREADS_POOL_SIZE, Utils.MAX_APPEND_ENTRIES_TASKS_PER_THREAD
+ );
}
/**
@@ -145,8 +150,10 @@ public final class JRaftUtils {
* @return The executor.
*/
public static ExecutorService createRequestExecutor(NodeOptions opts) {
- return createExecutor("JRaft-Request-Processor-" + opts.getServerName() + "-",
- opts.getRaftRpcThreadPoolSize());
+ return createExecutor(
+ NamedThreadFactory.threadPrefix(opts.getServerName(), "JRaft-Request-Processor"),
+ opts.getRaftRpcThreadPoolSize()
+ );
}
/**
@@ -155,7 +162,8 @@ public final class JRaftUtils {
* @return The service.
*/
public static ExecutorService createClientExecutor(RpcOptions opts, String name) {
- String prefix = "JRaft-Response-Processor-" + name + "-";
+ String prefix = NamedThreadFactory.threadPrefix(name, "JRaft-Response-Processor");
+
return ThreadPoolUtil.newBuilder()
.poolName(prefix) //
.enableMetric(true) //
@@ -172,7 +180,10 @@ public final class JRaftUtils {
* @return The scheduler.
*/
public static Scheduler createScheduler(NodeOptions opts) {
- return new TimerManager(opts.getTimerPoolSize(), "JRaft-Node-Scheduler-" + opts.getServerName() + "-");
+ return new TimerManager(
+ opts.getTimerPoolSize(),
+ NamedThreadFactory.threadPrefix(opts.getServerName(), "JRaft-Node-Scheduler")
+ );
}
/**
diff --git a/modules/raft/src/main/java/org/apache/ignite/raft/jraft/core/TimerManager.java b/modules/raft/src/main/java/org/apache/ignite/raft/jraft/core/TimerManager.java
index 2531c89..d3f5462 100644
--- a/modules/raft/src/main/java/org/apache/ignite/raft/jraft/core/TimerManager.java
+++ b/modules/raft/src/main/java/org/apache/ignite/raft/jraft/core/TimerManager.java
@@ -19,7 +19,7 @@ package org.apache.ignite.raft.jraft.core;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit;
-import org.apache.ignite.raft.jraft.util.NamedThreadFactory;
+import org.apache.ignite.internal.thread.NamedThreadFactory;
import org.apache.ignite.raft.jraft.util.ThreadPoolUtil;
/**
diff --git a/modules/raft/src/main/java/org/apache/ignite/raft/jraft/disruptor/DisruptorBuilder.java b/modules/raft/src/main/java/org/apache/ignite/raft/jraft/disruptor/DisruptorBuilder.java
index 79aaa35..6d25818 100644
--- a/modules/raft/src/main/java/org/apache/ignite/raft/jraft/disruptor/DisruptorBuilder.java
+++ b/modules/raft/src/main/java/org/apache/ignite/raft/jraft/disruptor/DisruptorBuilder.java
@@ -16,13 +16,13 @@
*/
package org.apache.ignite.raft.jraft.disruptor;
+import java.util.concurrent.ThreadFactory;
import com.lmax.disruptor.BlockingWaitStrategy;
import com.lmax.disruptor.EventFactory;
import com.lmax.disruptor.WaitStrategy;
import com.lmax.disruptor.dsl.Disruptor;
import com.lmax.disruptor.dsl.ProducerType;
-import java.util.concurrent.ThreadFactory;
-import org.apache.ignite.raft.jraft.util.NamedThreadFactory;
+import org.apache.ignite.internal.thread.NamedThreadFactory;
import org.apache.ignite.raft.jraft.util.Requires;
/**
diff --git a/modules/raft/src/main/java/org/apache/ignite/raft/jraft/disruptor/StripedDisruptor.java b/modules/raft/src/main/java/org/apache/ignite/raft/jraft/disruptor/StripedDisruptor.java
index f23ec49..000f424 100644
--- a/modules/raft/src/main/java/org/apache/ignite/raft/jraft/disruptor/StripedDisruptor.java
+++ b/modules/raft/src/main/java/org/apache/ignite/raft/jraft/disruptor/StripedDisruptor.java
@@ -16,6 +16,9 @@
*/
package org.apache.ignite.raft.jraft.disruptor;
+import java.util.ArrayList;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.function.BiConsumer;
import com.lmax.disruptor.BlockingWaitStrategy;
import com.lmax.disruptor.EventFactory;
import com.lmax.disruptor.EventHandler;
@@ -23,11 +26,8 @@ import com.lmax.disruptor.ExceptionHandler;
import com.lmax.disruptor.RingBuffer;
import com.lmax.disruptor.dsl.Disruptor;
import com.lmax.disruptor.dsl.ProducerType;
-import java.util.ArrayList;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.function.BiConsumer;
+import org.apache.ignite.internal.thread.NamedThreadFactory;
import org.apache.ignite.lang.IgniteLogger;
-import org.apache.ignite.raft.jraft.util.NamedThreadFactory;
import static org.apache.ignite.lang.LoggerMessageHelper.format;
diff --git a/modules/raft/src/main/java/org/apache/ignite/raft/jraft/util/RepeatedTimer.java b/modules/raft/src/main/java/org/apache/ignite/raft/jraft/util/RepeatedTimer.java
index 3476aa9..92c66fe 100644
--- a/modules/raft/src/main/java/org/apache/ignite/raft/jraft/util/RepeatedTimer.java
+++ b/modules/raft/src/main/java/org/apache/ignite/raft/jraft/util/RepeatedTimer.java
@@ -19,6 +19,7 @@ package org.apache.ignite.raft.jraft.util;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
+import org.apache.ignite.internal.thread.NamedThreadFactory;
import org.apache.ignite.lang.IgniteLogger;
import org.apache.ignite.raft.jraft.util.timer.HashedWheelTimer;
import org.apache.ignite.raft.jraft.util.timer.Timeout;
diff --git a/modules/raft/src/main/java/org/apache/ignite/raft/jraft/util/concurrent/DefaultFixedThreadsExecutorGroupFactory.java b/modules/raft/src/main/java/org/apache/ignite/raft/jraft/util/concurrent/DefaultFixedThreadsExecutorGroupFactory.java
index 3a98cc3..49bf3d7 100644
--- a/modules/raft/src/main/java/org/apache/ignite/raft/jraft/util/concurrent/DefaultFixedThreadsExecutorGroupFactory.java
+++ b/modules/raft/src/main/java/org/apache/ignite/raft/jraft/util/concurrent/DefaultFixedThreadsExecutorGroupFactory.java
@@ -18,7 +18,7 @@ package org.apache.ignite.raft.jraft.util.concurrent;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.ThreadFactory;
-import org.apache.ignite.raft.jraft.util.NamedThreadFactory;
+import org.apache.ignite.internal.thread.NamedThreadFactory;
import org.apache.ignite.raft.jraft.util.Requires;
import org.apache.ignite.raft.jraft.util.Utils;
diff --git a/modules/raft/src/main/java/org/apache/ignite/raft/jraft/util/concurrent/DefaultSingleThreadExecutor.java b/modules/raft/src/main/java/org/apache/ignite/raft/jraft/util/concurrent/DefaultSingleThreadExecutor.java
index 25730e7..6ef648c 100644
--- a/modules/raft/src/main/java/org/apache/ignite/raft/jraft/util/concurrent/DefaultSingleThreadExecutor.java
+++ b/modules/raft/src/main/java/org/apache/ignite/raft/jraft/util/concurrent/DefaultSingleThreadExecutor.java
@@ -19,8 +19,8 @@ package org.apache.ignite.raft.jraft.util.concurrent;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.TimeUnit;
+import org.apache.ignite.internal.thread.NamedThreadFactory;
import org.apache.ignite.raft.jraft.util.ExecutorServiceHelper;
-import org.apache.ignite.raft.jraft.util.NamedThreadFactory;
import org.apache.ignite.raft.jraft.util.ThreadPoolUtil;
/**
diff --git a/modules/raft/src/main/java/org/apache/ignite/raft/jraft/util/timer/DefaultRaftTimerFactory.java b/modules/raft/src/main/java/org/apache/ignite/raft/jraft/util/timer/DefaultRaftTimerFactory.java
index 83a0956..5710172 100644
--- a/modules/raft/src/main/java/org/apache/ignite/raft/jraft/util/timer/DefaultRaftTimerFactory.java
+++ b/modules/raft/src/main/java/org/apache/ignite/raft/jraft/util/timer/DefaultRaftTimerFactory.java
@@ -17,9 +17,9 @@
package org.apache.ignite.raft.jraft.util.timer;
import java.util.concurrent.TimeUnit;
+import org.apache.ignite.internal.thread.NamedThreadFactory;
import org.apache.ignite.raft.jraft.core.Scheduler;
import org.apache.ignite.raft.jraft.core.TimerManager;
-import org.apache.ignite.raft.jraft.util.NamedThreadFactory;
/**
* RAFT timers and schedulers factory.
diff --git a/modules/raft/src/main/java/org/apache/ignite/raft/jraft/util/timer/DefaultTimer.java b/modules/raft/src/main/java/org/apache/ignite/raft/jraft/util/timer/DefaultTimer.java
index 8b9791a..07637fe 100644
--- a/modules/raft/src/main/java/org/apache/ignite/raft/jraft/util/timer/DefaultTimer.java
+++ b/modules/raft/src/main/java/org/apache/ignite/raft/jraft/util/timer/DefaultTimer.java
@@ -21,8 +21,8 @@ import java.util.Set;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit;
+import org.apache.ignite.internal.thread.NamedThreadFactory;
import org.apache.ignite.raft.jraft.util.ExecutorServiceHelper;
-import org.apache.ignite.raft.jraft.util.NamedThreadFactory;
import org.apache.ignite.raft.jraft.util.Requires;
import org.apache.ignite.raft.jraft.util.ThreadPoolUtil;
diff --git a/modules/raft/src/test/java/org/apache/ignite/raft/jraft/util/concurrent/MpscSingleThreadExecutorTest.java b/modules/raft/src/test/java/org/apache/ignite/raft/jraft/util/concurrent/MpscSingleThreadExecutorTest.java
index c0d6dd5..c59e3ba 100644
--- a/modules/raft/src/test/java/org/apache/ignite/raft/jraft/util/concurrent/MpscSingleThreadExecutorTest.java
+++ b/modules/raft/src/test/java/org/apache/ignite/raft/jraft/util/concurrent/MpscSingleThreadExecutorTest.java
@@ -22,8 +22,8 @@ import java.util.concurrent.RejectedExecutionException;
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicLong;
+import org.apache.ignite.internal.thread.NamedThreadFactory;
import org.apache.ignite.lang.IgniteLogger;
-import org.apache.ignite.raft.jraft.util.NamedThreadFactory;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
diff --git a/modules/raft/src/test/java/org/apache/ignite/raft/jraft/util/concurrent/SingleThreadExecutorBenchmark.java b/modules/raft/src/test/java/org/apache/ignite/raft/jraft/util/concurrent/SingleThreadExecutorBenchmark.java
index d0ab65e..cb536c1 100644
--- a/modules/raft/src/test/java/org/apache/ignite/raft/jraft/util/concurrent/SingleThreadExecutorBenchmark.java
+++ b/modules/raft/src/test/java/org/apache/ignite/raft/jraft/util/concurrent/SingleThreadExecutorBenchmark.java
@@ -16,7 +16,6 @@
*/
package org.apache.ignite.raft.jraft.util.concurrent;
-import io.netty.util.concurrent.DefaultEventExecutor;
import java.util.Queue;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.ConcurrentLinkedQueue;
@@ -25,8 +24,9 @@ import java.util.concurrent.ExecutorService;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.LinkedTransferQueue;
import java.util.concurrent.TimeUnit;
+import io.netty.util.concurrent.DefaultEventExecutor;
+import org.apache.ignite.internal.thread.NamedThreadFactory;
import org.apache.ignite.raft.jraft.util.ExecutorServiceHelper;
-import org.apache.ignite.raft.jraft.util.NamedThreadFactory;
import org.apache.ignite.raft.jraft.util.ThreadPoolUtil;
import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.BenchmarkMode;