hive-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "anishek (JIRA)" <>
Subject [jira] [Created] (HIVE-16738) Notification ID generation in DBNotification might not be unique
Date Tue, 23 May 2017 06:53:04 GMT
anishek created HIVE-16738:

             Summary: Notification ID generation in DBNotification might not be unique
                 Key: HIVE-16738
             Project: Hive
          Issue Type: Bug
          Components: HiveServer2
    Affects Versions: 3.0.0
            Reporter: anishek
            Assignee: anishek
             Fix For: 3.0.0

Going to explain the problem in scope of "replication" feature for hive 2 that is being built,
as it is easier to explain:

To allow replication to work we need to set "hive.metastore.transactional.event.listeners"
 to DBNotificationListener. For use cases where there are multiple HiveServer2 Instances running

 private void process(NotificationEvent event, ListenerEvent listenerEvent) throws MetaException
    synchronized (NOTIFICATION_TBL_LOCK) {
      LOG.debug("DbNotificationListener: Processing : {}:{}", event.getEventId(),

      // Set the DB_NOTIFICATION_EVENT_ID for future reference by other listeners.
      if (event.isSetEventId()) {
the above code in DBNotificationListner having the object lock wont be guarantee enough to
make sure that all events get a unique id. The transaction isolation level at the db "read-comitted"
or "repeatable-read"  would  also not guarantee the same, unless a lock is at the db level
preferably on table {{NOTIFICATION_SEQUENCE}} which only has one row.

This message was sent by Atlassian JIRA

View raw message