[ 
https://issues.apache.org/jira/browse/HBASE-17605?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Appy updated HBASE-17605:
-------------------------
    Status: Patch Available  (was: Open)

> Refactor procedure framework code
> ---------------------------------
>
>                 Key: HBASE-17605
>                 URL: https://issues.apache.org/jira/browse/HBASE-17605
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Appy
>            Assignee: Appy
>         Attachments: HBASE-17605.master.001.patch
>
>
>     - Moved locks out of MasterProcedureScheduler#Queue. One Queue object is 
> used for each namespace/table, which aren't more than 100. So we don't 
> complexity arising from all functionalities being in one place. 
> MasterProcedureLocking#Lock is the new locking class.
>     - Removed NamespaceQueue because it wasn't being used as Queue 
> (add,peek,poll,etc functions threw UnsupportedOperationException). It's was 
> only used for locks on namespaces. Now that locks have been moved out of 
> Queue class, it's not needed anymore.
>     - Remoed RegionEvent which was there only for locking on regions. 
> Tables/namespaces used locking from Queue class and regions couldn't (there 
> are no separate proc queue at region level), hence the redundance. Now that 
> locking is separate, we can use the same for regions too.
>     - Removed QueueInterface class. No declarations, except one 
> implementaion, which makes the point of having an interface moot.
>     - Removed QueueImpl, which was the only concrete implementation of 
> abstract Queue class. Moved functions to Queue class itself to avoid 
> unnecessary level in inheritance hierarchy.
>     - Encapsulated table priority related stuff in a single class.
>     - Removed some unused functions.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to