hbase-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bryan Duxbury (JIRA)" <j...@apache.org>
Subject [jira] Updated: (HBASE-457) Factor Master into Master, RegionManager, and ServerManager
Date Mon, 18 Feb 2008 21:30:34 GMT

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

Bryan Duxbury updated HBASE-457:

    Attachment: 457.patch

Here's my first draft. 

I believe that all the state is segmented how it should be, but the methods of access are
pretty muddy still. For instance, I'd greatly prefer it if external classes didn't have to
directly access the various region state lists, but since they have to synchronize on them,
it's tricky.

Also, ServerManager and RegionManager are coupled tightly right now, as ServerManager passes
messages to RegionManager pretty much explicitly. It'd be preferable to allow any class to
subscribe to certain message types from ServerManager, and then we could add other cool consumers
of the event data. 

> Factor Master into Master, RegionManager, and ServerManager
> -----------------------------------------------------------
>                 Key: HBASE-457
>                 URL: https://issues.apache.org/jira/browse/HBASE-457
>             Project: Hadoop HBase
>          Issue Type: Sub-task
>          Components: master
>            Reporter: Bryan Duxbury
>            Assignee: Bryan Duxbury
>            Priority: Minor
>         Attachments: 457.patch
> Even with TableOperation and descendants factored out of HMaster, it's still a huge class.
Every bit of master state basically lives in one class, so it's very challenging to understand
the logical groupings of everything.
> To make this a little more manageable, let's make two new abstractions, ServerManager
and RegionManager.
> ServerManager keeps track of servers - leases, message processing, load and load average,
> RegionManager keeps track of the root location, meta table online state, assigning regions
to servers, and so on. 
> HMaster then keeps around one of each of these classes to track state and do it's master
stuff. The HMaster class itself does not change it's interface to external consumers. It also
retains the main processing loop, HBase closed state, start and stop, etc.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message