[ 
https://issues.apache.org/jira/browse/HIVE-26770?focusedWorklogId=828740&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-828740
 ]

ASF GitHub Bot logged work on HIVE-26770:
-----------------------------------------

                Author: ASF GitHub Bot
            Created on: 24/Nov/22 14:44
            Start Date: 24/Nov/22 14:44
    Worklog Time Spent: 10m 
      Work Description: veghlaci05 commented on code in PR #3803:
URL: https://github.com/apache/hive/pull/3803#discussion_r1031563926


##########
ql/src/java/org/apache/hadoop/hive/ql/txn/compactor/CompactorThread.java:
##########
@@ -219,4 +226,17 @@ protected LockRequest createLockRequest(CompactionInfo ci, 
long txnId, LockType
       !conf.getBoolVar(HiveConf.ConfVars.TXN_WRITE_X_LOCK));
     return requestBuilder.build();
   }
+
+  protected void doPostLoopActions(long elapsedTime, CompactorThreadType type) 
throws InterruptedException {
+    if (elapsedTime < checkInterval && !stop.get()) {
+      Thread.sleep(checkInterval - elapsedTime);
+    }
+
+    if(elapsedTime < MAX_WARN_LOG_TIME){
+      LOG.debug(type.name() + " loop took " + elapsedTime/1000 + " seconds to 
finish.");
+    } else {
+      LOG.warn("Possible "+ type.name() +" slowdown, loop took "+ 
elapsedTime/1000 + " seconds to finish.");

Review Comment:
   nit: spaces around + operator



##########
ql/src/java/org/apache/hadoop/hive/ql/txn/compactor/CompactorThread.java:
##########
@@ -61,6 +61,13 @@ public abstract class CompactorThread extends Thread 
implements Configurable {
   protected String hostName;
   protected String runtimeVersion;
 
+  //Time threshold for compactor thread log
+  //In milliseconds:
+  protected Integer MAX_WARN_LOG_TIME = 1200000; //20 min
+
+  protected long checkInterval;
+
+  public enum CompactorThreadType {INITIATOR, WORKER, CLEANER}

Review Comment:
   What about introducing an abstract CompactorThreadType getThreadType() 
method, implement in Cleaner, Worker, Initiator, and use it in 
doPostLoopActions()? This way CompactorThreadType type parameter would no 
longer necessary. However, I don't have a strong preference over this, the 
current approach is also fine.





Issue Time Tracking
-------------------

    Worklog Id:     (was: 828740)
    Time Spent: 1h  (was: 50m)

> Make "end of loop" compaction logs appear more selectively
> ----------------------------------------------------------
>
>                 Key: HIVE-26770
>                 URL: https://issues.apache.org/jira/browse/HIVE-26770
>             Project: Hive
>          Issue Type: Improvement
>            Reporter: Akshat Mathur
>            Assignee: Akshat Mathur
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 1h
>  Remaining Estimate: 0h
>
> Currently Initiator, Worker, and Cleaner threads log something like "finished 
> one loop" on INFO level.
> This is useful to figure out if one of these threads is taking too long to 
> finish a loop, but expensive in general.
>  
> Suggested Time: 20mins
> Logging this should be changed in the following way
>  # If loop finished within a predefined amount of time, level should be DEBUG 
> and message should look like: *Initiator loop took \{ellapsedTime} seconds to 
> finish.*
>  # If loop ran longer than this predefined amount, level should be WARN and 
> message should look like: *Possible Initiator slowdown, loop took 
> \{ellapsedTime} seconds to finish.*



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to