[ https://issues.apache.org/jira/browse/HIVE-13966?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15323610#comment-15323610 ]
Sravya Tirukkovalur commented on HIVE-13966: -------------------------------------------- +1 to synchronous listener. Writing to notification log outside of transaction comes with potential correctness issues. As [~vaidyand] mentioned: 1. Operation fails, but notification entry is added: This can be avoided by checking the status of the operation 2. Operation succeeds but the notification entry is not written. This means data/metadata loss for downstream systems relying on NotificationLog. 3. Notification log also allows to get the linear event log when there are multiple HMSs in a active-active HMS HA setting. But, not having notification writing as part of transaction means, the commands can be out of order in notification log. > 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 > 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)