You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "Eugene Koifman (JIRA)" <ji...@apache.org> on 2015/04/07 21:03:13 UTC
[jira] [Created] (HIVE-10242) ACID: insert overwrite prevents
create table command
Eugene Koifman created HIVE-10242:
-------------------------------------
Summary: ACID: insert overwrite prevents create table command
Key: HIVE-10242
URL: https://issues.apache.org/jira/browse/HIVE-10242
Project: Hive
Issue Type: Bug
Components: Transactions
Affects Versions: 1.0.0
Reporter: Eugene Koifman
Assignee: Eugene Koifman
1. insert overwirte table DB.T1 select ... from T2: this takes X lock on DB.T1 and S lock on T2.
X lock makes sense because we don't want anyone reading T1 while it's overwritten. S lock on T2 prevents if from being dropped while the query is in progress.
2. create table DB.T3: takes S lock on DB.
This S lock gets blocked by X lock on T1. S lock prevents the DB from being dropped while create table is executed.
If the insert statement is long running, this blocks DDL ops on the same database. This is a usability issue.
There is no good reason why X lock on a table within a DB and S lock on DB should be in conflict.
(this is different from a situation where X lock is on a partition and S lock is on the table to which this partition belongs. Here it makes sense. Basically there is no SQL way to address all tables in a DB but you can easily refer to all partitions of a table)
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)