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

stack commented on HBASE-11290:
-------------------------------

Why not define and declare all in the one go rather than wait on the 
constructor?  Then you can mark the data members final.

+    processedServers = new ConcurrentHashMap<>();

What is idea behind erasure here [~mantonov]?

-    List<HRegionInfo> rits = new ArrayList<HRegionInfo>();
+    List<HRegionInfo> rits = new ArrayList<>();


Hmm... There is nowhere where we mod two Maps and we need to do it inside 
synchronize?  I don't see it.  Patch looks good if this is the case.  Might be 
worth making a little test harness to try many concurrent state change ops.  
What you think [~jxiang]?  Or [~virag]?

> Unlock RegionStates
> -------------------
>
>                 Key: HBASE-11290
>                 URL: https://issues.apache.org/jira/browse/HBASE-11290
>             Project: HBase
>          Issue Type: Sub-task
>            Reporter: Francis Liu
>            Assignee: Francis Liu
>         Attachments: HBASE-11290.draft.patch
>
>
> Even though RegionStates is a highly accessed data structure in HMaster. Most 
> of it's methods are synchronized. Which limits concurrency. Even simply 
> making some of the getters non-synchronized by using concurrent data 
> structures has helped with region assignments. We can go as simple as this 
> approach or create locks per region or a bucket lock per region bucket.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to