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++;
