[ https://issues.apache.org/jira/browse/DRILL-6279?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16426675#comment-16426675 ]
ASF GitHub Bot commented on DRILL-6279: --------------------------------------- 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. > Web UI should indicate when operators have spilled in-memory data to disk > ------------------------------------------------------------------------- > > Key: DRILL-6279 > URL: https://issues.apache.org/jira/browse/DRILL-6279 > Project: Apache Drill > Issue Type: Improvement > Affects Versions: 1.13.0 > Reporter: Kunal Khatua > Assignee: Kunal Khatua > Priority: Major > Fix For: 1.14.0 > > Attachments: spillToDiskSnapshot.png > > > Currently, there is no indication of when an operator is spilling to disk, > which would help explain a slow running query. > Suggestions are welcome, but the current proposal is to simply update the > Operators Overview section to show average and max spill cycles, preferrably, > with a color code (or formatting). -- This message was sent by Atlassian JIRA (v7.6.3#76005)