Re: hooks in metastore functions

2011-03-10 Thread Ashutosh Chauhan
Cool. I will prepare a patch and post on HIVE-2038.

Ashutosh
On Wed, Mar 9, 2011 at 16:59, John Sichi  wrote:
> Yeah, thinking about it more, they're likely to end up looking different.  
> The listener should cover most possible repository changes, whereas 
> HiveMetaHook is focused on a narrower set of object definitions.
>
> JVS
>
> On Mar 9, 2011, at 1:48 PM, Ashutosh Chauhan wrote:
>
>> It might be possible to extend and modify the HiveMetaHook interface.
>> But, I think keeping them separate is better because MetaHook and
>> MetaStoreListener are interfaces for two different functionalities.
>> MetaHook is for communicating with external system if there is a need
>> for it. MetaStoreListener observe changes on metastore and run some
>> logic in response to those changes. What do you think?
>>
>> Ashutosh
>>
>> On Wed, Mar 9, 2011 at 13:36, John Sichi  wrote:
>>> Couldn't we reuse HiveMetaHook for this new purpose (with an instance 
>>> loaded via global config vs associated with the table handler)?
>>>
>>> JVS
>>>
>>> On Mar 8, 2011, at 2:12 PM, Ashutosh Chauhan wrote:
>>>
 Hi all,

 I have a requirement that every time some change on metastore takes
 place, we have some logic which needs to be run. For example, if a new
 table is getting created in metastore I want to send a message to a
 message bus. Easiest way for this to work is to add the logic in
 createTable(). Control it by a hiveConf param and turn it off by
 default. Alternative way is via hooks. Have this extra logic in hook
 and then load and fire the hook if its available. Does anyone has an
 opinion which of these two is preferable. Second one requires new hook
 loading and execution logic. I am currently interested in four
 functions: createTable() dropTable() addPartition() dropPartition().
 Current, HiveMetaHook which exists in createTable() doesn't perfectly
 fit the bill, since it is fired only when user expresses it in his
 create table statement (i.e., if he has specified a storage handler)
 Instead I want to have this logic always run.
 If it is unclear, let me know, I can post the code  which can
 demonstrate my usecase.

 Ashutosh
>>>
>>>
>
>


Re: hooks in metastore functions

2011-03-09 Thread John Sichi
Yeah, thinking about it more, they're likely to end up looking different.  The 
listener should cover most possible repository changes, whereas HiveMetaHook is 
focused on a narrower set of object definitions.

JVS

On Mar 9, 2011, at 1:48 PM, Ashutosh Chauhan wrote:

> It might be possible to extend and modify the HiveMetaHook interface.
> But, I think keeping them separate is better because MetaHook and
> MetaStoreListener are interfaces for two different functionalities.
> MetaHook is for communicating with external system if there is a need
> for it. MetaStoreListener observe changes on metastore and run some
> logic in response to those changes. What do you think?
> 
> Ashutosh
> 
> On Wed, Mar 9, 2011 at 13:36, John Sichi  wrote:
>> Couldn't we reuse HiveMetaHook for this new purpose (with an instance loaded 
>> via global config vs associated with the table handler)?
>> 
>> JVS
>> 
>> On Mar 8, 2011, at 2:12 PM, Ashutosh Chauhan wrote:
>> 
>>> Hi all,
>>> 
>>> I have a requirement that every time some change on metastore takes
>>> place, we have some logic which needs to be run. For example, if a new
>>> table is getting created in metastore I want to send a message to a
>>> message bus. Easiest way for this to work is to add the logic in
>>> createTable(). Control it by a hiveConf param and turn it off by
>>> default. Alternative way is via hooks. Have this extra logic in hook
>>> and then load and fire the hook if its available. Does anyone has an
>>> opinion which of these two is preferable. Second one requires new hook
>>> loading and execution logic. I am currently interested in four
>>> functions: createTable() dropTable() addPartition() dropPartition().
>>> Current, HiveMetaHook which exists in createTable() doesn't perfectly
>>> fit the bill, since it is fired only when user expresses it in his
>>> create table statement (i.e., if he has specified a storage handler)
>>> Instead I want to have this logic always run.
>>> If it is unclear, let me know, I can post the code  which can
>>> demonstrate my usecase.
>>> 
>>> Ashutosh
>> 
>> 



Re: hooks in metastore functions

2011-03-09 Thread Ashutosh Chauhan
It might be possible to extend and modify the HiveMetaHook interface.
But, I think keeping them separate is better because MetaHook and
MetaStoreListener are interfaces for two different functionalities.
MetaHook is for communicating with external system if there is a need
for it. MetaStoreListener observe changes on metastore and run some
logic in response to those changes. What do you think?

Ashutosh

On Wed, Mar 9, 2011 at 13:36, John Sichi  wrote:
> Couldn't we reuse HiveMetaHook for this new purpose (with an instance loaded 
> via global config vs associated with the table handler)?
>
> JVS
>
> On Mar 8, 2011, at 2:12 PM, Ashutosh Chauhan wrote:
>
>> Hi all,
>>
>> I have a requirement that every time some change on metastore takes
>> place, we have some logic which needs to be run. For example, if a new
>> table is getting created in metastore I want to send a message to a
>> message bus. Easiest way for this to work is to add the logic in
>> createTable(). Control it by a hiveConf param and turn it off by
>> default. Alternative way is via hooks. Have this extra logic in hook
>> and then load and fire the hook if its available. Does anyone has an
>> opinion which of these two is preferable. Second one requires new hook
>> loading and execution logic. I am currently interested in four
>> functions: createTable() dropTable() addPartition() dropPartition().
>> Current, HiveMetaHook which exists in createTable() doesn't perfectly
>> fit the bill, since it is fired only when user expresses it in his
>> create table statement (i.e., if he has specified a storage handler)
>> Instead I want to have this logic always run.
>> If it is unclear, let me know, I can post the code  which can
>> demonstrate my usecase.
>>
>> Ashutosh
>
>


Re: hooks in metastore functions

2011-03-09 Thread John Sichi
Couldn't we reuse HiveMetaHook for this new purpose (with an instance loaded 
via global config vs associated with the table handler)?

JVS

On Mar 8, 2011, at 2:12 PM, Ashutosh Chauhan wrote:

> Hi all,
> 
> I have a requirement that every time some change on metastore takes
> place, we have some logic which needs to be run. For example, if a new
> table is getting created in metastore I want to send a message to a
> message bus. Easiest way for this to work is to add the logic in
> createTable(). Control it by a hiveConf param and turn it off by
> default. Alternative way is via hooks. Have this extra logic in hook
> and then load and fire the hook if its available. Does anyone has an
> opinion which of these two is preferable. Second one requires new hook
> loading and execution logic. I am currently interested in four
> functions: createTable() dropTable() addPartition() dropPartition().
> Current, HiveMetaHook which exists in createTable() doesn't perfectly
> fit the bill, since it is fired only when user expresses it in his
> create table statement (i.e., if he has specified a storage handler)
> Instead I want to have this logic always run.
> If it is unclear, let me know, I can post the code  which can
> demonstrate my usecase.
> 
> Ashutosh