[
https://issues.apache.org/jira/browse/HIVE-26471?focusedWorklogId=815490&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-815490
]
ASF GitHub Bot logged work on HIVE-26471:
-----------------------------------------
Author: ASF GitHub Bot
Created on: 11/Oct/22 07:33
Start Date: 11/Oct/22 07:33
Worklog Time Spent: 10m
Work Description: deniskuzZ commented on code in PR #3645:
URL: https://github.com/apache/hive/pull/3645#discussion_r991915282
##########
standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/metrics/CompactionMetricData.java:
##########
@@ -67,34 +70,53 @@ static CompactionMetricData
of(List<ShowCompactResponseElement> compacts) {
private void init() {
final Map<String, ShowCompactResponseElement> lastElements = new
HashMap<>();
- poolCount = new HashMap<>();
+ initiatedPoolCount = new HashMap<>();
+ workingPoolCount = new HashMap<>();
+ oldestEnqueueTimePerPool = new HashMap<>();
+ oldestWorkingTimePerPool = new HashMap<>();
oldestEnqueueTime = OLDEST_TIME_NO_VALUE;
oldestWorkingTime = OLDEST_TIME_NO_VALUE;
oldestCleaningTime = OLDEST_TIME_NO_VALUE;
+
+ long currentTime = System.currentTimeMillis();
for (ShowCompactResponseElement element : compacts) {
final String key = element.getDbname() + "/" + element.getTablename() +
(element.getPartitionname() != null ? "/" +
element.getPartitionname() : "");
// If new key, add the element, if there is an existing one, change to
the element if the element.id is greater than old.id
lastElements.compute(key, (k, old) -> (old == null) ? element :
(element.getId() > old.getId() ? element : old));
- // find the oldest elements with initiated and working states
String state = element.getState();
- if (TxnStore.INITIATED_RESPONSE.equals(state) && (oldestEnqueueTime >
element.getEnqueueTime())) {
- oldestEnqueueTime = element.getEnqueueTime();
- poolCount.compute(element.getPoolName(), (k, old) -> (old == null) ? 1
: old + 1);
+ if (TxnStore.INITIATED_RESPONSE.equals(state)) {
+ final int enqueueSeconds = (int) ((currentTime -
element.getEnqueueTime()) / 1000);
+ oldestWorkingTimePerPool.compute(element.getPoolName(), (k, old) ->
(old == null) ? enqueueSeconds : Math.max(enqueueSeconds, old));
Review Comment:
shouldn't it be vice versa? when INITIATED_RESPONSE ->
oldestEnqueueTimePerPool, when WORKING_RESPONSE -> oldestWorkingTimePerPool
Issue Time Tracking
-------------------
Worklog Id: (was: 815490)
Time Spent: 3h 50m (was: 3h 40m)
> New metric for Compaction pooling
> ---------------------------------
>
> Key: HIVE-26471
> URL: https://issues.apache.org/jira/browse/HIVE-26471
> Project: Hive
> Issue Type: Improvement
> Components: Hive
> Reporter: László Végh
> Assignee: László Végh
> Priority: Major
> Labels: pull-request-available
> Fix For: 4.0.0-alpha-2
>
> Time Spent: 3h 50m
> Remaining Estimate: 0h
>
> To be able to properly supervise the pool based compaction, a new metric is
> required:
> Number of 'Initiated' compaction requests per compaction pool.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)