[ 
https://issues.apache.org/jira/browse/HIVE-11228?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sergey Shelukhin updated HIVE-11228:
------------------------------------

Should this issue be backported to branch-1? It looks like a bug.

> Mutation API should use semi-shared locks.
> ------------------------------------------
>
>                 Key: HIVE-11228
>                 URL: https://issues.apache.org/jira/browse/HIVE-11228
>             Project: Hive
>          Issue Type: Bug
>          Components: HCatalog
>    Affects Versions: 2.0.0
>            Reporter: Elliot West
>            Assignee: Elliot West
>              Labels: streaming_api, transaction, transactions
>             Fix For: 2.0.0
>
>         Attachments: HIVE-11228.1.patch
>
>
> An [issue was 
> identified|https://issues.apache.org/jira/browse/HIVE-10165?focusedCommentId=14619640&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14619640]
>  by [~ekoifman] in the streaming mutation API (HIVE-10165) where an 
> insufficiently restrictive lock was being used when issuing updates and 
> deletes to ACID tables and partitions. A shared lock was being used where in 
> fact a semi-shared lock is required. Additionally, the current lock scope 
> targets the entire table, whereas in theory if the table is partitioned, then 
> only the affected partitions are required to participate in the semi-shared 
> lock. However, there are a couple of technical challenges that prevent the 
> locks currently being applied on a per-partition basis:
> * It is expected that the affected partitions are not known in advance so 
> individual partition locks would need to be acquired as needed.
> * The API is expected to execute in a clustered environment and so acquiring 
> these locks as on an ‘as needed’ basis presents a risk that the meta store 
> may become overwhelmed. This is expected to be less of an problem when an 
> HBase based meta store is introduced (HIVE-9452).
> * My understanding is that multiple fine grained lock acquisitions for a 
> single transaction are not possible at present. When they are available 
> they’ll introduce the possibility that deadlocks can occur. This should be 
> better handled when HIVE-9675 is complete.
> Therefore, as advised, at this time the system will obtain a semi-shared lock 
> on participating tables. Although this will prevent other concurrent writes, 
> it will preserve snapshot isolation when reading.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to