Answers inlined.

Elliot West <mailto:tea...@gmail.com>
October 22, 2015 at 6:40
I notice from the Hive locking wiki page <https://cwiki.apache.org/confluence/display/Hive/Locking> that locks may be acquired for a range of HQL DDL operations. I wanted to know how the locking scheme mapped mapped/employed by equivalent operations in the Metastore and HCatalog APIs. Consider the operation:

    alter table T1 drop partition P1


This apparently requires a shared lock on T1 and an exclusive lock on P1. However, when following the invocation chain on the equivalent APIs I can see no acquisition of such locks:

    HCatClient.dropPartitions(...)
    IMetaStoreClient.dropPartition(...)


I notice that IMetaStoreClient exposes methods to lock and unlock resources and I have used these when working with the ACID APIs. However I can find nothing similar on the HCatalog API. As a user of these APIs:

 1. Do I need to acquire/release locks as declared on the wiki page
    when using equivalent operations in these APIs?

Yes.

 1. If not, why not?
 2. Ideally, should the HCatClient also expose lock/unlock methods
    like the Metastore API?

Yes.

 1. If not, why not?

Thank you - Elliot.
Alan.

Reply via email to