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