This is an automated email from the ASF dual-hosted git repository.

mblow pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/asterixdb.git

commit 4e00bb4970f88a1285d4a623ae04feef6876fe8c
Author: Michael Blow <[email protected]>
AuthorDate: Sun Dec 20 11:35:58 2020 -0500

    [NO ISSUE][HYR] Logging improvements, cleanup
    
    - abbreviate java package names in IActivity display names, as these
      are used in thread names, which adds a lot of bloat to logs: all
      but the last segment of the package are replaced with the first
      letter of the segment
    
      e.g. org.apache.hyracks.api.rewriter.runtime.SuperActivity
           -> o.a.h.a.r.runtime.SuperActivity
    
    Change-Id: I092f2988f1efa0ffbf7e6395313edbc482f377a4
    Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/9403
    Integration-Tests: Jenkins <[email protected]>
    Tested-by: Jenkins <[email protected]>
    Reviewed-by: Michael Blow <[email protected]>
    Reviewed-by: Hussain Towaileb <[email protected]>
---
 .../org/apache/hyracks/api/dataflow/IActivity.java | 22 +++++++++++++---
 .../runtime/SuperActivityOperatorNodePushable.java |  4 +--
 .../hyracks/api/dataflow/IActivityTest.java}       | 30 +++++++++++++++++++---
 .../hyracks/control/nc/work/StartTasksWork.java    |  5 ++--
 4 files changed, 49 insertions(+), 12 deletions(-)

diff --git 
a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/dataflow/IActivity.java
 
b/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/dataflow/IActivity.java
index f7e4d42..033e744 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/dataflow/IActivity.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/dataflow/IActivity.java
@@ -19,14 +19,30 @@
 package org.apache.hyracks.api.dataflow;
 
 import java.io.Serializable;
+import java.util.regex.Pattern;
 
 import org.apache.hyracks.api.context.IHyracksTaskContext;
 import org.apache.hyracks.api.dataflow.value.IRecordDescriptorProvider;
 import org.apache.hyracks.api.exceptions.HyracksDataException;
 
 public interface IActivity extends Serializable {
-    public ActivityId getActivityId();
+    ActivityId getActivityId();
 
-    public IOperatorNodePushable createPushRuntime(IHyracksTaskContext ctx,
-            IRecordDescriptorProvider recordDescProvider, int partition, int 
nPartitions) throws HyracksDataException;
+    IOperatorNodePushable createPushRuntime(IHyracksTaskContext ctx, 
IRecordDescriptorProvider recordDescProvider,
+            int partition, int nPartitions) throws HyracksDataException;
+
+    default String getDisplayName() {
+        return DisplayNameHelper.toDisplayName(getClass().getName());
+    }
+
+    class DisplayNameHelper {
+        static final Pattern PREFIX_PATTERN = 
Pattern.compile("\\B\\w+(\\.[a-z])");
+
+        private DisplayNameHelper() {
+        }
+
+        static String toDisplayName(String className) {
+            return PREFIX_PATTERN.matcher(className).replaceAll("$1");
+        }
+    }
 }
diff --git 
a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/rewriter/runtime/SuperActivityOperatorNodePushable.java
 
b/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/rewriter/runtime/SuperActivityOperatorNodePushable.java
index 168d7dd..1d8c774 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/rewriter/runtime/SuperActivityOperatorNodePushable.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/rewriter/runtime/SuperActivityOperatorNodePushable.java
@@ -55,6 +55,7 @@ import org.apache.hyracks.api.util.ExceptionUtils;
  * connected activities in a single thread.
  */
 public class SuperActivityOperatorNodePushable implements 
IOperatorNodePushable {
+    private static final String CLASS_SIMPLE_NAME = 
SuperActivityOperatorNodePushable.class.getSimpleName();
     private final Map<ActivityId, IOperatorNodePushable> operatorNodePushables 
= new HashMap<>();
     private final List<IOperatorNodePushable> operatorNodePushablesBFSOrder = 
new ArrayList<>();
     private final Map<ActivityId, IActivity> startActivities;
@@ -223,8 +224,7 @@ public class SuperActivityOperatorNodePushable implements 
IOperatorNodePushable
                     try {
                         Thread.currentThread()
                                 .setName(Thread.currentThread().getName() + 
":" + ctx.getJobletContext().getJobId()
-                                        + ":" + ctx.getTaskAttemptId() + ":"
-                                        + 
SuperActivityOperatorNodePushable.class.getSimpleName());
+                                        + ":" + ctx.getTaskAttemptId() + ":" + 
CLASS_SIMPLE_NAME);
                         action.run(op);
                     } catch (Throwable th) { // NOSONAR: Must catch all causes 
of failure
                         failures.offer(th);
diff --git 
a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/dataflow/IActivity.java
 
b/hyracks-fullstack/hyracks/hyracks-api/src/test/java/org/apache/hyracks/api/dataflow/IActivityTest.java
similarity index 52%
copy from 
hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/dataflow/IActivity.java
copy to 
hyracks-fullstack/hyracks/hyracks-api/src/test/java/org/apache/hyracks/api/dataflow/IActivityTest.java
index f7e4d42..98830c4 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/dataflow/IActivity.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-api/src/test/java/org/apache/hyracks/api/dataflow/IActivityTest.java
@@ -18,15 +18,37 @@
  */
 package org.apache.hyracks.api.dataflow;
 
-import java.io.Serializable;
+import static 
org.apache.hyracks.api.dataflow.IActivity.DisplayNameHelper.toDisplayName;
 
 import org.apache.hyracks.api.context.IHyracksTaskContext;
 import org.apache.hyracks.api.dataflow.value.IRecordDescriptorProvider;
 import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.api.rewriter.runtime.SuperActivity;
+import org.junit.Assert;
+import org.junit.Test;
 
-public interface IActivity extends Serializable {
-    public ActivityId getActivityId();
+public class IActivityTest {
+    @Test
+    public void testDisplayName() {
+        IActivity dummyActivity = new DummyActivity();
+        final String displayName = dummyActivity.getDisplayName();
+        Assert.assertEquals("o.a.h.a.dataflow.DummyActivity", displayName);
+        Assert.assertEquals("o.a.h.a.r.runtime.SuperActivity", 
toDisplayName(SuperActivity.class.getName()));
+        
Assert.assertEquals("o.a.h.a.r.o.std.SplitOperatorDescriptor$AbstractReplicateOperatorDescriptor",
+                
toDisplayName("org.apache.hyracks.algebricks.runtime.operators.std.SplitOperatorDescriptor"
+                        + "$AbstractReplicateOperatorDescriptor"));
+    }
+}
+
+class DummyActivity implements IActivity {
+    @Override
+    public ActivityId getActivityId() {
+        return null;
+    }
 
+    @Override
     public IOperatorNodePushable createPushRuntime(IHyracksTaskContext ctx,
-            IRecordDescriptorProvider recordDescProvider, int partition, int 
nPartitions) throws HyracksDataException;
+            IRecordDescriptorProvider recordDescProvider, int partition, int 
nPartitions) throws HyracksDataException {
+        return null;
+    }
 }
diff --git 
a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/work/StartTasksWork.java
 
b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/work/StartTasksWork.java
index 69f1113..551d8fa 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/work/StartTasksWork.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/work/StartTasksWork.java
@@ -150,8 +150,7 @@ public class StartTasksWork extends AbstractWork {
                 LOGGER.trace("Initializing {} -> {} for {}", taId, han, jobId);
                 final int partition = tid.getPartition();
                 List<IConnectorDescriptor> inputs = 
ac.getActivityInputMap().get(aid);
-                task = null;
-                task = new Task(joblet, flags, taId, han.getClass().getName(), 
ncs.getExecutor(), ncs,
+                task = new Task(joblet, flags, taId, han.getDisplayName(), 
ncs.getExecutor(), ncs,
                         createInputChannels(td, inputs));
                 IOperatorNodePushable operator = han.createPushRuntime(task, 
rdp, partition, td.getPartitionCount());
                 List<IPartitionCollector> collectors = new ArrayList<>();
@@ -185,7 +184,7 @@ public class StartTasksWork extends AbstractWork {
                     }
                 }
 
-                task.setTaskRuntime(collectors.toArray(new 
IPartitionCollector[collectors.size()]), operator);
+                task.setTaskRuntime(collectors.toArray(new 
IPartitionCollector[0]), operator);
                 joblet.addTask(task);
                 task.start();
                 taskIndex++;

Reply via email to