[ https://issues.apache.org/jira/browse/HIVE-21823?focusedWorklogId=254255&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-254255 ]
ASF GitHub Bot logged work on HIVE-21823: ----------------------------------------- Author: ASF GitHub Bot Created on: 05/Jun/19 08:24 Start Date: 05/Jun/19 08:24 Worklog Time Spent: 10m Work Description: pvary commented on pull request #660: HIVE-21823: New metrics to get the average queue length / free executor number for a given time window URL: https://github.com/apache/hive/pull/660#discussion_r290628508 ########## File path: llap-server/src/java/org/apache/hadoop/hive/llap/metrics/LlapDaemonExecutorMetrics.java ########## @@ -397,4 +425,106 @@ public JvmMetrics getJvmMetrics() { public String getName() { return name; } + + /** + * Generate time aware average for data points. + * For example if we have 3s when the queue size is 1, and 1s when the queue size is 2 then the + * calculated average should be (3*1+1*2)/4 = 1.25. + */ + @VisibleForTesting + static class TimedAverageMetrics { + private final int windowDataSize; + private final long windowTimeSize; + private final Data[] data; + private int nextPos = 0; + + /** + * Creates and initializes the metrics object. + * @param windowDataSize The maximum number of samples stored + * @param windowTimeSize The time window used to generate the average in nanoseconds + */ + TimedAverageMetrics(int windowDataSize, long windowTimeSize) { + this(windowDataSize, windowTimeSize, System.nanoTime()); Review comment: According to the documentation: "The value returned represents nanoseconds since some fixed but arbitrary origin time (perhaps in the future, so values may be negative)." That is why I used the System.nanoTime. Will move them outside the window. Good catch. Thanks! ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org Issue Time Tracking ------------------- Worklog Id: (was: 254255) Time Spent: 2h 10m (was: 2h) > New metrics to get the average queue length / free executor number for a > given time window > ------------------------------------------------------------------------------------------ > > Key: HIVE-21823 > URL: https://issues.apache.org/jira/browse/HIVE-21823 > Project: Hive > Issue Type: Sub-task > Components: llap > Reporter: Peter Vary > Assignee: Peter Vary > Priority: Major > Labels: pull-request-available > Attachments: HIVE-21823.patch > > Time Spent: 2h 10m > Remaining Estimate: 0h > > We need to calculate the average queue size / free executor size for a window > to have good data for making routing decisions. > Interesting things to consider: > * The timeĀ gap between arriving request can be different, so simple average > is not enough to have correct data > * We need to have 2 parameters > ** Time window length > ** Maximum data point numbers - so we will not collect "infinite" amount of > data at high load -- This message was sent by Atlassian JIRA (v7.6.3#76005)