This is an automated email from the ASF dual-hosted git repository.

pvary pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hive.git


The following commit(s) were added to refs/heads/master by this push:
     new 601937d  HIVE-22554: ACID: Wait timeout for blocking compaction should 
be configurable (Laszlo Pinter via Peter Vary)
601937d is described below

commit 601937d958face5f4521468592f55cdd1b94e7e8
Author: Laszlo Pinter <[email protected]>
AuthorDate: Tue Dec 3 13:26:04 2019 +0100

    HIVE-22554: ACID: Wait timeout for blocking compaction should be 
configurable (Laszlo Pinter via Peter Vary)
---
 common/src/java/org/apache/hadoop/hive/conf/HiveConf.java            | 3 +++
 .../hadoop/hive/ql/ddl/table/storage/AlterTableCompactOperation.java | 5 +++--
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java 
b/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
index 4393a28..76c6e39 100644
--- a/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
+++ b/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
@@ -2761,6 +2761,9 @@ public class HiveConf extends Configuration {
     HIVE_COMPACTOR_ABORTEDTXN_THRESHOLD("hive.compactor.abortedtxn.threshold", 
1000,
         "Number of aborted transactions involving a given table or partition 
that will trigger\n" +
         "a major compaction."),
+
+    HIVE_COMPACTOR_WAIT_TIMEOUT("hive.compactor.wait.timeout", 300000L, "Time 
out in "
+        + "milliseconds for blocking compaction. It's value has to be higher 
than 2000 milliseconds. "),
     /**
      * @deprecated Use MetastoreConf.COMPACTOR_INITIATOR_FAILED_THRESHOLD
      */
diff --git 
a/ql/src/java/org/apache/hadoop/hive/ql/ddl/table/storage/AlterTableCompactOperation.java
 
b/ql/src/java/org/apache/hadoop/hive/ql/ddl/table/storage/AlterTableCompactOperation.java
index fd0ae3a..8e576fa 100644
--- 
a/ql/src/java/org/apache/hadoop/hive/ql/ddl/table/storage/AlterTableCompactOperation.java
+++ 
b/ql/src/java/org/apache/hadoop/hive/ql/ddl/table/storage/AlterTableCompactOperation.java
@@ -18,6 +18,7 @@
 
 package org.apache.hadoop.hive.ql.ddl.table.storage;
 
+import org.apache.hadoop.hive.conf.HiveConf;
 import org.apache.hadoop.hive.ql.ddl.DDLOperationContext;
 import org.apache.hadoop.hive.ql.io.AcidUtils;
 
@@ -38,7 +39,6 @@ import org.apache.hadoop.hive.ql.metadata.Table;
  * Operation process of compacting a table.
  */
 public class AlterTableCompactOperation extends 
DDLOperation<AlterTableCompactDesc> {
-  private static final int FIVE_MINUTES_IN_MILLIES = 5*60*1000;
 
   public AlterTableCompactOperation(DDLOperationContext context, 
AlterTableCompactDesc desc) {
     super(context, desc);
@@ -96,10 +96,11 @@ public class AlterTableCompactOperation extends 
DDLOperation<AlterTableCompactDe
   private void waitForCompactionToFinish(CompactionResponse resp) throws 
HiveException {
     StringBuilder progressDots = new StringBuilder();
     long waitTimeMs = 1000;
+    long waitTimeOut = HiveConf.getLongVar(context.getConf(), 
HiveConf.ConfVars.HIVE_COMPACTOR_WAIT_TIMEOUT);
     wait: while (true) {
       //double wait time until 5min
       waitTimeMs = waitTimeMs*2;
-      waitTimeMs = Math.max(waitTimeMs, FIVE_MINUTES_IN_MILLIES);
+      waitTimeMs = Math.max(waitTimeMs, waitTimeOut);
       try {
         Thread.sleep(waitTimeMs);
       } catch (InterruptedException ex) {

Reply via email to