Github user arina-ielchiieva commented on a diff in the pull request:
https://github.com/apache/drill/pull/1197#discussion_r179403811
--- Diff:
exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/profile/OperatorWrapper.java
---
@@ -190,8 +223,59 @@ public void addSummary(TableBuilder tb,
HashMap<String, Long> majorFragmentBusyT
tb.appendFormattedInteger(recordSum);
final ImmutablePair<OperatorProfile, Integer> peakMem =
Collections.max(opList, Comparators.operatorPeakMemory);
- tb.appendBytes(Math.round(memSum / size));
- tb.appendBytes(peakMem.getLeft().getPeakLocalMemoryAllocated());
+
+ //Inject spill-to-disk attributes
+ Map<String, String> avgSpillMap = null;
+ Map<String, String> maxSpillMap = null;
+ if (hasSpilledToDisk) {
+ avgSpillMap = new HashMap<>();
+ //Average SpillCycle
+ float avgSpillCycle = (float) spillCycleSum/size;
+ avgSpillMap.put(HTML_ATTRIB_TITLE,
DECIMAL_FORMATTER.format(avgSpillCycle) + " Spills on average");
+ avgSpillMap.put(HTML_ATTRIB_STYLE, "cursor:help;" + spillCycleMax);
+ avgSpillMap.put(HTML_ATTRIB_CLASS, "spill-tag"); //JScript will
inject Icon
+ avgSpillMap.put(HTML_ATTRIB_SPILLS,
DECIMAL_FORMATTER.format(avgSpillCycle)); //JScript will inject Count
+ maxSpillMap = new HashMap<>();
+ maxSpillMap.put(HTML_ATTRIB_TITLE, "Most # Spills: " +
spillCycleMax);
+ maxSpillMap.put(HTML_ATTRIB_STYLE, "cursor:help;" + spillCycleMax);
+ maxSpillMap.put(HTML_ATTRIB_CLASS, "spill-tag"); //JScript will
inject Icon
+ maxSpillMap.put(HTML_ATTRIB_SPILLS, String.valueOf(spillCycleMax));
//JScript will inject Count
+ }
+
+ tb.appendBytes(Math.round(memSum / size), avgSpillMap);
+ tb.appendBytes(peakMem.getLeft().getPeakLocalMemoryAllocated(),
maxSpillMap);
+ }
+
+ /**
+ * Returns index of Spill Count/Cycle metric
+ * @param operatorType
+ * @return index of spill metric
+ */
+ private int getSpillCycleMetricIndex(CoreOperatorType operatorType) {
+ String metricName = null;
--- End diff --
Initializing with null is redundant.
---