[NO ISSUE] Post-review cleanup for profiler
- user model changes: no
- storage format changes: no
- interface changes: yes
Details:
Address open comments on the profiler change.
Change-Id: Icf2a8f66f39e39eb6a39506c9f385c623176a87d
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17747
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Ali Alsuliman <ali.al.solaiman@gmail.com>
diff --git a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/dataflow/ProfiledFrameWriter.java b/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/dataflow/ProfiledFrameWriter.java
index 6384e49..dc53bca 100644
--- a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/dataflow/ProfiledFrameWriter.java
+++ b/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/dataflow/ProfiledFrameWriter.java
@@ -30,34 +30,24 @@
import org.apache.hyracks.api.job.profiling.IStatsCollector;
import org.apache.hyracks.api.job.profiling.OperatorStats;
import org.apache.hyracks.api.job.profiling.counters.ICounter;
-import org.apache.hyracks.api.util.HyracksConsumer;
import org.apache.hyracks.api.util.HyracksRunnable;
+import org.apache.hyracks.api.util.HyracksThrowingConsumer;
import org.apache.hyracks.util.IntSerDeUtils;
public class ProfiledFrameWriter implements IFrameWriter {
// The downstream data consumer of this writer.
private final IFrameWriter writer;
- final ICounter timeCounter;
- final ICounter tupleCounter;
- final IStatsCollector collector;
- final IOperatorStats stats;
- final IOperatorStats parentStats;
-
+ private final ICounter tupleCounter;
+ private final IOperatorStats parentStats;
private int minSz = Integer.MAX_VALUE;
private int maxSz = -1;
private long avgSz;
- final String name;
- public ICounter totalTime;
+ private ICounter totalTime;
- public ProfiledFrameWriter(IFrameWriter writer, IStatsCollector collector, String name, IOperatorStats stats,
- IOperatorStats parentStats) {
+ public ProfiledFrameWriter(IFrameWriter writer, IOperatorStats parentStats) {
this.writer = writer;
- this.collector = collector;
- this.name = name;
- this.stats = stats;
this.parentStats = parentStats;
- this.timeCounter = stats.getTimeCounter();
this.tupleCounter = parentStats != null ? parentStats.getTupleCounter() : null;
this.totalTime = new Counter("totalTime");
}
@@ -72,7 +62,7 @@
}
}
- private void timeMethod(HyracksConsumer<ByteBuffer> c, ByteBuffer buffer) throws HyracksDataException {
+ private void timeMethod(HyracksThrowingConsumer<ByteBuffer> c, ByteBuffer buffer) throws HyracksDataException {
long nt = 0;
try {
nt = System.nanoTime();
@@ -152,7 +142,7 @@
IStatsCollector statsCollector = ctx.getStatsCollector();
IOperatorStats stats = new OperatorStats(name);
statsCollector.add(stats);
- return new ProfiledFrameWriter(writer, ctx.getStatsCollector(), name, stats, null);
+ return new ProfiledFrameWriter(writer, null);
} else
return writer;
diff --git a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/dataflow/ProfiledOperatorNodePushable.java b/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/dataflow/ProfiledOperatorNodePushable.java
index facf049..bde5611 100644
--- a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/dataflow/ProfiledOperatorNodePushable.java
+++ b/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/dataflow/ProfiledOperatorNodePushable.java
@@ -34,25 +34,19 @@
public class ProfiledOperatorNodePushable implements IOperatorNodePushable {
- IOperatorNodePushable op;
- ActivityId acId;
- Map<Integer, ProfiledFrameWriter> inputs;
- Map<Integer, ProfiledOperatorNodePushable> parents;
+ private final IOperatorNodePushable op;
+ private final Map<Integer, ProfiledFrameWriter> inputs;
+ private final Map<Integer, ProfiledOperatorNodePushable> parents;
+ private final Map<Integer, ProfiledFrameWriter> outputs;
+ private final IOperatorStats stats;
+ private final ICounter totalTime;
- Map<Integer, ProfiledFrameWriter> outputs;
- IOperatorStats stats;
- IStatsCollector collector;
-
- ICounter totalTime;
-
- ProfiledOperatorNodePushable(IOperatorNodePushable op, ActivityId acId, IStatsCollector collector,
- IOperatorStats stats, ProfiledOperatorNodePushable parentOp) {
+ ProfiledOperatorNodePushable(IOperatorNodePushable op, IOperatorStats stats,
+ ProfiledOperatorNodePushable parentOp) {
this.stats = stats;
- this.collector = collector;
this.parents = new HashMap<>();
parents.put(0, parentOp);
this.op = op;
- this.acId = acId;
inputs = new HashMap<>();
outputs = new HashMap<>();
this.totalTime = new Counter("totalTime");
@@ -65,15 +59,15 @@
@Override
public void deinitialize() throws HyracksDataException {
- long unNestTime = totalTime.get();
+ long ownTime = totalTime.get();
for (ProfiledFrameWriter i : inputs.values()) {
- unNestTime += i.getTotalTime();
+ ownTime += i.getTotalTime();
}
for (ProfiledFrameWriter w : outputs.values()) {
- unNestTime -= w.getTotalTime();
+ ownTime -= w.getTotalTime();
}
op.deinitialize();
- stats.getTimeCounter().set(unNestTime);
+ stats.getTimeCounter().set(ownTime);
}
@Override
@@ -95,8 +89,7 @@
public IFrameWriter getInputFrameWriter(int index) {
if (inputs.get(index) == null) {
IOperatorStats parentStats = parents.get(index) == null ? null : parents.get(index).getStats();
- ProfiledFrameWriter pfw = new ProfiledFrameWriter(op.getInputFrameWriter(index), collector,
- acId.toString() + "-" + op.getDisplayName(), stats, parentStats);
+ ProfiledFrameWriter pfw = new ProfiledFrameWriter(op.getInputFrameWriter(index), parentStats);
inputs.put(index, pfw);
return pfw;
} else {
@@ -127,7 +120,7 @@
((IIntrospectingOperator) op).setOperatorStats(stats);
}
if (!(op instanceof ProfiledOperatorNodePushable) && !(op instanceof SuperActivityOperatorNodePushable)) {
- return new ProfiledOperatorNodePushable(op, acId, ctx.getStatsCollector(), stats, source);
+ return new ProfiledOperatorNodePushable(op, stats, source);
}
return op;
}
diff --git a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/util/HyracksConsumer.java b/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/util/HyracksConsumer.java
deleted file mode 100644
index c5abb5e..0000000
--- a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/util/HyracksConsumer.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.hyracks.api.util;
-
-import org.apache.hyracks.api.exceptions.HyracksDataException;
-
-@FunctionalInterface
-public interface HyracksConsumer<T> {
- void accept(final T elem) throws HyracksDataException;
-}