[ 
https://issues.apache.org/jira/browse/HIVE-10242?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14498411#comment-14498411
 ] 

Eugene Koifman commented on HIVE-10242:
---------------------------------------

The fix also logging improvements and a fix to the following situation where a 
lock (by client3) could be acquired when it should not be.
client1: update table T
client2: select * from T
client3: update table T

with all 3 clients executing concurrently and starting in above order, client 3 
should be blocked until client1 finishes.

> 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
>             Fix For: 1.2.0
>
>         Attachments: HIVE-10242.2.patch, HIVE-10242.3.patch, 
> HIVE-10242.4.patch, HIVE-10242.patch
>
>
> 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)

Reply via email to