hive-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Eugene Koifman (JIRA)" <>
Subject [jira] [Updated] (HIVE-10242) ACID: insert overwrite prevents create table command
Date Thu, 09 Apr 2015 23:39:12 GMT


Eugene Koifman updated HIVE-10242:
    Attachment: HIVE-10242.patch

1st cut

> ACID: insert overwrite prevents create table command
> ----------------------------------------------------
>                 Key: HIVE-10242
>                 URL:
>             Project: Hive
>          Issue Type: Bug
>          Components: Transactions
>    Affects Versions: 1.0.0
>            Reporter: Eugene Koifman
>            Assignee: Eugene Koifman
>         Attachments: 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

View raw message