You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Jonathan Gray (JIRA)" <ji...@apache.org> on 2010/06/08 20:41:58 UTC

[jira] Commented: (HBASE-2694) Move RS to Master region open/close messaging into ZooKeeper

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

Jonathan Gray commented on HBASE-2694:
--------------------------------------

This issue will include:
- Introduction of an {{UNASSIGNED}} znode/directory into ZK which will contain a znode for each region in transition.  Data of the region znodes will contain the state of the region (closing, closed, opening, opened)
- Introduction of a custom executor service, {{HBaseExecutorService}}, which is a special type of named thread pool which will be used to process events
- Introduction of {{HBaseEventHandler}} interface which is the type executed by the HBaseExecutorService
- Two event handlers, {{MasterOpenRegionHandler}} and {{MasterCloseRegionHandler}}, to handle open/close events on the master side.  For this jira, they will actually not contain new logic and will just call the existing open/close implementations.

The existing message flow for moving a region from one RS to another (close then open):
# M -> RS1: MSG_REGION_CLOSE (via piggybacking on the response to the RS heartbeat)
# RS1 -> M: MSG_REPORT_CLOSE (on heartbeat)
# M:  Offline in META
# M:  MetaScanner picks up unassigned region
# M -> RS2: MSG_REGION_OPEN (via piggybacking on the response to the RS heartbeat)
# RS2 -> M: MSG_REPORT_PROCESS_OPEN (sent on each heartbeat until region is opened)
# RS2 -> M: MSG_REPORT_OPEN (on heartbeat)
# M: Add opened region to meta

The new message flow:
# M -> RS1: MSG_REGION_CLOSE (via piggybacking on the response to the RS heartbeat)
# RS1 -> ZK: Create ZNode {{/UNASSIGNED/regionname(CLOSING)}}
# ZK -> M:  Detects new region in transition, sets watcher on regionname znode
# RS1 -> ZK: Update ZNode {{/UNASSIGNED/regionname(CLOSED)}}
# ZK -> M:  Detects region as closed, offline in META
# M:  MetaScanner picks up unassigned region
# M -> RS2: MSG_REGION_OPEN (via piggybacking on the response to the RS heartbeat)
# RS2 -> ZK: Update ZNode {{/UNASSIGNED/regionname(OPENING)}}
# RS2 -> ZK: Update ZNode {{/UNASSIGNED/regionname(OPENED)}}
# ZK -> M: Detects region as opened, add opened region to meta
# M -> ZK: Delete ZNode {{/UNASSIGNED/regionname}}

> Move RS to Master region open/close messaging into ZooKeeper
> ------------------------------------------------------------
>
>                 Key: HBASE-2694
>                 URL: https://issues.apache.org/jira/browse/HBASE-2694
>             Project: HBase
>          Issue Type: Sub-task
>          Components: master, regionserver
>            Reporter: Jonathan Gray
>            Priority: Critical
>             Fix For: 0.21.0
>
>
> As a first step towards HBASE-2485, this issue is about changing the message flow of opening and closing of regions without actually changing the implementation of what happens on both the Master and RegionServer sides.  This way we can debug the messaging changes before the introduction of more significant changes to the master architecture and handling of regions in transition.

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