hive-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Eugene Koifman (JIRA)" <j...@apache.org>
Subject [jira] [Created] (HIVE-17647) DDLTask.generateAddMmTasks(Table tbl) should not start transactions
Date Fri, 29 Sep 2017 01:31:00 GMT
Eugene Koifman created HIVE-17647:
-------------------------------------

             Summary: DDLTask.generateAddMmTasks(Table tbl) should not start transactions
                 Key: HIVE-17647
                 URL: https://issues.apache.org/jira/browse/HIVE-17647
             Project: Hive
          Issue Type: Sub-task
          Components: Transactions
            Reporter: Eugene Koifman


This method has 
{noformat}
      if (txnManager.isTxnOpen()) {
        mmWriteId = txnManager.getCurrentTxnId();
      } else {
        mmWriteId = txnManager.openTxn(new Context(conf), conf.getUser());
        txnManager.commitTxn();
      }
{noformat}
this should throw if there is no open transaction.  It should never open one.

In general the logic seems suspect.  Looks like the intent is to move all existing files into
a delta_x_x/ when a plain table is converted to MM table.  This seems like something that
needs to be done from under an Exclusive lock to prevent concurrent Insert operations writing
data under table/partition root.  But this is too late to acquire locks which should be done
from the Driver.acquireLocks()  (or else have deadlock detector since acquiring them here
would bread all-or-nothing lock acquisition semantics currently required w/o deadlock detector)



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Mime
View raw message