[
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)