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 ae982d7fea IGNITE-22310 Do not log slow network processing in storage threads (#4079) ae982d7fea is described below commit ae982d7feaa50178a0e1653191f47dc568d1f78a Author: Cyrill <cyrill.si...@gmail.com> AuthorDate: Mon Jul 15 10:57:14 2024 +0300 IGNITE-22310 Do not log slow network processing in storage threads (#4079) --- .../network/TrackableNetworkMessageHandler.java | 23 +++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/modules/network-api/src/main/java/org/apache/ignite/internal/network/TrackableNetworkMessageHandler.java b/modules/network-api/src/main/java/org/apache/ignite/internal/network/TrackableNetworkMessageHandler.java index d5efd14d13..1b31d5f7d5 100644 --- a/modules/network-api/src/main/java/org/apache/ignite/internal/network/TrackableNetworkMessageHandler.java +++ b/modules/network-api/src/main/java/org/apache/ignite/internal/network/TrackableNetworkMessageHandler.java @@ -19,9 +19,12 @@ package org.apache.ignite.internal.network; import static org.apache.ignite.internal.tostring.IgniteToStringBuilder.includeSensitive; +import java.util.Set; import java.util.concurrent.TimeUnit; import org.apache.ignite.internal.logger.IgniteLogger; import org.apache.ignite.internal.logger.Loggers; +import org.apache.ignite.internal.thread.ThreadAttributes; +import org.apache.ignite.internal.thread.ThreadOperation; import org.apache.ignite.network.ClusterNode; import org.jetbrains.annotations.Nullable; @@ -48,7 +51,25 @@ public class TrackableNetworkMessageHandler implements NetworkMessageHandler { targetHandler.onReceived(message, sender, correlationId); - maybeLogLongProcessing(message, startTimeNanos); + if (!storageThread()) { + maybeLogLongProcessing(message, startTimeNanos); + } + } + + private static boolean storageThread() { + Thread currentThread = Thread.currentThread(); + + if (!(currentThread instanceof ThreadAttributes)) { + return false; + } + + ThreadAttributes current = (ThreadAttributes) currentThread; + + Set<ThreadOperation> allowedOperations = current.allowedOperations(); + + return allowedOperations.contains(ThreadOperation.STORAGE_READ) + || allowedOperations.contains(ThreadOperation.STORAGE_WRITE) + || allowedOperations.contains(ThreadOperation.TX_STATE_STORAGE_ACCESS); } private static void maybeLogLongProcessing(NetworkMessage message, long startTimeNanos) {