[
https://issues.apache.org/jira/browse/HIVE-19086?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16438155#comment-16438155
]
Vihang Karajgaonkar commented on HIVE-19086:
--------------------------------------------
The above mentioned approach is very hard to implement because the EVENT_ID is
passed to the non-transactional listener in an in-memory structure derived from
the actual {{ListenerEvent}} sub-classes. If we delay the EVENT_ID generation
to the actual commit time, then we cannot pass this EVENT_ID to using the
existing mechanism.
[~akolb] [~thejas] Do you know what is the motivation of using this way to pass
the EVENT_ID to non-transactional listeners? Why is it needed in the first
place. I seems to me that the getCurrentNotificationID and
getNextNotificationEvent APIs are sufficient to find out new events in the
system. Why do we need to pass the EVENT_IDs to non-transactional listeners
this way?
> Write notifications in bulk only when commitTransaction actually commits
> ------------------------------------------------------------------------
>
> Key: HIVE-19086
> URL: https://issues.apache.org/jira/browse/HIVE-19086
> Project: Hive
> Issue Type: Sub-task
> Components: Metastore
> Affects Versions: 3.0.0, 2.4.0
> Reporter: Alexander Kolbasov
> Assignee: Vihang Karajgaonkar
> Priority: Major
>
> This is an optimization that is targeting reducing the amount of time the
> global DB lock is held for notifications.
> The idea is to collect all notifications and only push them when
> commitTransaction() actually commits.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)