[ 
https://issues.apache.org/jira/browse/HIVE-2720?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13191809#comment-13191809
 ] 

Carl Steinbach commented on HIVE-2720:
--------------------------------------

bq. The patch as it is, does not change the event listener calling semantics or 
hivemetahook calling semantics.

Actually, I think this is a pretty significant change. HiveMetaStoreListener is 
purely a listener interface. All of the methods defined in the interface are 
triggered after the underlying metastore transaction has been committed or 
rolled back, which means that all of the methods are effectively "post" 
methods. Supporting more than one listener is uncomplicated because the 
listeners don't have the ability to affect the outcome of the operation.

This patch replaces the listener interface with one that allows plugins to fail 
metastore operations by raising exceptions in pre-methods. I don't think this 
interface can support more than one plugin in a maintainable fashion for the 
reasons I mentioned earlier.

bq. introduce HiveExtendedMetaHook interface to limited private to replace 
HiveMetaStoreEventListener, and allow only hive and hcat implementations (by 
documenting it). We guarantee correct behavior by carefully ordering the hooks.

I don't see any reason to remove HiveMetaStoreListener. It's useful in its 
current form for writing audit and logging plugins, the implementation is good, 
and people are probably already using it since it appeared in the 0.8.0 release.

As for the proposed HiveExtendedMetaHook interface, in practice I don't think 
you will be able to guarantee correct behavior by ordering the hooks, and 
making this a requirement places a significant burden on hook implementors.

                
> Merge MetaStoreListener and HiveMetaHook interfaces
> ---------------------------------------------------
>
>                 Key: HIVE-2720
>                 URL: https://issues.apache.org/jira/browse/HIVE-2720
>             Project: Hive
>          Issue Type: Sub-task
>          Components: JDBC, Metastore, ODBC, Security
>            Reporter: Enis Soztutar
>            Assignee: Enis Soztutar
>         Attachments: HIVE-2720.D1299.1.patch, HIVE-2720.D1299.2.patch, 
> HIVE-2720.D1299.3.patch
>
>
> MetaStoreListener and HiveMetaHook both serve as a notification mechanism for 
> metastore-related events. The former is used by hcat and the latter is by the 
> hbase-storage handler, and invoked by the client. 
> I propose to merge these interfaces, and extend the MetaStoreListener, to add 
> most of the on- and pre- methods at the Thrift interface. This way, extending 
> metastore will be easier, and validation, storage-driver notification, and 
> enforcement can be delegated to individual listeners. Besides, more 
> functionality can be plugged-in by Hcat at this level. 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to