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. >