Perhaps, I'd expect one might wish to make multiple API calls when holding
a lock, but a suitably implemented client may be able to manage this
seamlessly. Then again a user may also wish to have explicit control of
locking. No reason it couldn't offer both. I'll create a JIRA to capture
this. As we are working with these APIs currently, I expect that we may be
able to submit a patch.

Thanks for your responses,

Elliot.

On Tuesday, 27 October 2015, Eugene Koifman <ekoif...@hortonworks.com>
wrote:

> Wouldn’t it make more sense for the api to acquire required locks
> automatically?   That seems like a simpler user model.
>
> From: Alan Gates <alanfga...@gmail.com
> <javascript:_e(%7B%7D,'cvml','alanfga...@gmail.com');>>
> Reply-To: "user@hive.apache.org
> <javascript:_e(%7B%7D,'cvml','user@hive.apache.org');>" <
> user@hive.apache.org
> <javascript:_e(%7B%7D,'cvml','user@hive.apache.org');>>
> Date: Tuesday, October 27, 2015 at 11:34 AM
> To: "user@hive.apache.org
> <javascript:_e(%7B%7D,'cvml','user@hive.apache.org');>" <
> user@hive.apache.org
> <javascript:_e(%7B%7D,'cvml','user@hive.apache.org');>>
> Subject: Re: Locking when using the Metastore/HCatalog APIs.
>
> Answers inlined.
>
> Elliot West <javascript:_e(%7B%7D,'cvml','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