[
https://issues.apache.org/jira/browse/HIVE-3509?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Phabricator updated HIVE-3509:
------------------------------
Attachment: HIVE-3509.D10065.2.patch
MattMartin updated the revision "HIVE-3509 [jira] Exclusive locks are not
acquired when using dynamic partitions".
- Updated Driver.java to make sure that dynamic partitions are handled
properly when 1 or more parts of the dynamic partition is specified (e.g.
"insert overwrite table tstsrcpart partition (ds ='2008-04-08', hr) select key,
value, hr where ds = '2008-04-08';"). The earlier check-in on this
branch/issue only addressed queries that used dynamic partitions without
specifying any of the partitions (e.g. "insert overwrite table tstsrcpart
partition (ds, hr) select key, value, ds, hr where ds <= '2008-04-08';")
- Fixing LINT error.
Reviewers: JIRA
REVISION DETAIL
https://reviews.facebook.net/D10065
CHANGE SINCE LAST DIFF
https://reviews.facebook.net/D10065?vs=31467&id=31563#toc
AFFECTED FILES
data/conf/hive-site.xml
ql/src/java/org/apache/hadoop/hive/ql/Driver.java
ql/src/java/org/apache/hadoop/hive/ql/hooks/HookContext.java
ql/src/test/org/apache/hadoop/hive/ql/hooks/PreExecutePrinter.java
ql/src/test/queries/clientnegative/lockneg1.q
ql/src/test/queries/clientnegative/lockneg2.q
ql/src/test/queries/clientnegative/lockneg3.q
ql/src/test/queries/clientnegative/lockneg4.q
ql/src/test/queries/clientnegative/lockneg5.q
ql/src/test/queries/clientpositive/lock1.q
ql/src/test/queries/clientpositive/lock2.q
ql/src/test/queries/clientpositive/lock3.q
ql/src/test/queries/clientpositive/lock4.q
ql/src/test/results/clientnegative/lockneg1.q.out
ql/src/test/results/clientnegative/lockneg2.q.out
ql/src/test/results/clientnegative/lockneg3.q.out
ql/src/test/results/clientnegative/lockneg4.q.out
ql/src/test/results/clientnegative/lockneg5.q.out
ql/src/test/results/clientpositive/lock1.q.out
ql/src/test/results/clientpositive/lock2.q.out
ql/src/test/results/clientpositive/lock3.q.out
ql/src/test/results/clientpositive/lock4.q.out
To: JIRA, MattMartin
Cc: njain
> Exclusive locks are not acquired when using dynamic partitions
> --------------------------------------------------------------
>
> Key: HIVE-3509
> URL: https://issues.apache.org/jira/browse/HIVE-3509
> Project: Hive
> Issue Type: Bug
> Components: Locking
> Affects Versions: 0.9.0
> Reporter: Matt Martin
> Assignee: Matt Martin
> Attachments: HIVE-3509.1.patch.txt, HIVE-3509.D10065.1.patch,
> HIVE-3509.D10065.2.patch
>
>
> If locking is enabled, the acquireReadWriteLocks() method in
> org.apache.hadoop.hive.ql.Driver iterates through all of the input and output
> entities of the query plan and attempts to acquire the appropriate locks. In
> general, it should acquire SHARED locks for all of the input entities and
> exclusive locks for all of the output entities (see the Hive wiki page on
> [locking|https://cwiki.apache.org/confluence/display/Hive/Locking] for more
> detailed information).
> When the query involves dynamic partitions, the situation is a little more
> subtle. As the Hive wiki notes (see previous link):
> {quote}
> in some cases, the list of objects may not be known - for eg. in case of
> dynamic partitions, the list of partitions being modified is not known at
> compile time - so, the list is generated conservatively. Since the number of
> partitions may not be known, an exclusive lock is taken on the table, or the
> prefix that is known.
> {quote}
> After [HIVE-1781|https://issues.apache.org/jira/browse/HIVE-1781], the
> observed behavior is no longer consistent with the behavior described above.
> [HIVE-1781|https://issues.apache.org/jira/browse/HIVE-1781] appears to have
> altered the logic so that SHARED locks are acquired instead of EXCLUSIVE
> locks whenever the query involves dynamic partitions.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira