[
https://issues.apache.org/jira/browse/HBASE-8368?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13634762#comment-13634762
]
Enis Soztutar commented on HBASE-8368:
--------------------------------------
+1 for the idea. Some source of bugs in 0.94 AM was that the zk event was being
processed in a handler thread, but we basically lost the event ordering
guarantee with this approach.
> Improve ZK notification handling in Master
> ------------------------------------------
>
> Key: HBASE-8368
> URL: https://issues.apache.org/jira/browse/HBASE-8368
> Project: HBase
> Issue Type: Improvement
> Components: master
> Affects Versions: 0.95.0
> Reporter: Jeffrey Zhong
> Assignee: Jeffrey Zhong
> Fix For: 0.98.0
>
>
> In ZooKeeperWatcher, we handle ZK notifications in a single queue(except AM)
> and each listener is handling notifications synchronously.
> This cause potential performance issue if Master is handling an event which
> may jam the queue so that ZooKeeperWatcher won't get new notifications in
> time. For example, we have several region un-assigned notifications in
> pipeline and logsplitting or SSH handling etc handling will be delayed.
> I'm proposing:
> During registerListeners, we can let a user to choose which queue current
> listener want to register. For example,
> registerListener(QueueName, ZNodePathPrefix, listener);
> Such as:
> registerListener("unsigned_regions", "/hbase/unassigned", AMlistener);
> registerListener("logSplitting", "/hbase/splitlog",
> LogSplittingManagerlistener);
> ...
> For each queue, we use a single thread(consumer) to process events in order.
> The ZNodePathPrefix is to pre-filter out notifications that current listener
> is only interested in.
> For listeners without specifying a queue name, the listener will be put on a
> new "default" queue.
> Please let me know if you have better ideas!
> Thanks.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira