[ 
https://issues.apache.org/jira/browse/HBASE-7271?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13526610#comment-13526610
 ] 

stack commented on HBASE-7271:
------------------------------

bq. The check in the below should be under the synchronization block too...

Doing the check outside of the sync block and then doing the put inside the 
sync block allows that the backing map can change between the check and put.  
Why not move the check under the sync too?
                
> 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, 
> 7271.v3.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

Reply via email to