[
https://issues.apache.org/jira/browse/DRILL-5230?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15851871#comment-15851871
]
ASF GitHub Bot commented on DRILL-5230:
---------------------------------------
Github user kkhatua commented on a diff in the pull request:
https://github.com/apache/drill/pull/739#discussion_r99393441
--- Diff:
exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/profile/TableBuilder.java
---
@@ -56,6 +47,30 @@ public TableBuilder(final String[] columns) {
sb.append("</tr>\n");
}
+ /**
+ * Representation of a millisecond duration in a short readable text
+ * @param millis Duration in milliseconds
+ * @return Human-Readable Duration Time
+ */
+ public String shortDurationFormat(long millis) {
+ long days = TimeUnit.MILLISECONDS.toDays(millis);
+ long hours = TimeUnit.MILLISECONDS.toHours(millis) -
TimeUnit.DAYS.toHours(TimeUnit.MILLISECONDS.toDays(millis));
+ long minutes = TimeUnit.MILLISECONDS.toMinutes(millis) -
TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis));
+ long seconds = TimeUnit.MILLISECONDS.toSeconds(millis) -
TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis));
+ long milliSeconds = millis -
TimeUnit.SECONDS.toMillis(TimeUnit.MILLISECONDS.toSeconds(millis));
+ String formattedDuration = "";
+ if (days >= 1) {
+ formattedDuration = days + "d" + hours + "h" + minutes + "m";
--- End diff --
This display format is kept compact due to limited space within the cells
of the table. Hence, we aim to keep only the first two major units. Hence, if
something runs in hours, we report down to the minute, but not any more
granular.
> Translation of millisecond duration into hours is incorrect
> -----------------------------------------------------------
>
> Key: DRILL-5230
> URL: https://issues.apache.org/jira/browse/DRILL-5230
> Project: Apache Drill
> Issue Type: Bug
> Components: Web Server
> Affects Versions: 1.9.0
> Reporter: Kunal Khatua
> Labels: easyfix
> Fix For: 1.10.0
>
> Original Estimate: 24h
> Remaining Estimate: 24h
>
> The method
> {code:JAVA}org.apache.drill.exec.server.rest.profile.TableBuilder.appendMillis(long,
> String){code}
> has a bug where the human readable translation of a 1+ hr duration in
> milliseconds is reported incorrectly.
> This has to do with the {code:JAVA}SimpleDateFormat.format() {code} method
> incorectly translating it.
> For e.g.
> {code:JAVA}
> long x = 4545342L; //1 hour 15 min 45.342 sec
> public void appendMillis(x, null);
> {code}
> This formats the value as {noformat}17h15m{noformat} instead of
> {noformat}1h15m{noformat}
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)