[jira] [Issue Comment Deleted] (HIVE-13966) DbNotificationListener: can loose DDL operation notifications

2016-06-24 Thread Colin Patrick McCabe (JIRA)

 [ 
https://issues.apache.org/jira/browse/HIVE-13966?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Colin Patrick McCabe updated HIVE-13966:

Comment: was deleted

(was: Interesting idea.  I suppose we could check at runtime which of the two 
interfaces each configured extension class implemented (either 
{{TransactionalMetastoreEventListener}}, or the existing 
{{DBNotificationListener}} interface) and treat it appropriately.)

> DbNotificationListener: can loose DDL operation notifications
> -
>
> Key: HIVE-13966
> URL: https://issues.apache.org/jira/browse/HIVE-13966
> Project: Hive
>  Issue Type: Bug
>  Components: HCatalog
>Reporter: Nachiket Vaidya
>Assignee: Rahul Sharma
>Priority: Critical
>
> The code for each API in HiveMetaStore.java is like this:
> 1. openTransaction()
> 2. -- operation--
> 3. commit() or rollback() based on result of the operation.
> 4. add entry to notification log (unconditionally)
> If the operation is failed (in step 2), we still add entry to notification 
> log. Found this issue in testing.
> It is still ok as this is the case of false positive.
> If the operation is successful and adding to notification log failed, the 
> user will get an MetaException. It will not rollback the operation, as it is 
> already committed. We need to handle this case so that we will not have false 
> negatives.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Comment Edited] (HIVE-13966) DbNotificationListener: can loose DDL operation notifications

2016-06-22 Thread Colin Patrick McCabe (JIRA)

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

Colin Patrick McCabe edited comment on HIVE-13966 at 6/23/16 5:30 AM:
--

I definitely agree that a synchronous listener is what we need.

It seems like the listener type itself should know whether it needs to be 
synchronous or not, right?  We can have a method somewhere in 
{{MetaStoreEventListener}}, which defaults to false, which specifies whether a 
listener is synchronous or not.  There shouldn't be any need to configure this 
since we should already know for each listener whether it needs to be 
synchronous or not based on its type.


was (Author: cmccabe):
I definitely agree that a synchronous listener is what we need.

It seems like the listener type itself should know whether it needs to be 
synchronous or not, right?  We can have a method somewhere in base class or 
interface that specifies whether a listener is synchronous or not.  There 
shouldn't be any need to configure this since we should already know for each 
listener whether it needs to be synchronous or not based on its type.

> DbNotificationListener: can loose DDL operation notifications
> -
>
> Key: HIVE-13966
> URL: https://issues.apache.org/jira/browse/HIVE-13966
> Project: Hive
>  Issue Type: Bug
>  Components: HCatalog
>Reporter: Nachiket Vaidya
>Assignee: Rahul Sharma
>Priority: Critical
>
> The code for each API in HiveMetaStore.java is like this:
> 1. openTransaction()
> 2. -- operation--
> 3. commit() or rollback() based on result of the operation.
> 4. add entry to notification log (unconditionally)
> If the operation is failed (in step 2), we still add entry to notification 
> log. Found this issue in testing.
> It is still ok as this is the case of false positive.
> If the operation is successful and adding to notification log failed, the 
> user will get an MetaException. It will not rollback the operation, as it is 
> already committed. We need to handle this case so that we will not have false 
> negatives.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HIVE-13966) DbNotificationListener: can loose DDL operation notifications

2016-06-22 Thread Colin Patrick McCabe (JIRA)

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

Colin Patrick McCabe commented on HIVE-13966:
-

I definitely agree that a synchronous listener is what we need.

It seems like the listener type itself should know whether it needs to be 
synchronous or not, right?  We can have a method somewhere in base class or 
interface that specifies whether a listener is synchronous or not.  There 
shouldn't be any need to configure this since we should already know for each 
listener whether it needs to be synchronous or not based on its type.

> DbNotificationListener: can loose DDL operation notifications
> -
>
> Key: HIVE-13966
> URL: https://issues.apache.org/jira/browse/HIVE-13966
> Project: Hive
>  Issue Type: Bug
>  Components: HCatalog
>Reporter: Nachiket Vaidya
>Assignee: Rahul Sharma
>Priority: Critical
>
> The code for each API in HiveMetaStore.java is like this:
> 1. openTransaction()
> 2. -- operation--
> 3. commit() or rollback() based on result of the operation.
> 4. add entry to notification log (unconditionally)
> If the operation is failed (in step 2), we still add entry to notification 
> log. Found this issue in testing.
> It is still ok as this is the case of false positive.
> If the operation is successful and adding to notification log failed, the 
> user will get an MetaException. It will not rollback the operation, as it is 
> already committed. We need to handle this case so that we will not have false 
> negatives.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)