[
https://issues.apache.org/jira/browse/HBASE-7271?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13526049#comment-13526049
]
Jimmy Xiang commented on HBASE-7271:
------------------------------------
On commit, probably set the iterator to a local variable, and call
iterator.remove() install.
{code}
+ RegionRunnable next = waiting.iterator().next();
+ zkEventWorkerWaitingList.remove(next.getRegionName(), next);
{code}
> Have a single executor for all zkWorkers in the assignment manager
> ------------------------------------------------------------------
>
> Key: HBASE-7271
> URL: https://issues.apache.org/jira/browse/HBASE-7271
> Project: HBase
> Issue Type: Bug
> Components: master, Region Assignment
> Affects Versions: 0.96.0
> Reporter: nkeywal
> Assignee: nkeywal
> Fix For: 0.96.0
>
> Attachments: 7271.v1.patch, 7271.v2.patch, 7271.v2.patch
>
>
> The current strategy is to have an array of monothreaded executor, and hash
> the zk path to ensure that there are no two events on the same region
> executed in parallel
> I think a single executor, as presented in the attached patch, is better
> because:
> - we're guaranteed to use all threads at any time
> - if managing one of the event takes longer that expected, the slowness is
> limited to this region, and not to all regions that have the same
> hashed/moduloed code
> - For the nodeChildrenChanged, there is no need to choose randomly one of the
> worker (or, once again, the risk to get stuck if one of the event takes time
> to be managed).
--
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