DRILL-8089: Separate the setup time for some operators(#2413)
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/mergereceiver/MergingRecordBatch.java b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/mergereceiver/MergingRecordBatch.java
index 73f4461..2d34fff 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/mergereceiver/MergingRecordBatch.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/mergereceiver/MergingRecordBatch.java
@@ -619,7 +619,7 @@
* @throws SchemaChangeException
*/
private MergingReceiverGeneratorBase createMerger() {
-
+ stats.startSetup();
final CodeGenerator<MergingReceiverGeneratorBase> cg =
CodeGenerator.get(MergingReceiverGeneratorBase.TEMPLATE_DEFINITION,
context.getOptions());
@@ -651,6 +651,8 @@
return merger;
} catch (SchemaChangeException e) {
throw schemaChangeException(e, logger);
+ } finally {
+ stats.stopSetup();
}
}
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/partitionsender/PartitionSenderRootExec.java b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/partitionsender/PartitionSenderRootExec.java
index d2eea15..fc5da15 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/partitionsender/PartitionSenderRootExec.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/partitionsender/PartitionSenderRootExec.java
@@ -185,7 +185,12 @@
partitioner.flushOutgoingBatches(false, true);
partitioner.clear();
}
- createPartitioner();
+ try {
+ stats.startSetup();
+ createPartitioner();
+ } finally {
+ stats.stopSetup();
+ }
if (first) {
// Send an empty batch for fast schema
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/project/ProjectRecordBatch.java b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/project/ProjectRecordBatch.java
index 948f283..60f8a1e 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/project/ProjectRecordBatch.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/project/ProjectRecordBatch.java
@@ -123,7 +123,12 @@
} else if (next != IterOutcome.OK && next != IterOutcome.OK_NEW_SCHEMA && next != EMIT) {
return next;
} else if (next == IterOutcome.OK_NEW_SCHEMA) {
- setupNewSchema();
+ try {
+ stats.startSetup();
+ setupNewSchema();
+ } finally {
+ stats.stopSetup();
+ }
}
incomingRecordCount = incoming.getRecordCount();
memoryManager.update();