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

Eugene Koifman commented on HIVE-17683:
---------------------------------------

Hmm - very good question.  We don't acquire locks on anything that would 
correspond to an intermediate node in the plan like Join or group by.

Lock manager can lock database/table/partition objects but FileSink may write 
multiple partitions (dynamic partition insert) and a Scan can read many 
partitions.  And I don't know if Database is represented in the QueryPlan at 
all...

I think you need experiment with this a bit and see what locks you get for 
various query plans to see if there is a reasonable way to represent lock info 
as part of the plan.  It may turn out one doesn't map very well to the other.  
In that case maybe you should consider writing something like "show locks 
<sql>" or "explain locks <sql>" that just dumps LockRequest structure.

cc [~alangates]

 

> Annotate Query Plan with locking information
> --------------------------------------------
>
>                 Key: HIVE-17683
>                 URL: https://issues.apache.org/jira/browse/HIVE-17683
>             Project: Hive
>          Issue Type: New Feature
>          Components: Transactions
>            Reporter: Eugene Koifman
>            Assignee: Igor Kryvenko
>            Priority: Critical
>
> Explore if it's possible to add info about what locks will be asked for to 
> the query plan.
> Lock acquisition (for Acid Lock Manager) is done in 
> DbTxnManager.acquireLocks() which is called once the query starts running.  
> Would need to refactor that.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to